home *** CD-ROM | disk | FTP | other *** search
/ C/C++ Interactive Guide / c-cplusplus-interactive-guide.iso / c_ref / csource4 / 277_01 / hpgl.h < prev    next >
Text File  |  1988-11-15  |  9KB  |  269 lines

  1. /*                             *
  2.  * HPGL-Clib Version 1.0                *
  3.  * Hewlett Packard Graphics Language 'C' Library     *
  4.  * (c) Copyright 1988, TerrAqueous Software        *
  5.  */
  6.  
  7. /* Disclaimer:                        *
  8.  * TerrAqueous Software makes no expressed or implied    *
  9.  * warranties of any kind regarding this software. In    *
  10.  * no event will TerrAqueous Software be liable for any    *
  11.  * damages or losses arising out of use of this soft-    *
  12.  * ware.                        *
  13.  */
  14.  
  15. /* Software Developers Rights:                *
  16.  * TerrAqueous Software does not require royalties on    *
  17.  * generated applications using HPGL-Clib           *
  18.  */
  19.  
  20. /* HPGL-Clib is SHAREWARE, you are encouraged to copy   * 
  21.  * and share this program with other users, on the      *
  22.  * condition that no fee or consideration is charged,   *
  23.  * and that this notice is not removed.                 *
  24.  *                            *
  25.  * COMMERCIAL USERS: A $49 license fee is required if   *
  26.  * used in a place of business or incorporated into     *
  27.  * another product.                    *
  28.  *                            *
  29.  * PRIVATE USERS: If you are using this program and     *
  30.  * find it of value, your contribution ($49 suggested)  *
  31.  * will be appreciated.                    *
  32.  *                            *
  33.  * This Software is USER SUPPORTED and your enhance-    *
  34.  * ments sent to us are encouraged. Software sent to us *
  35.  * will become the property of TerrAqueous Software.    *
  36.  *                            *
  37.  * Your license fee or contribution will get you the    *
  38.  * most recent version of HPGL-Clib and keep you on our *
  39.  * mailing list of announcements for our latest         *
  40.  * products.
  41.  *                            *
  42.  * TerrAqueous Software                    *
  43.  * 19515 FM 149, # 40, Houston, Texas 77070        *
  44.  *                            *
  45.  * Software that gets you where your going!        *
  46.  */
  47.  
  48. #define ETX    '\003' /* end of text */
  49.  
  50. /* CN - continuous sample, from hp9111a graphics tablet manual */
  51. #define CONTINUOUS_SAMPLE(fp,micro488)   { \
  52. rewind(fp); if(*micro488 != NULL) fprintf(fp,"%s",micro488); fprintf(fp,"CN;");\
  53. if(*micro488 != NULL) fprintf(fp,"\n"); }
  54.  
  55. /* DC */
  56. #define DIGITIZE_CLEAR(fp,micro488)  { \
  57. rewind(fp); if(*micro488 != NULL) fprintf(fp,"%s",micro488); fprintf(fp,"DC;");\
  58. if(*micro488 != NULL) fprintf(fp,"\n"); }
  59.  
  60. /* DF */
  61. #define PLOTTER_DEFAULT(fp,micro488)  { \
  62. rewind(fp); if(*micro488 != NULL) fprintf(fp,"%s",micro488);\
  63. fprintf(fp,"DF;"); if(*micro488 != NULL) fprintf(fp,"\n"); }
  64.  
  65. /* DP */
  66. #define DIGITIZE_POINT(fp,micro488)  { \
  67. rewind(fp); if(*micro488 != NULL) fprintf(fp,"%s",micro488); fprintf(fp,"DP;");\
  68. if(*micro488 != NULL) fprintf(fp,"\n"); }
  69.  
  70. /* IN */
  71. #define PLOTTER_INIT(fp,micro488)  { \
  72. rewind(fp); if(*micro488 != NULL) fprintf(fp,"%s",micro488); fprintf(fp,"IN;");\
  73. if(*micro488 != NULL) fprintf(fp,"\n"); }
  74.  
  75. /* IW */
  76. #define DEFAULT_WINDOW(fp,micro488) { \
  77. rewind(fp); if(*micro488 != NULL) fprintf(fp,"%s",micro488); fprintf(fp,"IW;");\
  78. if(*micro488 != NULL) fprintf(fp,"\n"); }
  79.  
  80. /* PA */
  81. #define PLOT_ABSOLUTE(fp,micro488) { \
  82. rewind(fp); if(*micro488 != NULL) fprintf(fp,"%s",micro488); fprintf(fp,"PA;");\
  83. if(*micro488 != NULL) fprintf(fp,"\n"); }
  84.  
  85. /* PU */
  86. #define PENUP(fp,micro488)  { \
  87. rewind(fp); if(*micro488 != NULL) fprintf(fp,"%s",micro488); fprintf(fp,"PU;");\
  88. if(*micro488 != NULL) fprintf(fp,"\n"); }
  89.  
  90. /* PR */
  91. #define PLOT_RELATIVE(fp,micro488) { \
  92. rewind(fp); if(*micro488 != NULL) fprintf(fp,"%s",micro488); fprintf(fp,"PR;");\
  93. if(*micro488 != NULL) fprintf(fp,"\n"); }
  94.  
  95. /* PD */
  96. #define PENDOWN(fp,micro488) { \
  97. rewind(fp); if(*micro488 != NULL) fprintf(fp,"%s",micro488); fprintf(fp,"PD;");\
  98. if(*micro488 != NULL) fprintf(fp,"\n"); }
  99.  
  100. /* SA */
  101. #define SELECT_ALT_CHAR(fp,micro488) { \
  102. rewind(fp); if(*micro488 != NULL) fprintf(fp,"%s",micro488); fprintf(fp,"SA;");\
  103. if(*micro488 != NULL) fprintf(fp,"\n"); }
  104.  
  105. /* SC */
  106. #define PLOTTER_UNITS_ON(fp,micro488) { \
  107. rewind(fp); if(*micro488 != NULL) fprintf(fp,"%s",micro488); fprintf(fp,"SC;");\
  108. if(*micro488 != NULL) fprintf(fp,"\n"); }
  109.  
  110. /* SF - switch follow, from hp9111a graphics tablet manual */
  111. #define SWITCH_FOLLOW(fp,micro488)  { \
  112. rewind(fp); if(*micro488 != NULL) fprintf(fp,"%s",micro488); fprintf(fp,"SF;");\
  113. if(*micro488 != NULL) fprintf(fp,"\n"); }
  114.  
  115. /* SG - single sample, from hp9111a graphics tablet manual */
  116. #define SINGLE_SAMPLE(fp,micro488)  { \
  117. rewind(fp); if(*micro488 != NULL) fprintf(fp,"%s",micro488); fprintf(fp,"SG;");\
  118. if(*micro488 != NULL) fprintf(fp,"\n"); }
  119.  
  120. /* SI - aboslute character size default, .19 w, .27 h */
  121. #define DEFAULT_ABS_CHAR(fp,micro488) { \
  122. rewind(fp); if(*micro488 != NULL) fprintf(fp,"%s",micro488); fprintf(fp,"SI;");\
  123. if(*micro488 != NULL) fprintf(fp,"\n"); }
  124.  
  125. /* SK - set key, from hp9111a graphics tablet manual */
  126. #define SET_KEY(fp,micro488)  { \
  127. rewind(fp); if(*micro488 != NULL) fprintf(fp,"%s",micro488); fprintf(fp,"SK;");\
  128. if(*micro488 != NULL) fprintf(fp,"\n"); }
  129.  
  130. /* SN - switch normal, from hp9111a graphics tablet manual */
  131. #define SWITCH_NORMAL(fp,micro488)  { \
  132. rewind(fp); if(*micro488 != NULL) fprintf(fp,"%s",micro488); fprintf(fp,"SN;");\
  133. if(*micro488 != NULL) fprintf(fp,"\n"); }
  134.  
  135. /* SS */
  136. #define SELECT_STD_CHAR(fp,micro488) { \
  137. rewind(fp); if(*micro488 != NULL) fprintf(fp,"%s",micro488); fprintf(fp,"SS;");\
  138. if(*micro488 != NULL) fprintf(fp,"\n"); }
  139.  
  140. /* TD - test digitizer, from hp9111a graphics tablet manual */
  141. #define TEST_DIGITIZER(fp,micro488) { \
  142. rewind(fp); if(*micro488 != NULL) fprintf(fp,"%s",micro488); fprintf(fp,"TD;");\
  143. if(*micro488 != NULL) fprintf(fp,"\n"); }
  144.  
  145. /* TL */
  146. #define DEFAULT_TICK_LEN(fp,micro488) { \
  147. rewind(fp); if(*micro488 != NULL) fprintf(fp,"%s",micro488); fprintf(fp,"TL;");\
  148. if(*micro488 != NULL) fprintf(fp,"\n"); }
  149.  
  150. /* TP - take point, from hp9111a graphics tablet manual */
  151. #define TAKE_POINT(fp,micro488)  { \
  152. rewind(fp); if(*micro488 != NULL) fprintf(fp,"%s",micro488); fprintf(fp,"TP;");\
  153. if(*micro488 != NULL) fprintf(fp,"\n"); }
  154.  
  155. /* XT */
  156. #define X_TICK(fp,micro488)  { \
  157. rewind(fp); if(*micro488 != NULL) fprintf(fp,"%s",micro488); fprintf(fp,"XT;");\
  158. if(*micro488 != NULL) fprintf(fp,"\n"); }
  159.  
  160. /* YT */
  161. #define Y_TICK(fp,micro488)  { \
  162. rewind(fp); if(*micro488 != NULL) fprintf(fp,"%s",micro488); fprintf(fp,"YT;");\
  163. if(*micro488 != NULL) fprintf(fp,"\n"); }
  164.  
  165. /* RS-232-C ESCAPE COMMANDS                */
  166. #define PLOTTER_ON_SERIAL(fp) { rewind(fp); fprintf(fp,"\033.("); }
  167. #define PLOTTER_OFF_SERIAL(fp) { rewind(fp); fprintf(fp,"\033.)"); }
  168. #define RESET_HANDSHAKE_SERIAL(fp) { rewind(fp); \
  169.     fprintf(fp,"\033.R"); }
  170. #define ABORT_GRAPHICS_SERIAL(fp) { rewind(fp); \
  171.     fprintf(fp,"\033.K"); }
  172. #define ABORT_DEVICE_CTL_SERIAL(fp) { rewind(fp); \
  173.     fprintf(fp,"\033.J"); }
  174.  
  175. /* enables hardwire handshake and disables monitor mode */
  176. #define PLOTTER_CONFIG_SERIAL(fp) { rewind(fp); \
  177.     fprintf(fp,"\033.@:"); }
  178.  
  179. /* carriage return as terminator, no turnaround delay, no output
  180.    trigger, no echo terminate, no output initiator character */
  181. #define DEFAULT_OUTPUT_SERIAL(fp) { rewind(fp); \
  182.     fprintf(fp,"\033.M:"); }
  183.  
  184. /* no intercharacter delay, no xoff trigger character or immediate
  185.    response string */
  186. #define DEFAULT_EXT_OUT_HAND_SERIAL(fp) { rewind(fp); \
  187.     fprintf(fp,"\033.N:");
  188.  
  189.  
  190. /* level 1 library calls */
  191. void hpgl_arc_abs_pu();
  192. void hpgl_arc_abs_uu();
  193. void hpgl_arc_rel_pu();
  194. void hpgl_arc_rel_uu();
  195. void graph_tab_beep();
  196. void hpgl_char_set();
  197. void hpgl_circle();
  198. void hpgl_char_plot();
  199. void graph_tab_cursor_rate();
  200. void hpgl_stand_char();
  201. void hpgl_abs_dir();
  202. void hpgl_rel_dir();
  203. void hpgl_def_term();
  204. void hpgl_rectangle_abs_pu();
  205. void hpgl_rectangle_abs_uu();
  206. void hpgl_rectangle_rel_pu();
  207. void hpgl_rectangle_rel_uu();
  208. void hpgl_sector_form_pu();
  209. void hpgl_sector_form_uu();
  210. void hpgl_hatch_pat_pu();
  211. void hpgl_hatch_pat_uu();
  212. void hpgl_in_mask();
  213. void hpgl_in_p1_p2();
  214. void hpgl_in_wind();
  215. void hpgl_label();
  216. void hpgl_line_type();
  217. void hpgl_pos_pen();
  218. void hpgl_out_pos_pen_pu();
  219. void hpgl_out_pos_pen_uu();
  220. void hpgl_out_pt_pen();
  221. int hpgl_out_error();
  222. void hpgl_out_fac();
  223. void hpgl_out_paper();
  224. void hpgl_out_id();
  225. int graph_tab_out_key();
  226. void hpgl_out_opt();
  227. void hpgl_out_p1_p2();
  228. void graph_tab_out_resolution();
  229. int hpgl_status();
  230. void hpgl_out_wind();
  231. void hpgl_