home *** CD-ROM | disk | FTP | other *** search
/ Der Mediaplex Sampler - Die 6 von Plex / 6_v_plex.zip / 6_v_plex / DISK2 / MULTI_04 / SHOWGL15.ZIP / SHOWHPGL.DOC < prev    next >
Text File  |  1991-12-28  |  14KB  |  382 lines

  1. SHOWHPGL    A viewing program for HP-GL and HP-GL/2 plotting programs.
  2.  
  3. Revision 1.5
  4.  
  5.  
  6. Introduction
  7.  
  8. This program is designed to preview HP-GL and HP-GL/2 plotting programs
  9. on the console screen of an IBM PC or compatible computer.  It
  10. impliments 46 of 97 HP-GL or HP-GL/2 instruction.  Of the 97
  11. instruction, 22 either have no meaning for this type of program or
  12. are otherwise unrelated to drawing.  Four instructions are included to
  13. provide backward compatibility with the HP9872 plotter.  These instructions
  14. are interpreted as NOP's.
  15.  
  16. It is written in Microsoft C, version 6.0.  It requires MS-DOS
  17. version 3.0 or above to run.  This program is meant to be used as a
  18. preview tools for HP-GL files.  It is as accurate as it could be made
  19. with the limited information and resources available at the time it
  20. was written.  Known bugs or deficiencies are listed after the
  21. instruction set summary.
  22.  
  23.  
  24.  
  25. Usage
  26.  
  27. SHOWHPGL -[video][paper][plotter][debug]  [filename]
  28.  
  29. where 
  30.  
  31.     filename    optional filename for HP-GL source file.  If a 
  32.             filename is not supplied, standard input is 
  33.             assumed.
  34.  
  35.     video        option to force usage of a particular video 
  36.             mode.  Values are: c, e, v, for CGA, EGA, or 
  37.             VGA.
  38.               'c' will force CGA 640 x 200 monochrome mode,
  39.               'e' will force EGA 640 x 350 16 color mode,
  40.               'v' will force VGA 640 x 480 16 color mode.
  41.  
  42.             Default mode is autodetect and select 
  43.             highest resolutions standard mode available.  
  44.             No SVGA modes are supported.
  45.  
  46.     paper        One of the following standard paper sizes:
  47.             A, B, C, D, E, or A4, A3, A2, A1, A0 .  
  48.             Default size is A. Case is important!!
  49.             A0 is a paper size option: a0 is unknown.
  50.  
  51.     plotter        Default emulation is HP 7470/7475 plotter.
  52.             'dp'  will select DraftPro emulation.
  53.  
  54.             The HP 7470/7475 have the plotter units coordinate
  55.             origin in the lower left corner.  The DraftPro
  56.             uses the center of the page as the origin.
  57.  
  58.     debug        Default is to silently pass errors.  -db will
  59.             turn on error output to stdout.
  60.  
  61.  
  62. The user may also set the environment variable HP-GL to a default set 
  63. of switches, i.e.,
  64.  
  65. set hpgl=dpA3
  66.  
  67. specifies default options of DraftPro mode and A3 size paper.
  68.  
  69. If command line switches are present, the environment settings are
  70. ignored.  Multiple paper size selections will cause the program to
  71. abort.  Multiple video mode selections will default to the highest
  72. resolution autodetected mode.
  73.  
  74. The switch character is defined as '-'.   It is hard coded into the 
  75. program.  Directory path names may include either or both '\' and '/'
  76. directory separators.  This program has been tested under MS-DOS 3.20
  77. and MS-DOS 5.0 .
  78.  
  79. All video graphics functions draw using the video BIOS.  No direct 
  80. screen I/O is used.  Additional BIOS supported graphics modes may be 
  81. supported by defining the appropriate structures in graphix.h and the 
  82. macros in graph.h and making appropriate changes to the mode lists in 
  83. autogrph.c and showhpgl.c .
  84.  
  85. When the debugging flag is turned on, this program generates diagnostic
  86. output text strings when illegal or unsupported instructions are
  87. encountered.  THESE STRINGS APPEAR IN THE GRAPHICS DISPLAY AND MAY
  88. INTERFERE WITH THE DRAWING IF SUFFICIENT ERRORS OCCUR.  If you expect
  89. large numbers of errors and wish to retain a listing of the output,
  90. redirect any generated output to a file.
  91.  
  92. Note that this program DOES NOT restore the video mode which was 
  93. in use prior to calling this program.  Although the EGA and VGA 
  94. display systems are capable of better than 80 columns and 25 rows on 
  95. the screen, they do not appear as supported IBM BIOS video modes.  
  96. Determination of nonstandard video mode parameters was beyond the 
  97. scope of this program.  If you want to restore a recognized video mode 
  98. at the end of program execution, add the following code to showhpgl.c just 
  99. before the end of main ():
  100.  
  101.     twait (infile, 50);
  102.     graphics_off ();
  103.  
  104. This will introduce a 50 second delay before restoring the video mode.  
  105. If the video mode was not a BIOS standard video mode, graphics_off () 
  106. may not be able to restore it properly.
  107.  
  108.  
  109. Compilation
  110.  
  111. The entire package is compiled as follows:
  112.  
  113. cl [-qc] showhpgl.c hpgl1.c hpgl2.c getargs.c autogrph.c graphix.lib
  114.  
  115. Note that at least hpgl1.c and hpgl2.c must be compiled with the default
  116. optimization (i.e., no -qc option).  Failure to do so will result in
  117. a _TEXT segment which exceeds 64K and the link will fail.  graphix.lib
  118. is compiled in the small memory model.
  119.  
  120. Because graphix.lib internally uses Microsoft interrupt calling 
  121. functions, it is unlikely that this can be ported to Borland C without 
  122. re-writing the interrupt calls in graphix.lib
  123.  
  124.  
  125. Distribution Package
  126.  
  127. The distribution package includes the following:
  128.  
  129. showhpgl.doc        this document
  130. showhpgl.exe        the executable program file
  131. showhpgl.c        main program
  132. hpgl1.c            additional functions
  133. hpgl2.c            additional functions
  134. hpgl.h            header file for showhpgl.c, hpgl1.c hpgl2.c
  135. getargs.c        command line options and arguments
  136. autogr.c        video graphix adapter detection
  137. labels.c        labeling font for showhpgl (part of graphix.lib)
  138. graphix.lib        graphics functions library
  139. graphix.h        header file for main program (showhpgl.c)
  140. graph.h            header file for additional modules (hpgl1.c, 
  141.             hpgl2.c)
  142. license.doc        license agreement
  143.  
  144.     HP-GL test programs
  145.  
  146. attest.dpf        AT: 3-point arc, absolute
  147. cptest.dpf        CP: character plot 
  148. dvtest.dpf        DV: variable text path (fails this test)
  149. ea_ertst.dpf        EA, ER: edge rectangle absolute and relative
  150. estest.dpf        ES: extra inter-character spacing
  151. ewtest.dpf        EW: outline wedge
  152. iwtest.dpf        IW: soft-clip window
  153. labels.dpf        LB, LO, SL, SR, DV: labels and label origins, char. 
  154.             slant, char. size (relative), direction vertical.
  155. petest.dpf        PE: polyline encoded
  156. prtest.dpf        PR: relative plotting
  157. ra_rrtst.dpf        RA, RR: filled rectangle, absolute (no solid fills)
  158. rttest.dpf        RT: 3-point arc, relative
  159. smtest.dpf        SM: symbol mode
  160. test1.dpf        AA, AR, CI, IP, SC, SL, PR: non-specific test program
  161. test3.dpf        LB,LO,TL,XT,YT: test labels, label origins, x-,
  162.                 & y-ticks
  163. fwdaltbx.dpf        drawing to demonstrate the -dp drawing option.  
  164.                 Use -C or larger for paper size.
  165.  
  166. Most of these test programs are taken from "The HP-GL/2 Reference Guide" 
  167. and, as such are copyright 1990 by Hewlett-Packard.  This book provides
  168. illustrations of what the output of most of these programs should look 
  169. like accompanying the description of the instruction.
  170.  
  171. The file labels.c is included for those who wish to modify the font used
  172. for labeling.  This font is incorporated into graphix.lib.  To modify the
  173. font, make the required changes to labels.c, compile it to a ".obj" file,
  174. and update the library using "LIB -+labels;" (Microsoft library manager).
  175. You may then re-link the remaining files to create a new program which
  176. uses the new fonts.
  177.  
  178.  
  179. Licensing
  180.  
  181. Please refer to the license agreement in license.doc.  Use of this 
  182. software and the enclosed source code is limited to the terms of the
  183. license.
  184.  
  185. Bug Reports:
  186.  
  187. Please report any bugs to 
  188.  
  189. becker@lennon.src.honeywell.com   (Robert Becker).  
  190.  
  191. If you prefer, mail them to me at
  192.  
  193. Robert Becker
  194. 15836 Quebec Circle
  195. Eden Prairie, MN   55346
  196.  
  197.  
  198. Instructions Status
  199.  
  200. The following is a list of instructions and the level of implimentation
  201. in showhpgl.exe of HP-GL/2 instructions.  Note that not all instructions 
  202. are HP-GL/2 instructions.  Those with notations in the source column 
  203. indicate where this instruction was found.  Status indicates the level of 
  204. implimentation of the instruction.  There are four levels of implimentation:
  205.  
  206. Full:        instruction is fully functional as per HP-GL/2
  207. Partial:    instruction implimentation is incomplete
  208. NOP:        no action or action not meaningful for this application
  209. N/A:        not available: instruction was not implimented.
  210.  
  211. There are 38 Full, 8 partial, 26 NOP, and 29 N/A instructions.  Of the N/A
  212. instructions, 11 are related to character set or font selection.  Of the
  213. NOP instructions, 12 are related to output or digitizing a point and 4 are
  214. for backward compatibility with earlier products.  All output instruction
  215. that have no meaning in this application and are implimented as NOP
  216. instructions.  No dual context mode instructions (HP-GL & PCL) have been
  217. inplimented.
  218.  
  219. Command    Description            Status    source        Comments
  220.  
  221. AA    arc absolute            Full
  222. AC    anchor corner            Full
  223. AD    alternate font definition    N/A
  224. AF    advance full page        NOP            compatibility w/HP9872
  225. AH    advance half-page        NOP            compatibility w/HP9872
  226. AR    arc relative            Full
  227. AT    3 point arc absolute        Full
  228. BP    begin plot            Partial            waits TWAIT seconds before clearing plot from screen
  229. CA    designate alternate char. set    N/A    7470
  230. CF    char. fill mode            N/A
  231. CI    circle                Full
  232. CP    character plot            Full
  233. CS    designate std. character set    N/A
  234. CR    color range            N/A
  235. CT    chord tolerance            Full
  236. DC    digitizer clear            NOP
  237. DF    default                Full
  238. DI    absolute label direction    Full
  239. DL    download character        N/A
  240. DP    digitize point            NOP
  241. DR    relative label direction    Full
  242. DS    designate char. set into slot    N/A    DraftPro
  243. DT    Define label terminator        Full
  244. DV    Define variable text path    Partial            No line feed reversal
  245. EA    edge rectangle absolute        Full
  246. EC    enable cutter            NOP
  247. EP    edge polygon            N/A
  248. ER    edge rectangle relative        Full
  249. ES    extra space            Full
  250. ESC    escape code instructions    Partial            No PCL mode switch commands
  251. EW    edge wedge            Full
  252. FI    primary font selection by ID    N/A
  253. FN    secondary font selection by ID    N/A
  254. FP    fill polygon            N/A
  255. FR    frame advance            N/A
  256. FT    fill type            Partial            Only hatched and cross-hatched fills
  257. GM    graphics memory            NOP    DraftPro
  258. IM    input mask            NOP    7470
  259. IN    initialize            Full            Since there is no 'front panel', IN1 is same as IN
  260. IP    input P1 & P2            Full
  261. IR    input relative P1 & P2        Full
  262. IW    input window            Full
  263. LA    line attributes            NOP            No wide lines available
  264. LB    label                Full
  265. LO    label origin            Full
  266. LT    line type            Partial            No adaptive line patterns
  267. MC    merge control            N/A
  268. MG    message to panel        NOP
  269. MT    media type            NOP
  270. NP    number of pens            NOP
  271. NR    not ready            Full
  272. OA    output pen position & status    NOP    7470
  273. OC    output commanded positon & sts    NOP    7470
  274. OD    output digitized point & sts    NOP
  275. OE    output error            NOP
  276. OH    output hard-clip limits        NOP
  277. OI    output identification        NOP
  278. OO    output options            NOP    7470
  279. OP    output P1 & P2            NOP
  280. OS    output status            NOP
  281. OW    output window            NOP    7470
  282. PA    plot absolute            Full
  283. PC    assign pen colors        N/A
  284. PD    pen down            Full
  285. PE    polyline encoded        Full
  286. PG    page advance            Modified        Waits 6 seconds before clearing screen
  287. PM    polygon mode            N/A
  288. PR    plot relative            Full
  289. PS    plot size            Full
  290. PU    pen up                Full
  291. PW    pen width            N/A
  292. QL    quality level            NOP
  293. RA    fill rectangle absolute        Partial            only hatch & cross-hatch fills
  294. RF    raster fill definition        N/A
  295. RO    rotate coordinate system    N/A
  296. RP    replot                N/A
  297. RR    fill rectangle relative        Partial            only hatch & cross-hatch fills
  298. RT    relative arc 3-point        Full
  299. SA    select alternate font        N/A
  300. SB    scalable or bitmap font        N/A
  301. SC    scale plot            Full
  302. SD    standard font definition    N/A
  303. SI    absolute char. size        Full
  304. SL    char. slant            Full
  305. SM    symbol mode            Full
  306. SP    select pen            Full
  307. SR    relative char. size        Full
  308. SS    select standard char. set    N/A
  309. ST    sort vectors            NOP
  310. SV    screened vectors        N/A
  311. TL    tick length            Full    7470
  312. TD    transparent data        N/A
  313. TR    transparency mode        N/A
  314. UC    user defined character        N/A
  315. UL    user defined line pattern    N/A
  316. VA    adaptive pen velocity        NOP            compatibility w/HP9872
  317. VN    normal pen velocity        NOP            compatibility w/HP9872
  318. VS    velocity select            NOP
  319. WG    fill wedge            Partial            Outline of wedge, only (no filling available)
  320. WU    pen width unit selection    N/A
  321. XT    x-tick                Full    7470
  322. YT    y-tick                Full    7470
  323.  
  324. Notes:
  325.  
  326.     BP instruction is checked for syntax.  BP will wait PG_DELAY seconds
  327.     before clearing the screen if the screen was plotted on.  If the
  328.     screen was not plotted on, the plotter is initialized.  In either
  329.     case, the plotter is initialized.
  330.  
  331.     PG instruction generates a wait of PG_DELAY seconds before clearing 
  332.     the screen.
  333.  
  334.     PG_DELAY is defined in hpgl.h as 6 seconds.
  335.  
  336.     HP-GL and HP-GL/2 distinguish between <cr> and <lf> for 
  337.     positioning on labels.  The C-language, being based in UNIX, 
  338.     assumes the <lf> is the newline character and <cr> has no 
  339.     meaning.  This assumption is also present in this program and 
  340.     some test case labeling and character plotting tests will fail 
  341.     because of this.  The test program dvtest.dpf fails because of 
  342.     this.  The display should look something like:
  343.  
  344.           D A                  ABC
  345.           E B                  DEF
  346.           F C                     GHI
  347.         G
  348.         H
  349.         I
  350.  
  351.     Several of the HP-GL/2 specifications are incomplete.  For 
  352.     example, when one is drawing a wedge with symbol mode on, 
  353.     placement of the symbol is unspecified.  Similarly, when TD 
  354.     (transparent data) mode is on, the font used to display the 
  355.     control characters is not specified.  Error handling is not 
  356.     always specified.  For example, when CT is used to specify 
  357.     deviation distance on circles and arcs, this reference does 
  358.     not specify what action to take if a distance tolerance is
  359.     not specified for subsequent circles and arcs.  The DraftPro
  360.     manual specifies that the default shall be 5 degrees in this 
  361.     case.  The Addison-Wesley book does not specify what action
  362.     to take.
  363.  
  364.     For hatch and cross-hatch fills, it is not clearly specified 
  365.     for the case of user-unit defined hatch x-spacing if the scale 
  366.     in the y-direction should affect the spacing of the hatch. In this 
  367.     implimentation, it was decided that the hatch spacing displayed on
  368.     the screen should be invariant with the rotation angle.
  369.  
  370.     HP-GL, HP-GL/2, HP, Hewlett-Packard, and DraftPro are registered
  371.     trademarks of the Hewlett-Packard company.
  372.  
  373.     PC, CGA, EGA, VGA are or may be registered trademarks of the IBM
  374.     company.
  375.  
  376.     UNIX is a trademark of AT&T.
  377.  
  378. Reference:
  379.  
  380.     "The HP-GL/2 Reference Guide", Addison-Wesley Publishing Company.
  381.  
  382.