matt@beatnix.UUCP (02/13/87)
Here is part 1 of 2 of the Printer Driver Generator. It includes all the text files. The second part has the object files. # This is a shell archive. # Remove everything above and including the cut line. # Then run the rest of the file through sh. #----cut here-----cut here-----cut here-----cut here----# #!/bin/sh # shar: Shell Archiver # Run the following text with /bin/sh to create: # ReadMe # PrmFil.doc # NECCP6.dat # This archive created: Thu Feb 12 19:42:34 1987 cat << \SHAR_EOF > ReadMe Program Name : PrtDrvGen - Printer Driver Generator Version : 1.1 (bugs in 1.0 removed) Release Date : 870122 Programmer : Jxrgen Thomsen Copyright : shareware, $10 requested. See "Copyright" and "Availability" below. Files : PrtDrvGen - executable file ( e.g. input: PrtDrv.lod, NECCP6.dat output: NECCP6) PrtDrv.lod - Amiga load module implementing the special functions of the driver generated. DON'T execute it. It will crash the system. NECCP6.dat - parameter file with escape sequences and parameters to be used when generating a driver for the NEC P6,CP6,P7,CP7 printers PrmFil.doc - how to change the parameter file and generate the driver ReadMe - this file Special features: - each paper size (USLetter etc.) may have individually defined width, length, perforation skip length and printer initialization sequence. Allows you through Preferences to select several combinations of character sets, justification, proportional spacing etc. - definable size of Pica, Elite and Fine types for printers supporting other character sizes than 10, 12, 15 CPI - insert internal parameters as binary or decimal numbers into escape sequences specific for your printer - partial line up/down implemented as such and not as sub/superscript, which optionally is available - graphics dumps may be scaled to any size and positioned on the paper according to most recent margins and print pitch settings by user. This provides better support for mixing text and graphics - supports up to four graphics modes, if your printer does the same. Specify by combination of Draft/Letter and 6/8 LPI. - printing of blank lines in graphics dumps optimized. No more idle passes of the print head across the paper. - definable pixel width/height ratio to get you true round circles and square squares with e.g. DPaint - definable print sequence of colors to get the best colors for your printer or match the sequence of data required for your printer - for printers supporting fore/background colors it is possible to define the printer specific color values - pixel bits stored in the print buffer according to specified parameters in order to accomodate different brands of printers - adaptive double buffering (if memory not available for two buffers, then use only one) and allocation of small buffers for b/w and grey scale pictures (compensates for the larger code size of this driver) - in case of lack of sufficient contiguous memory "No mem" will be output to the printer Input data: Files PrtDrv.lod and NECCP6.dat (or your own parameter file) and two prompts Output data: One file containing the driver generated In case of detected errors an error message will be output and no driver generated. Processing: The file <printer name>.dat is read and an internal table created. If the simple driver is selected, this table is stored into the file <printer name>. If the full featured driver is selected, this table and the file PrtDrv.lod are combined and stored into the file <printer name>. Source code: The system is written in TDI Modula-2 and requires release 2.00a of this compiler, if you want to customize the driver. The source files enable you to further customize and optimize the driver generated, if you have specific needs or want to make a (minor) improvement to the speed of generating graphics. The code is written with emphasis on maintainability and reasonable performance speed, but you will probably be able to save a few micro seconds some places and make the code smaller. Support: The generated driver has not been tested in every detail, so please report bugs and suggestions for improvements. When the new release of the TDI Modula-2 compiler becomes available I intend to make the needed, if any, changes to the PrtDrvGen program. I hope, that people with other brands of printers will modify the parameter file and upload it, so that a lot of people may benefit from being able to customize their own printer driver. Availability : After some consideration I have made both source and object code public as shareware, but due to the large amount of hours I have spent on making this generator system (and $ X (X > 150) in connect time supporting the previous version) I will suggest a modest token of appreciation of $10 from you if you feel it has been of any value to you. The source for V1.1 is available at an additional fee of $15. I think a word of warning is needed for people wanting to add features to a printer driver: a driver is a general purpose interface to the hardware supporting its features. It is neither a word processor nor a graphics package, but it supports these by making the hardware features accessible in a simple way. Copyright: PrtDrvGen, Commodore Amiga Printer Driver Generator. ==================================================== Copyright 1987, Joergen Thomsen. All Rights Reserved. Compuserve : 71310,2206 GEnie : J.THOMSEN People Link: J.THOMSEN USMail : 10623 E. 66th S. #366 Tulsa, OK 74133 This product may be freely distributed provided that a) this copyright notice is included b) all files of this product are included c) it is distributed free of charge d) this product is neither explicitly nor implicitly included in another product sold for profit. The copyright owner may at any time selectively revoke the right to distribution. SHAR_EOF cat << \SHAR_EOF > PrmFil.doc PrtDrvGen 1.1 / Jxrgen Thomsen 870122 | Bugs corrected and enhancements in PrtDrvGen V1.1 | ================================================= | | 1) The JFY1 (letter space, justify) and JFY2 (word fill, auto center) | commands were not executed in V1.1 due to an AmigaDOS peculiarity | | 2) The description of parameters available for inclusion with the ^p, ^d, | and ^w commands was missing from this file. Additonal information | included as well | | 3) In case of the driver not being able to get enough memory for its | buffers, it will output the string "No mem" to the printer. Setting up the parameter file for your brand of printer. ======================================================== In the following we assume that you want to generate a driver for your printer called MYPRINTER (the name may not contain spaces). 1) Copy NECCP6.dat to MYPRINTER.dat 2) Edit MYPRINTER.dat and change the NEC CP6 specific escape sequences to the sequences required for your printer. If wanted/needed change also the other parameters specifying the operation of the driver. | Do NOT add comments in lines with s: | Do NOT totally delete any parameters that your printer may not need. | PrtDrvGen expects them all to be there (eventually as empty strings | in case of string parameters). Numerical parameters are provided with certain commands. Each parameter is a byte, value 0 - 255. If you specify to the driver generator that an alphanumeric driver without graphics should be generated, you will get a very small driver with limited functionality e.g. Preferences will not be used for setting up the printer, only the escape sequences specified. This may be OK for very specific applications or for drivers (e.g. daisy wheel) with limited graphical capabilities. The parameters available for inclusion into the escape sequences in case of the full featured driver with the commands ^p, ^d and ^w are as follows for the various printer commands: | (NOTE. the ^d command can be used for debugging purposes because it | will display in decimal notation (3 digits) the binary parameter | value referenced by the ^p command). RIN: ---- Parameter 0: Lines per inch --- 1: No of lines on one page (Preferences) --- 2: - - - - - - (computed from form definition) --- 3: No of lines to skip at perforation ( - - - - ) --- 4: Left margin (Preferences, first column to write, Amiga std.) --- 5: Right margin (Preferences, last column to write, ---- ) --- 6: Left margin - 1 (last column not to write, NEC standard) --- 7: Right margin + 1 (first column not to write, ---- ) All others: ----------- Parameters 0 - 7 are the ones provided with the command, if any. Additionally the following parameters are available: IND, NEL, RI: Parameter 0: line count before command --- 1: line count after command SFC, SBC: Parameter 0: as provided by command --- 1: Parameter 0 MOD 10 --- 2: value from colortable[Parameter 1] STBM: Parameter 0: current no of lines to skip at perforation --- 1: current no of lines on page (paper length) --- 2: Parameter 1 - Parameter 0 SLPP: Parameter 0: current no of lines on page (paper size) --- 1: current no of lines to skip at perforation --- 2: Parameter 0 - Parameter 1 SLRM, CAM: Parameter 0: as provided (CAM: 1) --- 1: as provided (CAM: computed) --- 2: Parameter 0 - 1 --- 3: Parameter 1 + 1 PLD, PLU: Parameter 0: (length specified in parameter file) * (6 or 8)/8 | To use this driver for a black and white only printer do the following: | change "Printer Class" to 1 and "Color Class" to 1. There is no need | to change the "Sequence for printing colors" parameters. | The colors specified in the SFC and SBC are the printer specific colors | and will only be used if your program actually uses the SFC and SBC | commands with an embedded ^p2/^d2/^w2 command. | Inkjet and laser printers will often print one line of dots at a time. | Most often that would require the "Storage of dots in buffer" parameter | to be specified as 0 and "No of Raster Rows on each pass" as 1. To clarify the parameters for storing dots in the buffer the following figure of one pass (line) of a print head is presented: X -> Y 0 0 ::::::::::::::::::::::::::::::::::: ::::::::::::::::::::::::::::::::::: ::::::::::::::::::::::::::::::::::: ::::::::::::::::::::::::::::::::::: The dots may be stored in consecutive bytes as a) Column by column, left to right Byte 1: [(0,0), (0,1), (0,2) .... (0,7)] Byte 2: [(1,0), (1,1)...] b) Column by column, right to left Byte 1: [(0,7), (0,6), (0,5) .... (0,0)] Byte 2: [(1,7), (1,6)...] c) Row by row, left to right Byte 1: [(0,0), (1,0), (2,0) .... (7,0)] Byte 2: [(8,0), (9,0)...] d) Row by row, right to left Byte 1: [(7,0), (6,0), (5,0) .... (0,0)] Byte 2: [(15,0), (14,0)...] | The parameters available for inclusion by the ^p, ^d, and ^w commands when | writing graphics are the following: | | Parameter "0-1" Parameter "2-3" | [xxxxxxxx xxxxxxxx] [xxxxxxxx xxxxxxxx] | ^p0 ^p1 ^p2 ^p3 binary bytes | ^d0 ^d1 ^d2 ^d3 3 digit decimal bytes | ^w0 ^w2 5 digit decimal words | | Parameter "0-1" = ^p0 * 256 + ^p1 = ^w0 | | At "Init graphics before/after delay": | Parameter "0-1": no of dot columns to receive in each pass (line) | --- "2-3": no of dots in each column | | These strings are output to the printer at the very beginning of | the graphics dump. The delay between them allows for a lengthy | reset command to finish and the printer to become ready for the | following commands if that is needed. | This part should be used for initializing the printer with values | which are constant throughout the entire graphics dump e.g. | unidirectional printing, proper line spacing to avoid white | streaks in the picture etc. | | At "Color x prefix" and "Each single buffer terminated by": | Parameter "0-1": as above + no of dot columns added to the left | margin in order to center picture | | --- "2-3": no of bytes actually used for the graphics data | for one pass (line) (size of <data for color x> | below). In case of a 24 pin dot matrix printer | parameter 1 = 24/8 * parameter 0. For an 8 pin | dot matrix printer parameter 1 = parameter 0. | | Make sure, that the dots per inch density you typically will | specify to the printer in these prefixes, are in accordance | with the "Max dots in X direction" and "Dots pr. inch in X | direction" parameters, which AmigaDOS will use for generating | the graphics data for the printer. | | A typical prefix would contain: | <CR> <select print color> <specify graphics mode and no of | bytes/columns of data to follow> | | The pass (line) buffer layout is: | <color 1 prefix> <data for color 1> | <color 2 prefix> <data for color 2> | <color 3 prefix> <data for color 3> | <color 4 prefix> <data for color 4> <Each s. buf. term. by> | | The contens of the prefixes for the NEC CP6 driver is: | <CR> <select print color> <specify graphics mode and how many pin | columns of data to follow> | | At "Finish graphics dump": | No parameter values available. | | This string (e.g. a form feed and set printer back to normal text | state, if that is needed) is output at the very end of the | graphics dump. Generating the driver. ====================== Make sure, that the files MYPRINTER.dat and PrtDrv.lod are located in the current directory. The driver generated will be located in the current directory with the name MYPRINTER. Execute the driver generator PrtDrvGen PrtDrvGen and respond to the prompt for "Alphanumeric driver without graphics (y/n)" and "Printer driver name: " (the latter being MYPRINTER). Generating the driver lasts appr. 30 sec. (alphamuneric) or 1.5 minute. The sizes of the generated drivers when loaded are approx. 1 Kb and 10.5 Kb. To make the driver available for AmigaDOS do the following: Copy MYPRINTER To DEVS:printers With Preferences do: AmigaDOS 1.1: change the printer to Custom and specify MYPRINTER as Custom Printer Name. After a warm boot (ctrl-Amiga-Amiga) the driver can be used AmigaDOS 1.2: change the printer to MYPRINTER |Using the driver |================ | |The AmigaDOS printer device code and the printer specific code (printer |drivers) will not be loaded into memory until the first output operation |to the printer is performed. You may experience, that after this load |nothing happens. This is most likely because the driver could not get |enough contiguous memory for its buffers. | |The code of this driver is due to the added features larger than most |other drivers, but it will in case of memory shortage reduce its memory |requirements and execute in a slower mode. If sufficient contiguous memory |is still not available, it will print the string "No mem" on the printer |to inform you about this. | |You may avoid this by setting margins narrower with Preferences. That will |produce a smaller picture, but it will reduce the memory requirements. |You may also choose to print with less density, if your printer supports |more than a single dots-per-inch mode. SHAR_EOF cat << \SHAR_EOF > NECCP6.dat Printer specific data for the Amiga printer driver. =================================================== Printer: NEC P6/CP6/P7/CP7 by Jxrgen Thomsen 870122 (Please, also read PrmFil.doc in addition to the comments here. The program analyzing this file is looking for b/w/l/s followed by a colon to mark the start of a parameter. Keep ALL parameters. If not needed keep unchanged or in case of strings, delete the contents of the string, but keep the s<colon> mark. Do NOT add comments after escape sequences specified after s<colon>). Comment, Data type(byte,word,long,string), Data Version w: 1 Revision w: 0 Printer Class (add values) (0=alphanum,1=graphics,2=color) b: 3 Color Class (your "ribbon" colors) Black, White, Yellow, Magenta, Cyan (1(BWonly),2(YMC),3(BWorYMC),4(BYMC)) If your printer uses Red, Green, Blue instead then add 8 to above values and use AmigaDOS 1.2 b: 4 No of Pica size chars on Narrow Tractor b: 80 No of char sets b: 4 No of seconds before timeout l: 30 Pica size (SHORP0, 0.01 Chars Per Inch) w: 1000 Elite size (SHORP2, 0.01 Chars Per Inch) w: 1200 Fine size (SHORP4, 0.01 Chars Per Inch) w: 2000 Specify paper parameters as you like. The following values are the standard ones US letter size Width (0.01 inch) w: 800 Length (0.01 inch) w: 1100 Lines to skip at perforation at 6 LPI w: 6 RIN (2nd string, after delay etc.) s:^[T^[U^0^[R^0 US legal size Width (0.01 inch) w: 800 Length (0.01 inch) w: 1400 Lines to skip at perforation at 6 LPI w: 6 RIN (2nd string, after delay) s:^[T^[U^0^[R^0 Narrow tractor Width, narrow (0.01 inch) w: 800 Length, narrow (0.01 inch) w: 0 (usually 0 = infinite) Lines to skip at perforation at 6 LPI w: 6 RIN (2nd string, after delay) s:^[T^[U^0^[R^0 Wide tractor Width (0.01 inch) w: 1360 Length (0.01 inch) w: 0 (usually 0 = infinite) Lines to skip at perforation at 6 LPI w: 6 RIN (2nd string, after delay) s:^[T^[U^0^[R^0 Custom paper Width (0.01 inch) w: 800 Length (0.01 inch) w: 1100 Lines to skip at perforation at 6 LPI w: 6 RIN (2nd string, after delay, see below) s:^[T^[U^0^[a^3 Partial line up/down length (0.01 printer units at 6 LPI) w: 1500 Colors for SFC and SBC: (use ^p2 or ^d2 to access them) NEC CP6 No. 0 (30/40) b: 0 black -- 1 (31/41) b: 1 magenta -- 2 . b: 2 cyan -- 3 . b: 3 violet -- 4 . b: 4 yellow -- 5 . b: 5 orange -- 6 . b: 6 green -- 7 . b: 7 brown -- 8 . b: 0 black -- 9 (39/49) b: 0 black Conversion Table (^X = ctrl-X, etc. ^[ = ESC, ^\ = FS, ^<octal digits> = byte value, ^^ = ^ Certain parameters are followed by 1 or more numerical values as parameters e.g. SLRM. They are stored in P[0], P[1] etc. and may be accessed by inserting the following commands (e.g. ^p1) ^px = insert parameter byte P[x] as a binary byte here ^dx = insert parameter byte P[x] as three decimal characters here ^wx = insert parameter bytes P[x], P[x+1] as 5 decimal characters here Write string immediately after colon on one line only. An empty string after colon specifies no simple conversion possible. The SPACE character is significant.) Amiga Your Printer RIS ^[c reset s:^\@ RIN ^[#1 initialize (common to all paper sizes excpt. custom [see RIN below] followed by a delay of 2 seconds, VERPx, SHORPx, DENx, PROPx, SLRM, SLPP, PERFx RIN (2nd string) as defined above) s:^[@ IND ^[D line feed s:^12 NEL ^[E return line feed s:^15^12 RI ^[M reverse line feed s:^\R^12^\F SGR0 ^[[0m normal character set s:^[5^[-^0^[F SGR3 ^[[3m italics on s:^[4 SGR23 ^[[23m italics off s:^[5 SGR4 ^[[4m underline on s:^[-^1 SGR24 ^[[24m underline off s:^[-^0 SGR1 ^[[1m boldface on s:^[E SGR22 ^[[22m boldface off s:^[F SFC ^[[3nm n=0-9 set foregr. color s:^[r^p2 SBC ^[[4nm n=0-9 set background col. s: SHORP0 ^[[0w normal pitch s:^22^[W^0^[P SHORP2 ^[[2w elite on s:^[M^22 SHORP1 ^[[1w elite off s:^[P SHORP4 ^[[4w condensed fine on s:^[M^17 SHORP3 ^[[3w condensed off s:^22^[P SHORP6 ^[[6w enlarged on s:^[W^1 SHORP5 ^[[5w enlarged off s:^[W^0 DEN6 ^[[6"z shadow print on s:^[E DEN5 ^[[5"z shadow print off s:^[F DEN4 ^[[4"z doublestrike on s:^[G DEN3 ^[[3"z doublestrike off s:^[H DEN2 ^[[2"z near letter quality on s:^[x^1^[R^0 DEN1 ^[[1"z near letter quality off s:^[x^0^[R^0 SUS2 ^[[2v superscript on s:^[S^0 SUS1 ^[[1v superscript off s:^[T SUS4 ^[[4v subscript on s:^[S^1 SUS3 ^[[3v subscript off s:^[T SUS0 ^[[0v normalize the line s:^[T PLU ^[L partial line up s:^[j^p0 PLD ^[K partial line down s:^[J^p0 FNT0 ^[(B US char set s:^[R^0 FNT1 ^[(R French char set s:^[R^1 FNT2 ^[(K German char set s:^[R^2 FNT3 ^[(A UK char set s:^[R^3 FNT4 ^[(E Danish I s:^[R^4 FNT5 ^[(H Swedish s:^[R^5 FNT6 ^[(Y Italian s:^[R^6 FNT7 ^[(Z Spanish s:^[R^7 FNT8 ^[(J Japanese s:^[R^10 FNT9 ^[(6 Norwegian s:^[R^11 FNT10 ^[(C Danish II s:^[R^12 PROP2 ^[[2p proportional on s:^[p^1 PROP1 ^[[1p proportional off s:^[p^0 PROP0 ^[[0p proportional clear s: TSS ^[[n E set proportional offset s:^[ ^p0 JFY5 ^[[5 F auto left justify s:^[x^1^[a^0 JFY7 ^[[7 F auto right justify s:^[x^1^[a^2 JFY6 ^[[6 F auto full justify s:^[x^1^[a^3 JFY0 ^[[0 F auto justify off s:^[x^0 JFY3 ^[[3 F letter space, justify s: JFY1 ^[[1 F word fill, auto center s:^[x^1^[a^1 VERP0 ^[[0z 1/8" line spacing s:^[0 VERP1 ^[[1z 1/6" line spacing s:^[2 SLPP ^[[nt set form length n s:^[C^p0 PERF ^[[nq perf skip n (n > 0) s:^[N^p0 PERF0 ^[[0q perf skip off s:^[O LMS ^[#9 left margin set s: RMS ^[#0 right margin set s: TMS ^[#8 top margin set s: BMS ^[#2 bottom margin set s: STBM ^[[Pn1;Pn2r top & bottom margins s: SLRM ^[[Pn1;Pn2s left & right margins s:^[l^p2^[Q^p3 CAM ^[#3 clear margins s:^[l^p2^[Q^p3 HTS ^[H set horiz tab s: VTS ^[J set vertical tab s: TBC0 ^[[0g clear horiz tab s: TBC3 ^[[3g clear all horiz tab s:^[D^0 TBC1 ^[[1g clear vertical tab s: TBC4 ^[[4g clear all vertical tabs s:^[B^0 TBCALL ^[#4 clear all hor & vert tabs s:^[D^0^[B^0 TBSALL ^[#5 set default tabs s:^[e0^3^[e1^5 EXTEND ^[[Pn"x extended commands s: The following are sequences needed for the printer specific code (only to be used when the full featured driver is generated) RIN (custom paper, 1st string, before 2 sec. delay followed by RIN (2nd string) above) s: 1. available for EXTEND ^[[1"x s: 2. available for EXTEND ^[[2"x s: 3. available for EXTEND ^[[3"x s: 4. available for EXTEND ^[[4"x s: 5. available for EXTEND ^[[5"x s: 6. available for EXTEND ^[[6"x s: 7. available for EXTEND ^[[7"x s: 8. available for EXTEND ^[[8"x s: 9. available for EXTEND ^[[9"x s: 10. available for EXTEND ^[[10"x s: Density 1 (default at Draft, 6 LPI) graphics No of Raster Rows (pins) on each pass w: 8 Max dots in X direction l: 480 (8 * 60) Max dots in Y direction (0=infinite) l: 0 Dots pr inch in X direction w: 60 Dots pr inch in Y direction w: 60 (the above parameters is used by AmigaDOS. Make sure, that they are in accordance with the graphics mode parameters included in the color prefixes below and sent to the printer) Storage of dots in buffer (and sending the data to the printer) 0: row by row (some laser/ink jet) 1: column by column (dot matrix) b: 1 Fill buffer bytes from 0: right to left, 1: left to right b: 1 In 320 x 200 resolution the ratio pixel height/width = 1.2 on a monitor with the vertical height adjusted to let the monitor screen be totally filled by the picture. Some programs believe the ratio is 1 (e.g DPaint) so if you primarily want to print proper squares and circles drawn by these programs specify here the divisor to divide into the real pixel height to give the pixel height used by these programs. Pixel height divisor * 100 (e.g. DPaint 120, monitor image 100) w: 120 Sequence for printing colors (combination of ALL values 1,2,3,4; specifies sequence of color data in print buffer; colors for RGB printers in [...];, leave as is for black/white printers) Print black [white] as no. b: 4 --- yellow [blue] as no. b: 1 --- magenta (redish) [green] as no. b: 2 --- cyan (blueish) [red] as no. b: 3 Color black [white] prefix s:^15^[r^0^[*^0^p1^p0 Color yellow [blue] prefix s:^15^[r^4^[*^0^p1^p0 Color magenta [green] prefix s:^15^[r^1^[*^0^p1^p0 Color cyan [red] prefix s:^15^[r^2^[*^0^p1^p0 Init graphics before delay s:^\3^60^[U^1^[j^30^15^12 Init graphics after delay s: Each single buffer terminated by s:^15^12 Finish graphics dump s: Density 2 (default at Draft, 8 LPI) graphics No of Raster Rows (pins) on each pass w: 24 Max dots in X direction l: 720 Max dots in Y direction (0=infinite) l: 0 Dots pr inch in X direction w: 90 Dots pr inch in Y direction w: 180 Storage of dots in buffer 0: row by row (some laser/ink jet) 1: coloumn by column (dot matrix) b: 1 Fill buffer bytes from 0: right to left, 1: left to right b: 1 Pixel height divisor * 100 (e.g. DPaint 120, monitor image 100) w: 120 Sequence for printing colors Print black as no. b: 4 --- yellow as no. b: 1 --- magenta (redish) as no. b: 2 --- cyan (blueish) as no. b: 3 Color black prefix s:^15^[r^0^[*^46^p1^p0 Color yellow prefix s:^15^[r^4^[*^46^p1^p0 Color magenta prefix s:^15^[r^1^[*^46^p1^p0 Color cyan prefix s:^15^[r^2^[*^46^p1^p0 Init graphics before delay s:^\3^60^[U^1^[j^30^15^12 Init graphics after delay s: Each single buffer terminated by s:^15^12 Finish graphics dump s: Density 3 (default at Letter, 6 LPI) graphics No of Raster Rows (pins) on each pass w: 24 Max dots in X direction l: 1440 Max dots in Y direction (0=infinite) l: 0 Dots pr inch in X direction w: 180 Dots pr inch in Y direction w: 180 Storage of dots in buffer 0: row by row (some laser/ink jet) 1: coloumn by column (dot matrix) b: 1 Fill buffer bytes from 0: right to left, 1: left to right b: 1 Pixel height divisor * 100 (e.g. DPaint 120, monitor image 100) w: 120 Sequence for printing colors Print black as no. b: 4 --- yellow as no. b: 1 --- magenta (redish) as no. b: 2 --- cyan (blueish) as no. b: 3 Color black prefix s:^15^[r^0^[*^47^p1^p0 Color yellow prefix s:^15^[r^4^[*^47^p1^p0 Color magenta prefix s:^15^[r^1^[*^47^p1^p0 Color cyan prefix s:^15^[r^2^[*^47^p1^p0 Init graphics before delay s:^\3^60^[U^1^[j^30^15^12 Init graphics after delay s: Each single buffer terminated by s:^15^12 Finish graphics dump s: Density 4 (default at Letter, 8 LPI) graphics No of Raster Rows (pins) on each pass w: 24 Max dots in X direction l: 2880 Max dots in Y direction (0=infinite) l: 0 Dots pr inch in X direction w: 360 Dots pr inch in Y direction w: 180 Storage of dots in buffer 0: row by row (some laser/ink jet) 1: coloumn by column (dot matrix) b: 1 Fill buffer bytes from 0: right to left, 1: left to right b: 1 Pixel height divisor * 100 (e.g. DPaint 120, monitor image 100) w: 120 Sequence for printing colors Print black as no. b: 4 --- yellow as no. b: 1 --- magenta (redish) as no. b: 2 --- cyan (blueish) as no. b: 3 Color black prefix s:^15^[r^0^\Z^p1^p0 Color yellow prefix s:^15^[r^4^\Z^p1^p0 Color magenta prefix s:^15^[r^1^\Z^p1^p0 Color cyan prefix s:^15^[r^2^\Z^p1^p0 Init graphics before delay s:^\3^60^[U^1^[j^30^15^12 Init graphics after delay s: Each single buffer terminated by s:^15^12 Finish graphics dump s: SHAR_EOF # End of shell archive exit 0 ==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-== Matthew D. Shaver --- UUCP: ..!{sun|styx}!elxsi!beatnix!matt USPS: ELXSI Ltd., 2334 Lundy Pl., San Jose, CA 95131 BELL: (408) 942-0900