#ifndef _VDIBIND_H #define _VDIBIND_H #ifndef _COMPILER_H # include #endif #ifdef __cplusplus extern "C" { #endif #ifndef _SIZE_T # include #endif __EXTERN int vswr_mode __PROTO((int handle, int mode)); __EXTERN void vs_color __PROTO((int handle, int index, int rgb[])); __EXTERN int vsl_type __PROTO((int handle, int style)); __EXTERN void vsl_udsty __PROTO((int handle, int pat)); __EXTERN int vsl_width __PROTO((int handle, int width)); __EXTERN int vsl_color __PROTO((int handle, int index)); __EXTERN void vsl_ends __PROTO((int handle, int begstyle, int endstyle)); __EXTERN int vsm_type __PROTO((int handle, int symbol)); __EXTERN void vsm_height __PROTO((int handle, int height)); __EXTERN int vsm_color __PROTO((int handle, int index)); __EXTERN void vst_height __PROTO((int handle, int height, int *charw, int *charh, int *cellw, int *cellh)); __EXTERN int vst_point __PROTO((int handle, int point, int *charw, int *charh, int *cellw, int *cellh)); __EXTERN int vst_rotation __PROTO((int handle, int ang)); __EXTERN int vst_font __PROTO((int handle, int font)); __EXTERN int vst_color __PROTO((int handle, int index)); __EXTERN int vst_effects __PROTO((int handle, int effects)); __EXTERN void vst_alignment __PROTO((int handle, int hin, int vin, int *hout, int *vout)); __EXTERN int vsf_interior __PROTO((int handle, int style)); __EXTERN int vsf_fill __PROTO((int handle, int style)); __EXTERN int vsf_style __PROTO((int handle, int style)); __EXTERN int vsf_color __PROTO((int handle, int index)); __EXTERN int vsf_perimeter __PROTO((int handle, int vis)); __EXTERN void vsf_udpat __PROTO((int handle, int pat[], int planes)); __EXTERN void v_opnwk __PROTO((int work_in[], int *handle, int work_out[])); __EXTERN void v_clswk __PROTO((int handle)); __EXTERN void v_opnvwk __PROTO((int work_in[], int *handle, int work_out[])); __EXTERN void v_clsvwk __PROTO((int handle)); __EXTERN void v_clrwk __PROTO((int handle)); __EXTERN void v_updwk __PROTO((int handle)); __EXTERN int vst_load_fonts __PROTO((int handle, int select)); __EXTERN void vst_unload_fonts __PROTO((int handle, int select)); __EXTERN void vs_clip __PROTO((int handle, int clip_flag, int pxyarray[])); __EXTERN void v_bar __PROTO((int handle, int pxyarray[])); __EXTERN void v_arc __PROTO((int handle, int x, int y, int radius, int begang, int endang)); __EXTERN void v_pieslice __PROTO((int handle, int x, int y, int radius, int begang, int endang)); __EXTERN void v_circle __PROTO((int handle, int x, int y, int radius)); __EXTERN void v_ellarc __PROTO((int handle, int x, int y, int xrad, int yrad, int begang, int endang)); __EXTERN void v_ellpie __PROTO((int handle, int x, int y, int xrad, int yrad, int begang, int endang)); __EXTERN void v_ellipse __PROTO((int handle, int x, int y, int xrad, int yrad)); __EXTERN void v_rbox __PROTO((int handle, int pxyarray[])); __EXTERN void v_rfbox __PROTO((int handle, int pxyarray[])); __EXTERN void v_justified __PROTO((int handle, int x, int y, char *str, int len, int word_space, int char_space)); __EXTERN void vsin_mode __PROTO((int handle, int dev, int mode)); __EXTERN void vrq_locator __PROTO((int handle, int x, int y, int *xout, int *yout, int *term)); __EXTERN int vsm_locator __PROTO((int handle, int x, int y, int *xout, int *yout, int *term)); __EXTERN void vrq_valuator __PROTO((int handle, int in, int *out, int *term)); __EXTERN void vsm_valuator __PROTO((int handle, int in, int *out, int *term, int *status)); __EXTERN void vrq_choice __PROTO((int handle, int cin, int *cout)); __EXTERN int vsm_choice __PROTO((int handle, int *choice)); __EXTERN void vrq_string __PROTO((int handle, int len, int echo, int echoxy[], char *str)); __EXTERN int vsm_string __PROTO((int handle, int len, int echo, int echoxy[], char *str)); __EXTERN void vsc_form __PROTO((int handle, int form[])); __EXTERN void vex_timv __PROTO((int handle, void *time_addr, void **otime_addr, int *time_conv)); __EXTERN void v_show_c __PROTO((int handle, int reset)); __EXTERN void v_hide_c __PROTO((int handle)); __EXTERN void vq_mouse __PROTO((int handle, int *pstatus, int *x, int *y)); __EXTERN void vex_butv __PROTO((int handle, void *new, void **old)); __EXTERN void vex_motv __PROTO((int handle, void *new, void **old)); __EXTERN void vex_curv __PROTO((int handle, void *new, void **old)); __EXTERN void vq_key_s __PROTO((int handle, int *state)); __EXTERN void vq_extnd __PROTO((int handle, int flag, int work_out[])); __EXTERN void vq_color __PROTO((int handle, int index, int flag, int rgb[])); __EXTERN void vql_attribute __PROTO((int handle, int atrib[])); __EXTERN void vqm_attributes __PROTO((int handle, int atrib[])); __EXTERN void vqf_attributes __PROTO((int handle, int atrib[])); __EXTERN void vqt_attributes __PROTO((int handle, int atrib[])); __EXTERN void vqt_extent __PROTO((int handle, char *str, int extent[])); __EXTERN int vqt_width __PROTO((int handle, int chr, int *cw, int *ldelta, int *rdelta)); __EXTERN int vqt_name __PROTO((int handle, int element, char *name)); __EXTERN void vq_cellarray __PROTO((int handle, int pxyarray[], int row_len, int nrows, int *el_used, int *rows_used, int *status, int color[])); __EXTERN void vqin_mode __PROTO((int handle, int dev, int *mode)); __EXTERN void vqt_fontinfo __PROTO((int handle, int *minade, int *maxade, int distances[], int *maxwidth, int effects[])); __EXTERN void vqt_font_info __PROTO((int handle, int *minade, int *maxade, int distances[], int *maxwidth, int effects[])); __EXTERN void v_pline __PROTO((int handle, int count, int pxyarray[])); __EXTERN void v_pmarker __PROTO((int handle, int count, int pxyarray[])); __EXTERN int v_gtext __PROTO((int handle, int x, int y, char *str)); __EXTERN void v_fillarea __PROTO((int handle, int count, int pxyarray[])); __EXTERN void v_cellarray __PROTO((int handle, int pxyarray[], int row_length, int elements, int nrows, int write_mode, int colarray[])); __EXTERN void v_contourfill __PROTO((int handle, int x, int y, int index)); __EXTERN void vr_recfl __PROTO((int handle, int pxyarray[])); __EXTERN void vro_cpyfm __PROTO((int handle, int mode, int pxyarray[], void *src, void *dst)); __EXTERN void vrt_cpyfm __PROTO((int handle, int mode, int pxyarray[], void *src, void *dst, int color[])); __EXTERN void vr_trnfm __PROTO((int handle, void *src, void *dst)); __EXTERN void v_get_pixel __PROTO((int handle, int x, int y, int *pel, int *indx)); /* Verbose headers. They do seem to leave out the fact that the character * coordinates are from (1, 1) (top left corner..). */ /* vq_chcells * Inquire addressable Alpha character cells. * -1 for no cursor addressing (value for `*n_cols' ? ) */ __EXTERN void vq_chcells __PROTO((int handle, int *n_rows, int *n_cols)); /* v_exit_cur * Exit alpha mode. */ __EXTERN void v_exit_cur __PROTO((int handle)); /* v_enter_cur * Enter alpha mode */ __EXTERN void v_enter_cur __PROTO((int handle)); /* v_curup * Alpha cursor up (do nothing if at top). */ __EXTERN void v_curup __PROTO((int handle)); /* v_curdown * Alpha cursor down (do nothing if at bottom). */ __EXTERN void v_curdown __PROTO((int handle)); /* v_curright * Alpha cursor right (do nothing if at right edge). */ __EXTERN void v_curright __PROTO((int handle)); /* v_curleft * Alpha cursor left (do nothing if at left edge). */ __EXTERN void v_curleft __PROTO((int handle)); /* v_curhome * Alpha cursor home. */ __EXTERN void v_curhome __PROTO((int handle)); /* v_eeos * Erase to end of screen. */ __EXTERN void v_eeos __PROTO((int handle)); /* v_eeol * Erase to end of line. */ __EXTERN void v_eeol __PROTO((int handle)); /* vs_curaddress * Direct set position. */ __EXTERN void vs_curaddress __PROTO((int handle, int row, int col)); /* v_curtext * Output cursor addressable text (string `s'). */ __EXTERN void v_curtext __PROTO((int handle, char *s)); /* v_rvon * Reverse video on. */ __EXTERN void v_rvon __PROTO((int handle)); /* v_rvoff * Reverse video off */ __EXTERN void v_rvoff __PROTO((int handle)); /* vq_curaddress * Inquire current cursor address. */ __EXTERN void vq_curaddress __PROTO((int handle, int *cur_row, int *cur_col)); /* * more vdi esc bindings */ __EXTERN int vq_tabstatus __PROTO((int handle)); __EXTERN void v_hardcopy __PROTO((int handle)); __EXTERN void v_dspcur __PROTO((int handle, int x, int y)); __EXTERN void v_rmcur __PROTO((int handle)); __EXTERN void v_form_adv __PROTO((int handle)); __EXTERN void v_output_window __PROTO((int handle, int *pxyarray)); __EXTERN void v_clear_disp_list __PROTO((int handle)); __EXTERN void v_bit_image __PROTO((int handle, const char *filename, int aspect, int x_scale, int y_scale, int h_align, int v_align, int *pxyarray)); __EXTERN void vq_scan __PROTO((int handle, int *g_slice, int *g_page, int *a_slice, int *a_page, int *div_fac)); __EXTERN void v_alpha_text __PROTO((int handle, const char *string)); __EXTERN int vs_palette __PROTO(( int handle, int palette)); __EXTERN void v_sound __PROTO((int handle, int frequency, int duration)); __EXTERN int vs_mute __PROTO((int handle, int action)); __EXTERN void vt_resolution __PROTO(( int handle, int xres, int yres, int *xset, int *yset)); __EXTERN void vt_axis __PROTO((int handle, int xres, int yres, int *xset, int *yset)); __EXTERN void vt_origin __PROTO((int handle, int xorigin, int yorigin)); __EXTERN void vq_dimensions __PROTO((int handle, int *xdimension, int *ydimension)); __EXTERN void vt_alignment __PROTO((int handle, int dx, int dy)); __EXTERN void vsp_film __PROTO((int handle, int index, int lightness)); __EXTERN int vqp_filmname __PROTO((int handle, int index, char *name)); __EXTERN void vsc_expose __PROTO((int handle, int state)); __EXTERN void v_meta_extents __PROTO((int handle, int min_x, int min_y, int max_x, int max_y)); __EXTERN void v_write_meta __PROTO((int handle, int num_intin, int *a_intin, int num_ptsin, int *a_ptsin)); __EXTERN void vm_pagesize __PROTO((int handle, int pgwidth, int pgheight)); __EXTERN void vm_coords __PROTO((int handle, int llx, int lly, int urx, int ury)); __EXTERN void vm_filename __PROTO((int handle, const char *filename)); __EXTERN void v_escape2000 __PROTO((int handle, int times)); /* is gdos present */ /* return values for vq_vgdos() inquiry */ #define GDOS_NONE -2L /* no GDOS installed */ #define GDOS_FSM 0x5F46534DL /* '_FSM' */ #define GDOS_FNT 0x5F464E54L /* '_FNT' */ #ifdef __GNUC_INLINE__ #define vq_vgdos() \ ({ \ register long ret __asm__("d0"); \ __asm__ volatile \ (" \ movq #-2,d0; \ trap #2 " \ : "=r"(ret) /* output */ \ : \ : "d0", "d1", "d2", "a0", "a1", "a2" /* clobbered regs */ \ ); \ ret; \ }) #else __EXTERN long vq_gdos __PROTO((void)); #endif /* __GNUC__ | !__NO_INLINE__ */ /* FSM gdos bindings */ /* * v_gtext with optional shadow attribute */ __EXTERN void v_shtext __PROTO(( int wsid, int x, int y, char *text, int color, int xshadow, int yshadow )); /* * Set character cell height by arbitrary points. */ __EXTERN int vst_arbpt __PROTO(( int handle, int point, int *wchar, int *hchar, int *wcell, int *hcell )); /* * Inquire FSM text advance placement vector. */ __EXTERN void vqt_advance __PROTO(( int handle, int ch, int *xadv, int *yadv, int *xrem, int *yrem)); /* * Inquire device status information. */ __EXTERN void vqt_devinfo __PROTO(( int handle, int device, int *isdev, char *drivername )); /* * Save FSM cache to disk. */ __EXTERN int v_savecache __PROTO(( int handle, char *filename )); /* * Load/merge FSM cache from disk. */ __EXTERN int v_loadcache __PROTO(( int handle, char *filename, int mode )); /* * Flush FSM cache. */ __EXTERN int v_flushcache __PROTO(( int handle )); /* * Set character cell width by arbitrary points. */ __EXTERN int vst_setsize __PROTO(( int handle, int point, int *wchar, int *hchar, int *wcell, int *hcell )); /* * Set FSM skew. */ __EXTERN int vst_skew __PROTO(( int handle, int skew )); /* * Get FSM GASCII tables. */ __EXTERN void vqt_get_tables __PROTO(( int handle, void **gascii, void **style )); /* * Get FSM cashe size */ __EXTERN void vqt_cachesize __PROTO(( int handle, int which_cache, size_t *size )); #ifdef __cplusplus } #endif #endif /* _VDIBIND_H */