v11i087: Another Star Trek Game, Part01/14
pfuetz at agd.fhg.de
pfuetz at agd.fhg.de
Tue Feb 26 15:13:36 AEST 1991
Submitted-by: pfuetz at agd.fhg.de
Posting-number: Volume 11, Issue 87
Archive-name: xstrek/part01
This is the game strek (Star Trek Version 3.0) ported to X11.
It contains 14 parts. See README for further information.
=== ls -lg of the 14 parts ===
-rw-rw-r-- 1 pfuetz siemcad 69511 Feb 8 14:41 apollo_inc.shar
-rw-rw-r-- 1 pfuetz siemcad 62642 Feb 8 14:49 f_changed.shar.01
-rw-rw-r-- 1 pfuetz siemcad 49498 Feb 8 14:50 f_changed.shar.02
-rw-rw-r-- 1 pfuetz siemcad 41664 Feb 8 14:51 f_changed.shar.03
-rw-rw-r-- 1 pfuetz siemcad 27801 Feb 8 14:45 original_code.shar.01
-rw-rw-r-- 1 pfuetz siemcad 49604 Feb 8 14:46 original_code.shar.02
-rw-rw-r-- 1 pfuetz siemcad 75089 Feb 8 14:47 original_code.shar.03
-rw-rw-r-- 1 pfuetz siemcad 52819 Feb 8 14:48 original_code.shar.04
-rw-rw-r-- 1 pfuetz siemcad 86874 Feb 8 14:53 xstrek.shar.01
-rw-rw-r-- 1 pfuetz siemcad 31172 Feb 8 14:54 xstrek.shar.02
-rw-rw-r-- 1 pfuetz siemcad 78314 Feb 8 14:56 xstrek.shar.03
-rw-rw-r-- 1 pfuetz siemcad 61959 Feb 8 14:57 xstrek.shar.04
-rw-rw-r-- 1 pfuetz siemcad 56810 Feb 8 14:58 xstrek.shar.05
-rw-rw-r-- 1 pfuetz siemcad 68028 Feb 8 14:58 xstrek.shar.06
=== end of ls -lg of the 14 parts ===
#!/bin/sh
# To unshare, sh or unshar this file
mkdir xstrek 2>/dev/null
mkdir xstrek/f_changed 2>/dev/null
mkdir xstrek/original_code 2>/dev/null
mkdir xstrek/original_code/apollo_inc 2>/dev/null
echo xstrek/original_code/apollo_inc/base.ins.c 1>&2
sed -e 's/^X//' > xstrek/original_code/apollo_inc/base.ins.c <<'E!O!F! xstrek/original_code/apollo_inc/base.ins.c'
X/* BASE.INS.C, /sys/ins, ers, 04/02/86
X base include file for customer use
X
X Changes:
X 05/20/86 mishkin added ios_$id_t, ios_$max, and ios_$seek_key_t.
X 04/02/86 joelm added proc1_$n_user_processes
X 02/05/86 leduc Fixed declaration of status_$ok to be 0L instead of 0.
X 12/06/85 mishkin Added changes for IOS.
X 03/18/85 RpS Added declarations for set-manipulation library calls.
X 09/04/84 knw The "Pascal-ish" boolean true value should be FF, not FFFF.
X 03/26/84 jrw spelling corrections.
X 09/15/83 ems removed async field from status_$t
X 08/23/83 knw Changed the definition of "binteger" to be "unsigned short",
X instead of "unsigned char". Altho a binteger implies an 8-
X bit value, Pascal really stores them in 16 bit integers,
X EXCEPT in a PACKED RECORD. Most simple usages of binteger
X should allocate 16 bits in C.
X 11/30/82 jrw added true, false
X 09/28/82 ers original coding */
X
X
X/* Pascal-ish booleans: */
X
X#define false ((unsigned char) 00)
X#define true ((unsigned char) 0xff)
X
Xtypedef unsigned char boolean;
X
X/* System-defined stream id's: */
X
X#define stream_$stdin 0
X#define stream_$stdout 1
X#define stream_$errin 2
X#define stream_$errout 3
X
X#define ios_$stdin 0
X#define ios_$stdout 1
X#define ios_$errin 2
X#define ios_$errout 3
X
X
X
X/* Common datatypes: A note about the "binteger" definition: In Pascal, the
X * binteger definition is 0..255; a subrange of integer.
X * Although the definition implies an 8-bit datum, Pascal
X * allocates a 16-bit integer for it in all cases EXCEPT for
X * Pascal "PACKED RECORDS". Only in that case are only 8 bits
X * allocated. So, most simple C usages for Pascal interfaces
X * must also allocate 16 bits. To make a C structure which
X * mimics a Pascal PACKED RECORD, use bit fields.
X */
X
Xtypedef unsigned short binteger; /* positive 8 bit integer */
Xtypedef unsigned short pinteger; /* positive 16 bit integer */
Xtypedef unsigned int linteger; /* positive 31 bit integer */
X
X
X
X/* Common status datatype returned by most Apollo-supplied procedures: */
X
Xtypedef union {
X struct {
X unsigned fail : 1, /* true if module couldn't handle error */
X subsys : 7, /* subsystem code */
X modc : 8; /* module code */
X short code; /* module specific error */
X } s;
X long all; /* used for testing for specific value */
X} status_$t;
X
X#define status_$ok 0L /* returned if called proc successful */
X
X
X/* System clock types: */
X
Xtypedef unsigned int time_$clockh_t; /* high 32 bits of time_$clock */
X
Xtypedef union {
X struct {
X time_$clockh_t high;
X pinteger low;
X } c1;
X struct {
X pinteger high16;
X unsigned int low32;
X } c2;
X} time_$clock_t;
X
X
X/* Number of user processes */
X
X#define proc1_$n_user_processes 56
X
X
X/* Commonly used naming server constants and types: */
X
X#define name_$pnamlen_max 256 /* max length of pathname */
X#define name_$complen_max 32 /* max length of entry name */
X
Xtypedef char name_$pname_t[name_$pnamlen_max];
Xtypedef char name_$name_t[name_$complen_max];
X
X
X
X/* Commonly used streams types: */
X
X#define ios_$max 127
X
Xtypedef short ios_$id_t; /* open stream identifier */
Xtypedef struct {
X linteger rec_adr;
X linteger byte_adr;
X} ios_$seek_key_t;
X
Xtypedef short stream_$id_t; /* open stream identifier (same as ios_$id_t) */
Xtypedef union {
X long offset;
X struct {
X linteger rec_adr;
X linteger byte_adr;
X linteger flags;
X } key;
X} stream_$sk_t; /* seek key returned on most stream calls */
X
Xtypedef struct {
X long high;
X long low;
X} uid_$t; /* for type uids returned by streams */
X
Xtypedef struct {
X long rfu1;
X long rfu2;
X uid_$t uid;
X} xoid_$t;
X
X/* User eventcount definitions */
X
Xtypedef struct {
X long value; /* current ec value */
X pinteger awaiters; /* first process waiting */
X} ec2_$eventcount_t;
X
Xtypedef ec2_$eventcount_t *ec2_$ptr_t;
X
Xextern uid_$t uid_$nil;
X
X/* Library calls for set manipulation */
X
Xstd_$call void lib_$init_set(); /* initialize a set */
Xstd_$call void lib_$add_to_set(); /* add an element to a set */
Xstd_$call void lib_$clr_from_set(); /* remove an element from a set */
Xstd_$call boolean lib_$member_of_set(); /* return membership of an element in a set */
X
X#eject
E!O!F! xstrek/original_code/apollo_inc/base.ins.c
echo xstrek/original_code/apollo_inc/cal.ins.c 1>&2
sed -e 's/^X//' > xstrek/original_code/apollo_inc/cal.ins.c <<'E!O!F! xstrek/original_code/apollo_inc/cal.ins.c'
X/* CAL.INS.C, /sys/ins, ers, 07/24/86
X calendar maintenance routines - insert file
X
X Changes:
X 07/24/86 knw changed cal_dpval_t from array 1..2 of linteger to DOUBLE.
X 04/02/86 lwa change enum to short enum
X 05/06/85 gms added cal_$remove_local_offset
X 10/07/82 ers original coding */
X
X
X#define cal_$bad_syntax 0x00150001
X#define cal_$out_of_range 0x00150002
X#define cal_$empty_string 0x00150003
X#define cal_$unknown_timezone 0x00150004
X#define cal_$invalid_tzdif 0x00150005
X
X
X
X#define cal_$string_size 80
X
X
Xtypedef char cal_$string_t[cal_$string_size];
X
Xtypedef char cal_$tz_name_t[4]; /* timezone name */
X
Xtypedef struct {
X short year,
X month,
X day,
X hour,
X minute,
X second;
X} cal_$timedate_rec_t; /* returned from cal_$decode_time */
X
Xtypedef short enum {cal_$sun, cal_$mon, cal_$tue, cal_$wed, cal_$thu,
X cal_$fri, cal_$sat} cal_$weekday_t;
X
Xtypedef struct {
X short utc_delta; /* # minutes from UTC */
X cal_$tz_name_t tz_name; /* timezone name */
X time_$clock_t drift; /* drift adjustment made by user */
X} cal_$timezone_rec_t;
X
Xtypedef double cal_$dpval_t;
X
X
Xstd_$call void cal_$decode_ascii_time ();
Xstd_$call void cal_$decode_ascii_date ();
Xstd_$call void cal_$decode_ascii_tzdif (); /* decode timezone difference */
Xstd_$call void cal_$decode_time ();
Xstd_$call void cal_$encode_time (); /* encode time -> secs past 1/1/80 */
Xstd_$call void cal_$decode_local_time (); /* decode & return local time */
Xstd_$call cal_$weekday_t cal_$weekday (); /* determine day of week */
Xstd_$call void cal_$apply_local_offset (); /* apply local offset to a time_$clock_t */
Xstd_$call void cal_$remove_local_offset (); /* remove local offset from a time_$clock_t */
Xstd_$call void cal_$get_local_time (); /* get clock w/ local adjustment */
Xstd_$call void cal_$write_timezone (); /* write tz onto boot volume */
Xstd_$call void cal_$sec_to_clock (); /* convert seconds to clockt */
Xstd_$call long cal_$clock_to_sec (); /* convert clockt to seconds */
Xstd_$call void cal_$get_info (); /* read calendar info from os */
Xstd_$call void cal_$float_clock (); /* convert time_$clock_t to d.p. floating */
Xstd_$call void cal_$add_clock (); /* add 2 clocks */
Xstd_$call short cal_$sub_clock (); /* subtract 2 clocks, return true if */
Xstd_$call short cal_$cmp_clock (); /* compare 2 clocks, return: */
X#eject
E!O!F! xstrek/original_code/apollo_inc/cal.ins.c
echo xstrek/original_code/apollo_inc/gpr.ins.c 1>&2
sed -e 's/^X//' > xstrek/original_code/apollo_inc/gpr.ins.c <<'E!O!F! xstrek/original_code/apollo_inc/gpr.ins.c'
X/* gpr.ins.c, /sys/ins, dpg, 09/16/83
X graphics primitive package definitions */
X
X#ifndef gpr_$gpr_ins_c
X#define gpr_$gpr_ins_c
X
X#define gpr_$operation_ok 0x00000000
X#define gpr_$not_initialized 0x06010001
X#define gpr_$already_initialized 0x06010002
X#define gpr_$wrong_display_hardware 0x06010003
X#define gpr_$illegal_for_frame 0x06010004
X#define gpr_$must_borrow_display 0x06010005
X#define gpr_$no_attributes_defined 0x06010006
X#define gpr_$no_more_space 0x06010007
X#define gpr_$dimension_too_big 0x06010008
X#define gpr_$dimension_too_small 0x06010009
X#define gpr_$bad_bitmap 0x0601000a
X#define gpr_$bad_attribute_block 0x0601000b
X#define gpr_$window_out_of_bounds 0x0601000c
X#define gpr_$source_out_of_bounds 0x0601000d
X#define gpr_$dest_out_of_bounds 0x0601000e
X#define gpr_$invalid_plane 0x0601000f
X#define gpr_$cant_deallocate 0x06010010
X#define gpr_$coord_out_of_bounds 0x06010011
X#define gpr_$invalid_color_map 0x06010012
X#define gpr_$invalid_raster_op 0x06010013
X#define gpr_$bitmap_is_read_only 0x06010014
X#define gpr_$internal_error 0x06010015
X#define gpr_$font_table_full 0x06010016
X#define gpr_$bad_font_file 0x06010017
X#define gpr_$invalid_font_id 0x06010018
X#define gpr_$window_obscured 0x06010019
X#define gpr_$not_in_direct_mode 0x0601001a
X#define gpr_$not_in_polygon 0x0601001b
X#define gpr_$kbd_not_acq 0x0601001c
X#define gpr_$display_not_acq 0x0601001d
X#define gpr_$illegal_pixel_values 0x0601001e
X#define gpr_$illegal_when_imaging 0x0601001f
X#define gpr_$invalid_imaging_format 0x06010020
X#define gpr_$must_release_display 0x06010021
X#define gpr_$cant_mix_modes 0x06010022
X#define gpr_$no_input_enabled 0x06010023
X#define gpr_$duplicate_points 0x06010024
X#define gpr_$array_not_sorted 0x06010025
X#define gpr_$character_not_in_font 0x06010026
X#define gpr_$illegal_fill_pattern 0x06010027
X#define gpr_$illegal_fill_scale 0x06010028
X#define gpr_$incorrect_alignment 0x06010029
X#define gpr_$illegal_text_path 0x0601002a
X#define gpr_$unable_to_rotate_font 0x0601002b
X#define gpr_$font_is_read_only 0x0601002c
X#define gpr_$illegal_pattern_length 0x0601002d
X#define gpr_$illegal_for_pixel_bitmap 0x0601002e
X#define gpr_$too_many_input_windows 0x0601002f
X#define gpr_$illegal_software_version 0x06010030
X#define gpr_$bitmap_not_a_file_bitmap 0x06010031
X#define gpr_$no_color_map_in_file 0x06010032
X#define gpr_$incorrect_decomp_tech 0x06010033
X#define gpr_$no_reset_decomp_in_pgon 0x06010034
X#define gpr_$specific_nonzero_only 0x06010035
X#define gpr_$arc_overflow_16bit_bounds 0x06010036
X#define gpr_$invalid_virt_dev_id 0x06010037
X#define gpr_$bad_decomp_tech 0x06010038
X#define gpr_$empty_rop_prim_set 0x06010039
X#define gpr_$rop_sets_not_equal 0x0601003A
X#define gpr_$must_have_display 0x0601003B
X#define gpr_$style_call_not_active 0x0601003C
X#define gpr_$no_more_fast_buffers 0x0601003D
X#define gpr_$input_buffer_overflow 0x0601003E
X
X#define gpr_$default_list_size 10
X
X#define gpr_$black ((gpr_$pixel_value_t) 0x000000) /* color value for black */
X#define gpr_$white ((gpr_$pixel_value_t) 0xffffff) /* color value for white */
X#define gpr_$red ((gpr_$pixel_value_t) 0xff0000) /* color value for red */
X#define gpr_$green ((gpr_$pixel_value_t) 0x00ff00) /* color value for green */
X#define gpr_$blue ((gpr_$pixel_value_t) 0x0000ff) /* color value for blue */
X#define gpr_$cyan ((gpr_$pixel_value_t) 0x00ffff) /* color value for cyan (blue + green) */
X#define gpr_$magenta ((gpr_$pixel_value_t) 0xff00ff) /* color value for magenta (red + blue) */
X#define gpr_$yellow ((gpr_$pixel_value_t) 0xffff00) /* color value for yellow (red + green) */
X
X#define gpr_$transparent ((gpr_$pixel_value_t)(-1)) /* pixel value for transparent (no change) */
X#define gpr_$background ((gpr_$pixel_value_t)(-2)) /* pixel value for window background */
X
X#define gpr_$string_size 256 /* number of chars in a gpr string */
X#define gpr_$max_x_size 8192 /* max # bits in bitmap x dimension */
X#define gpr_$max_y_size 8192 /* max # bits in bitmap y dimension */
X#define gpr_$highest_plane 7 /* max plane number in a bitmap */
X#define gpr_$highest_rgb_plane 31 /* max plane number in a true color bitmap */
X#define gpr_$nil_attribute_desc 0l /* value of a descriptor of nonexistent attributes */
X#define gpr_$nil_bitmap_desc 0l /* value of a descriptor of a nonexistent bitmap */
X
X#define gpr_$max_bmf_group 0 /* max group # in external bitmaps */
X#define gpr_$bmf_major_version 1
X#define gpr_$bmf_minor_version 1
X
X#define gpr_$rop_zeros 0 /* symbolic constants for rops. */
X#define gpr_$rop_src_and_dst 1
X#define gpr_$rop_src_and_not_dst 2
X#define gpr_$rop_src 3
X#define gpr_$rop_not_src_and_dst 4
X#define gpr_$rop_dst 5
X#define gpr_$rop_src_xor_dst 6
X#define gpr_$rop_src_or_dst 7
X#define gpr_$rop_not_src_and_not_dst 8
X#define gpr_$rop_src_equiv_dst 9
X#define gpr_$rop_not_dst 10
X#define gpr_$rop_src_or_not_dst 11
X#define gpr_$rop_not_src 12
X#define gpr_$rop_not_src_or_dst 13
X#define gpr_$rop_not_src_or_not_dst 14
X#define gpr_$rop_ones 15
X
Xtypedef short enum { gpr_$keystroke, gpr_$buttons, gpr_$locator,
X gpr_$entered_window, gpr_$left_window,
X gpr_$locator_stop, gpr_$no_event,
X gpr_$locator_update, gpr_$dial
X} gpr_$event_t;
X
X
Xtypedef unsigned long gpr_$keyset_t[8]; /* this is supposed to be set of char */
X
Xtypedef short enum { gpr_$ok_if_obs, gpr_$error_if_obs,
X gpr_$pop_if_obs, gpr_$block_if_obs,
X gpr_$input_ok_if_obs
X} gpr_$obscured_opt_t;
X
Xtypedef short enum {gpr_$input_ec} gpr_$ec_key_t;
X
Xtypedef void (*gpr_$rwin_pr_t)();
Xtypedef void (*gpr_$rhdm_pr_t)();
X
X /* the five ways to use this package */
Xtypedef short enum {
X gpr_$borrow,
X gpr_$frame,
X gpr_$no_display,
X gpr_$direct,
X gpr_$borrow_nc,
X gpr_$direct_rgb,
X gpr_$borrow_rgb,
X gpr_$borrow_rgb_nc
X} gpr_$display_mode_t;
X
X /* possible display hardware configurations */
Xtypedef short enum {
X gpr_$bw_800x1024, /* dn100, dn400 */
X gpr_$bw_1024x800, /* dn3xx, dn4xx */
X gpr_$color_1024x1024x4, /* dn6xx */
X gpr_$color_1024x1024x8, /* dn6xx */
X gpr_$color_1024x800x4, /* dn550/560 */
X gpr_$color_1024x800x8, /* dn550/560 */
X gpr_$color_1280x1024x8, /* dn580 */
X gpr_$color1_1024x800x8, /* dn570 */
X gpr_$color2_1024x800x4, /* dn3000c */
X gpr_$bw_1280x1024, /* dn3000m mono high res */
X gpr_$color2_1024x800x8, /* dn3000e */
X gpr_$bw5_1024x800, /* dn3000m mono low res */
X gpr_$color2_1280x1024x8 /* dn4000e high res */
X} gpr_$display_config_t;
X
X /* possible directions for arcs drawn using gpr_$arc_c2p */
Xtypedef short enum {
X gpr_$arc_ccw, /* counter-clockwise */
X gpr_$arc_cw /* clockwise */
X} gpr_$arc_direction_t;
X
X /* possible options on co-incident points in gpr_$arc_c2p */
Xtypedef short enum {
X gpr_$arc_draw_none, /* draw nothing */
X gpr_$arc_draw_full /* draw full circle */
X} gpr_$arc_option_t;
X
X /* imaging vs interactive display formats */
Xtypedef short enum {
X gpr_$interactive,
X gpr_$imaging_1024x1024x8,
X gpr_$imaging_512x512x24,
X gpr_$double_bufferx8,
X gpr_$imaging_1280x1024x24,
X gpr_$imaging_windowx24
X} gpr_$imaging_format_t;
X
X /* unique number corresponding to display controller type */
Xtypedef short enum {
X gpr_$ctl_none, /* none or not applicable */
X gpr_$ctl_mono_1, /* dn100/400/420/460 */
X gpr_$ctl_mono_2, /* dn300/320/330 */
X gpr_$ctl_color_1, /* dn600/660/550/560 */
X gpr_$ctl_color_2, /* dn580 */
X gpr_$ctl_color_3, /* dn570, dn570a */
X gpr_$ctl_color_4, /* dn3000c */
X gpr_$ctl_mono_4, /* dn3000m mono high res */
X gpr_$ctl_color_5, /* dn3000e */
X gpr_$ctl_mono_5, /* dn3000m mono low res */
X gpr_$ctl_color_6 /* dn4000e high res */
X} gpr_$controller_type_t;
X
X /* unique number corresponding to graphics accelerator processor type */
Xtypedef short enum {
X gpr_$accel_none, /* none or not applicable */
X gpr_$accel_1 /* 3dga */
X} gpr_$accelerator_type_t;
X
X /* kinds of overlaps between different classes of buffer memory */
Xtypedef short enum {
X gpr_$hdm_with_bitm_ext,
X gpr_$hdm_with_buffers,
X gpr_$bitm_ext_with_buffers
X} gpr_$memory_overlap_t;
X
X /* legal allocated sizes of pixel cells in bitmap sections for direct access */
Xtypedef short enum {
X gpr_$alloc_1, /* one bit per pixel cell (i.e. by-plane) */
X gpr_$alloc_2, /* two bits per pixel cell */
X gpr_$alloc_4, /* four bits per pixel cell */
X gpr_$alloc_8, /* one byte per pixel cell */
X gpr_$alloc_16, /* two bytes per pixel cell */
X gpr_$alloc_32 /* four bytes per pixel cell */
X} gpr_$access_allocation_t;
X
X /* kinds of color map implementation */
Xtypedef short enum {
X gpr_$no_invert, /* not applicable, eg, color or no display */
X gpr_$invert_simulate, /* simulated in software */
X gpr_$invert_hardware /* implemented in hardware */
X} gpr_$disp_invert_t;
X
Xtypedef short enum {
X gpr_$rgb_none,
X gpr_$rgb_24 /* Modes for separate values for RGB */
X} gpr_$rgb_modes_t;
X
Xtypedef short gpr_$rgb_modes_set_t;
X
X
X
X /* list of display device characteristics */
Xtypedef struct {
X gpr_$controller_type_t controller_type; /* type of graphics controller */
X gpr_$accelerator_type_t accelerator_type; /* type of graphics accelerator */
X short x_window_origin; /* x origin of window screen area in pixels */
X short y_window_origin; /* y origin of window screen area in pixels */
X short x_window_size; /* x dimension of window screen area in pixels */
X short y_window_size; /* y dimension of window screen area in pixels */
X short x_visible_size; /* x dimension of visible screen area in pixels */
X short y_visible_size; /* y dimension of visible screen area in pixels */
X short x_extension_size; /* x dimension of maximum extended bitmap size in pixels */
X short y_extension_size; /* y dimension of maximum extended bitmap size in pixels */
X short x_total_size; /* x dimension of total buffer area in pixels */
X short y_total_size; /* y dimension of total buffer area in pixels */
X short x_pixels_per_cm; /* number of pixels in x dimension per centimeter */
X short y_pixels_per_cm; /* number of pixels in y dimension per centimeter */
X short n_planes; /* number of planes available */
X short n_buffers; /* number of display buffers available */
X short delta_x_per_buffer; /* relative displacement of buffers in x */
X short delta_y_per_buffer; /* relative displacement of buffers in y */
X short delta_planes_per_buffer; /* relative displacement of buffers in depth */
X unsigned short mem_overlaps; /* set of overlaps among classes of buffer memory */
X short x_zoom_max; /* maximum pixel-replication zoom factor for x */
X short y_zoom_max; /* maximum pixel-replication zoom factor for y */
X short video_refresh_rate; /* refresh rate in hz */
X short n_primaries; /* number of primary colors (1 -> monochrome; 3 -> color */
X short lut_width_per_primary; /* number of bits in possible shortensity values per primary */
X unsigned short avail_formats; /* set of available shorteractive/imaging formats */
X unsigned short avail_access; /* set of available pixel sizes for direct access */
X short access_address_space; /* number of 1kb pages of address space available for direct access */
X gpr_$disp_invert_t invert; /* INVert implemention */
X short num_lookup_tables; /* Number of color lookup tables */
X gpr_$rgb_modes_set_t rgb_color; /* Modes for separate values for RGB */
X} gpr_$disp_char_t;
X
X /* bitmap coordinates */
Xtypedef short gpr_$coordinate_t;
X
X /* lists of bitmap coordinates */
Xtypedef gpr_$coordinate_t gpr_$coordinate_array_t[16384];
X
X /* bitmap positions */
Xtypedef struct {
X gpr_$coordinate_t x_coord, y_coord;
X} gpr_$position_t;
X
X /* bitmap offsets */
Xtypedef struct {
X gpr_$coordinate_t x_size, y_size;
X} gpr_$offset_t;
X
X /* windows on a bitmap */
Xtypedef struct {
X gpr_$position_t window_base;
X gpr_$offset_t window_size;
X} gpr_$window_t;
X
Xtypedef gpr_$window_t gpr_$window_list_t[gpr_$default_list_size];
X
X /* horizontal line segments */
Xtypedef struct {
X gpr_$coordinate_t x_coord_l, x_coord_r, y_coord;
X} gpr_$horiz_seg_t;
X
X /* trapezoids with horizontal bases: defined as 2 horizontal
X line segments, top and bottom */
Xtypedef struct {
X gpr_$horiz_seg_t top, bot;
X} gpr_$trap_t;
X
X /* lists of trapezoids with horizontal bases */
Xtypedef gpr_$trap_t gpr_$trap_list_t[gpr_$default_list_size];
X
X /* triangles */
Xtypedef struct {
X gpr_$position_t p1, p2, p3;
X short winding_no;
X} gpr_$triangle_t;
X
X /* lists of triangles */
Xtypedef gpr_$triangle_t gpr_$triangle_list_t[gpr_$default_list_size];
X
X /* filling winding number specifications */
Xtypedef short enum {
X gpr_$parity,
X gpr_$nonzero,
X gpr_$specific
X} gpr_$winding_set_t;
X
X /* triangle filling criteria */
Xtypedef struct {
X gpr_$winding_set_t wind_type;
X short winding_no
X} gpr_$triangle_fill_criteria_t;
X
X /* area decomposition techniques */
Xtypedef short enum {
X gpr_$fast_traps,
X gpr_$precise_traps,
X gpr_$non_overlapping_tris,
X gpr_$render_exact
X} gpr_$decomp_technique_t;
X
X /* graphics primitive strings */
Xtypedef char gpr_$string_t[gpr_$string_size];
X
X /* bitmap plane numbers */
Xtypedef unsigned short gpr_$plane_t;
Xtypedef unsigned short gpr_$rgb_plane_t;
X
X /* pointer to main mem bitmap */
Xtypedef char *gpr_$plane_ptr_t;
X
X /* bitmap plane masks (bit vector) */
Xtypedef short gpr_$mask_t;
Xtypedef linteger gpr_$mask_32_t;
X
X /* color values */
Xtypedef linteger gpr_$color_t;
X
X /* pixel values */
Xtypedef linteger gpr_$pixel_value_t;
X
X /* arrays of color values */
Xtypedef gpr_$color_t gpr_$color_vector_t[256];
X
X /* arrays of pixel values */
Xtypedef gpr_$pixel_value_t gpr_$pixel_array_t[131073];
X
X /* raster operation opcodes */
Xtypedef unsigned short gpr_$raster_op_t;
X
X /* arrays of raster operation opcodes */
Xtypedef gpr_$raster_op_t gpr_$raster_op_array_t[32];
X
X /* raster op prim set elements */
Xtypedef short enum { gpr_$rop_blt, gpr_$rop_line, gpr_$rop_fill } gpr_$rop_prim_set_elems_t;
X
X /* raster op prim set */
Xtypedef short gpr_$rop_prim_set_t;
X
X /* scalar type for directions */
Xtypedef short enum {gpr_$up, gpr_$down, gpr_$left, gpr_$right} gpr_$direction_t;
X
X /* line drawing styles */
Xtypedef short enum {gpr_$solid, gpr_$dotted} gpr_$linestyle_t;
X
Xtypedef short gpr_$line_pattern_t[4];
X
X /* attribute block descriptors */
Xtypedef linteger gpr_$attribute_desc_t;
X
X /* bitmap descriptors */
Xtypedef linteger gpr_$bitmap_desc_t;
X
Xtypedef struct {
X short major,minor;
X} gpr_$version_t;
X
X
Xtypedef struct {
X short n_sects;
X short pixel_size;
X short allocated_size;
X short bytes_per_line;
X linteger bytes_per_sect;
X char *storage_offset;
X} gpr_$bmf_group_header_t;
X
Xtypedef gpr_$bmf_group_header_t gpr_$bmf_group_header_array_t[gpr_$max_bmf_group+1];
X
Xtypedef short enum {gpr_$create,gpr_$update, gpr_$write, gpr_$readonly} gpr_$access_mode_t;
X
Xtypedef linteger gpr_$virt_dev_id_t;
X
Xtypedef struct {
X short n_sects;
X short pixel_size;
X short allocated_size;
X short bytes_per_line;
X linteger bytes_per_sect;
X char *storage_offset;
X} gpr_$group_header_t;
X
Xtypedef short enum {gpr_$undisturbed_buffer, gpr_$clear_buffer, gpr_$copy_buffer} gpr_$double_buffer_option_t;
X
Xtypedef union {
X struct {
X linteger dial_number;
X linteger dial_value;
X } gpr_$dial;
X } gpr_$event_data_t;
X
X#eject
X/* initialization and termination. */
X
X
X
X/* gpr_$init initializes the graphics primitive package. */
X
Xstd_$call void gpr_$init ();
X
X
X
X/* gpr_$terminate terminates this package's operation. */
X
Xstd_$call void gpr_$terminate ();
X#eject
X/* set and inquire operations for the display. */
X
X/* gpr_$inq_config returns the current display configuration. */
X
Xstd_$call void gpr_$inq_config ();
X
X
X
X/* gpr_$inq_disp_characterisitics returns the current display characterisitcs */
X
Xstd_$call void gpr_$inq_disp_characteristics ();
X
X
X
X/* gpr_$set_color_map gives new values for the color map. */
X
Xstd_$call void gpr_$set_color_map ();
X
X
X
X/* gpr_$inq_color_map returns current values in the color map. */
X
Xstd_$call void gpr_$inq_color_map ();
X
X
X
X/* gpr_$set_bitmap_file_color_map stores a color map with a bitmap file */
X
Xstd_$call void gpr_$set_bitmap_file_color_map ();
X
X
X
X/* gpr_$inq_bitmap_file_color_map returns the color map stored with a bitmap file */
X
Xstd_$call void gpr_$inq_bitmap_file_color_map ();
X
X
X
X/* gpr_$set_cursor_pattern loads a cursor pattern. */
X
Xstd_$call void gpr_$set_cursor_pattern ();
X
X
X
X/* gpr_$set_cursor_active specifies whether the cursor should be on or off. */
X
Xstd_$call void gpr_$set_cursor_active ();
X
X
X
X/* gpr_$set_cursor_position gives the position at which the cursor is
X to be displayed, in the current bitmap. */
X
Xstd_$call void gpr_$set_cursor_position ();
X
X
X/* gpr_$set_origin gives the cursor-relative psoition of its pixel
X which is to be placed at the cursor position. */
X
Xstd_$call void gpr_$set_cursor_origin ();
X
X
X/* gpr_$inq_cursor returns information about the cursor. */
X
Xstd_$call void gpr_$inq_cursor ();
X
X
X
X/* gpr_$wait_frame causes the color display hardware to defer processing
X further requests until the next end-of-frame. */
X
Xstd_$call void gpr_$wait_frame ();
X#eject
X/* bitmap control functions. */
X
X
X
X/* gpr_$set_bitmap establishes the current bitmap for subsequent operations. */
X
Xstd_$call void gpr_$set_bitmap ();
X
X
X
X/* gpr_$inq_bitmap returns a descriptor of the current bitmap. */
X
Xstd_$call void gpr_$inq_bitmap ();
X
X
X
X/* gpr_$allocate_bitmap allocates a bitmap in main memory. */
X
Xstd_$call void gpr_$allocate_bitmap ();
X
X
X
X/* gpr_$allocate_bitmap_nc allocates a bitmap in main memory without zeroing it. */
X
Xstd_$call void gpr_$allocate_bitmap_nc ();
X
X
X
X/* gpr_$allocate_hdm_bitmap allocates a bitmap in hidden_display memory. */
X
Xstd_$call void gpr_$allocate_hdm_bitmap ();
X
X
X
X/* gpr_$open_bitmap_file obtains access to an external bitmap */
X
Xstd_$call void gpr_$open_bitmap_file ();
X
X
X
X/* gpr_$deallocate_bitmap deallocates a bitmap allocated by allocate_bitmap. */
X
Xstd_$call void gpr_$deallocate_bitmap ();
X
X
X
X/* gpr_$inq_bitmap_pointer returns a pointer to the storage/display memory
X for the given bitmap and the number of words each scan line occupies.
X this information can be used to directly manipulate the bits in the bitmap. */
X
Xstd_$call void gpr_$inq_bitmap_pointer ();
X
X
X
X/* gpr_$inq_bitmap_position returns the position of the upper left corner of
X the specified bitmap. this is normally the screen position, although it does
X have some significance for main memory bitmaps. it is not meaningful if the
X bitmap is a dm pad (i.e. a frame mode bitmap). */
X
Xstd_$call void gpr_$inq_bitmap_position ();
X
X
X
X/* gpr_$inq_bm_bit_offset returns the number of bits in the most significant
X part of the first word of each scanline which are not part of the given bitmap.
X in other words, the offset is the number of bits between a 16-bit word boundary
X and the left edge of the bitmap.
X currently this number can only be nonzero for direct graphics bitmaps. */
X
Xstd_$call void gpr_$inq_bm_bit_offset ();
X
X
X
X/* gpr_$select_color_frame selects whether frame 0 (top 1024 lines) or
X frame 1 (bottom 1024 lines) is visible. normally frame 0 is visible. */
X
Xstd_$call void gpr_$select_color_frame ();
X
X
X
X/* gpr_$remap_color_memory sets the plane of frame 0 of color display memory
X (normally visible) which is mapped at the address returned by inq_bitmap_pointer. */
X
Xstd_$call void gpr_$remap_color_memory ();
X
X
X
X/* gpr_$remap_color_memory_1 sets the plane of frame 1 of color display memory
X (normally hidden) which is mapped at the address returned by inq_bitmap_pointer. */
X
Xstd_$call void gpr_$remap_color_memory_1 ();
X
X
X
X/* gpr_$color_zoom sets the zoom scale factors for the color display. */
X
Xstd_$call void gpr_$color_zoom ();
X
X
X
X/* gpr_$enable_direct_access waits for display hardware to finish current
X operations so that the user can access display memory directly. */
X
Xstd_$call void gpr_$enable_direct_access ();
X
X
X
X/* gpr_$set_bitmap_dimensions changes the size and number of planes
X of the given bitmap. */
X
Xstd_$call void gpr_$set_bitmap_dimensions ();
X
X
X
X/* gpr_$inq_bitmap_dimensions returns the size and number of planes
X of the given bitmap. */
X
Xstd_$call void gpr_$inq_bitmap_dimensions ();
X
X
X
X/* gpr_$allocate_attribute_block allocates an attribute block,
X initialized to default settings. */
X
Xstd_$call void gpr_$allocate_attribute_block ();
X
X
X
X/* gpr_$deallocate_attribute_block deallocates an attribute block allocated
X by allocate_attribute_block. */
X
Xstd_$call void gpr_$deallocate_attribute_block ();
X
X
X
X/* gpr_$set_attribute_block establishes the given attributes as the attributes
X of the current bitmap. */
X
Xstd_$call void gpr_$set_attribute_block ();
X
X
X
X/* gpr_$attribute_block returns as the function value a descriptor of
X the attributes of the given bitmap. */
X
Xstd_$call gpr_$attribute_desc_t gpr_$attribute_block ();
X#eject
X/* set and inquire operations for bitmap attributes. */
X
Xstd_$call void gpr_$raster_op_prim_set ();
X
Xstd_$call void gpr_$inq_raster_op_prim_set ();
X
X
X/* gpr_$set_attribute sets an attribute in the current bitmap.
X the list of calls follows. */
X
Xstd_$call void gpr_$set_clip_window ();
X
Xstd_$call void gpr_$set_clipping_active ();
X
Xstd_$call void gpr_$set_text_font ();
X
Xstd_$call void gpr_$set_text_path ();
X
Xstd_$call void gpr_$set_coordinate_origin ();
X
Xstd_$call void gpr_$set_plane_mask ();
X
Xstd_$call void gpr_$set_draw_value ();
X
Xstd_$call void gpr_$set_text_value ();
X
Xstd_$call void gpr_$set_text_background_value ();
X
Xstd_$call void gpr_$set_fill_value ();
X
Xstd_$call void gpr_$set_fill_background_value ();
X
Xstd_$call void gpr_$set_fill_pattern ();
X
Xstd_$call void gpr_$set_raster_op ();
X
Xstd_$call void gpr_$set_linestyle ();
X
Xstd_$call void gpr_$set_line_pattern ();
X
Xstd_$call void gpr_$set_draw_pattern ();
X
Xstd_$call void gpr_$set_draw_width ();
X
Xstd_$call void gpr_$set_character_width ();
X
Xstd_$call void gpr_$set_horizontal_spacing ();
X
Xstd_$call void gpr_$set_space_size ();
X
Xstd_$call void gpr_$set_raster_op_mask ();
X
X
X
X/* gpr_$inq_attributes returns the current settings of a group
X of attributes for the current bitmap. */
X
Xstd_$call void gpr_$inq_constraints ();
X
Xstd_$call void gpr_$inq_text ();
X
Xstd_$call void gpr_$inq_text_path ();
X
Xstd_$call void gpr_$inq_coordinate_origin ();
X
Xstd_$call void gpr_$inq_draw_value ();
X
Xstd_$call void gpr_$inq_text_values ();
X
Xstd_$call void gpr_$inq_fill_value ();
X
Xstd_$call void gpr_$inq_fill_background_value ();
X
Xstd_$call void gpr_$inq_fill_pattern ();
X
Xstd_$call void gpr_$inq_raster_ops ();
X
Xstd_$call void gpr_$inq_linestyle ();
X
Xstd_$call void gpr_$inq_line_pattern ();
X
Xstd_$call void gpr_$inq_draw_pattern ();
X
Xstd_$call void gpr_$inq_line_width ();
X
Xstd_$call void gpr_$inq_character_width ();
X
Xstd_$call void gpr_$inq_horizontal_spacing ();
X
Xstd_$call void gpr_$inq_space_size ();
X
Xstd_$call void gpr_$inq_plane_mask_32 ();
X
Xstd_$call gpr_$pixel_value_t gpr_$inq_background ();
X
Xstd_$call gpr_$pixel_value_t gpr_$inq_foreground ();
X
X#eject
X/* drawing operations. */
X
X
X
X/* gpr_$move sets the cp to the given position. */
X
Xstd_$call void gpr_$move ();
X
X
X
X/* gpr_$inq_cp returns the current position. */
X
Xstd_$call void gpr_$inq_cp ();
X
X
X
X/* gpr_$line draws a line from the cp to the given position
X and sets the cp to the given position. */
X
Xstd_$call void gpr_$line ();
X
X
X
X/* gpr_$polyline does a series of lines, starting from the cp. */
X
Xstd_$call void gpr_$polyline ();
X
X
X
X/* gpr_$multiline does a series of alternate moves and lines. */
X
Xstd_$call void gpr_$multiline ();
X
X
X
X/* gpr_$draw_box draws a rectangular box */
X
Xstd_$call void gpr_$draw_box ();
X
X
X
X/* gpr_$arc_3p draw an arc from current point through two points p2 and p3. */
X
Xstd_$call void gpr_$arc_3p ();
X
X
X
X/* gpr_$arc_c2p draw an arc centered at point `center', starting
X at current point, going clockwise or counterclockwise according
X to `direction', and ending at point p2, or at the line going through
X `center' and p2. The current position is updated to the actual
X end point. */
X
Xstd_$call void gpr_$arc_c2p ();
X
X
X
X/* gpr_$circle draws a circle of radius around point center. */
X
Xstd_$call void gpr_$circle ();
X
X
X
X/* gpr_$circle_filled draws a filled circle of radius around point center. */
X
Xstd_$call void gpr_$circle_filled ();
X
X
X
X/* gpr_$spline_cubic_p draws a parametric cubic spline through the control points. */
X
Xstd_$call void gpr_$spline_cubic_p ();
X
X
X
X/* gpr_$spline_cubic_x draws a cubic spline as a function of x through the control points. */
X
Xstd_$call void gpr_$spline_cubic_x ();
X
X
X
X/* gpr_$spline_cubic_y draws a cubic spline as a function of y through the control points. */
X
Xstd_$call void gpr_$spline_cubic_y ();
X#eject
X/* text operations. */
X
X
X
X/* gpr_$load_font_file loads a font contained in a file into an appro-
X priate area (based on the current display mode and configuration). */
X
Xstd_$call void gpr_$load_font_file ();
X
X
X
X/* gpr_$unload_font_file unloads a font that has been loaded by
X load_font_file. */
X
Xstd_$call void gpr_$unload_font_file ();
X
X
X
X/* gpr_$text writes text to a bitmap from the current position ("cp"). */
X
Xstd_$call void gpr_$text ();
X
X
X
X/* gpr_$inq_text_extent returns the x- and y-offsets the given string
X would span if written with text. */
X
Xstd_$call void gpr_$inq_text_extent ();
X
X
X
X/* gpr_$inq_text_offset returns the x- and y-offsets that must be added to the
X coordinates of the desired upper left pixel of the string to give the pixel
X from which the text call should be made, and the x_offset of the pixel
X which would be the updated cp. */
X
Xstd_$call void gpr_$inq_text_offset ();
X
X
X
X/* gpr_$replicate_font creates and loads a read/write copy of the original font. */
X
Xstd_$call void gpr_$replicate_font ();
X#eject
X/* data transfer operations. */
X
X
X
X/* gpr_$clear clears the current bitmap to a given pixel value. */
X
Xstd_$call void gpr_$clear ();
X
X
X
X/* gpr_$read_pixels reads the pixels from the given window of the current
X bitmap and stores them in a pixel array. */
X
Xstd_$call void gpr_$read_pixels ();
X
X
X
X/* gpr_$write_pixels writes the pixels from a pixel array into the given
X window of the current bitmap. */
X
Xstd_$call void gpr_$write_pixels ();
X#eject
X/* blt operations. */
X
X
X
X/* gpr_$pixel_blt moves a rectangle of whole pixels from the source
X bitmap to a position in the current bitmap. */
X
Xstd_$call void gpr_$pixel_blt ();
X
X
X/* gpr_$bit_blt moves a rectangle of bits from a plane of the source
X bitmap to a position in a plane of the current bitmap. */
X
Xstd_$call void gpr_$bit_blt ();
X
X
X/* gpr_$additive_blt moves a rectangle of bits from a plane of the source
X bitmap to a position in every plane of the current bitmap. */
X
Xstd_$call void gpr_$additive_blt ();
X#eject
X/* fill operations. */
X
X
X
X/* gpr_$rectangle fills a rectangle in the current bitmap. */
X
Xstd_$call void gpr_$rectangle ();
X
X
X
X/* gpr_$trapezoid fills a trapezoid in the current bitmap. */
X
Xstd_$call void gpr_$trapezoid ();
X
X
X
X/* gpr_$multitrapezoid fills a list of trapezoids in the current bitmap. */
X
Xstd_$call void gpr_$multitrapezoid ();
X
X
X
X/* gpr_$triangle fills a triangle in the current bitmap. */
X
Xstd_$call void gpr_$triangle ();
X
X
X
X/* gpr_$multitriangle fills a list of triangles in the current bitmap. */
X
Xstd_$call void gpr_$multitriangle ();
X
X
X
X/* gpr_$start_pgon starts a polygon boundary loop. */
X
Xstd_$call void gpr_$start_pgon ();
X
X
X
X/* gpr_$pgon_polyline defines a series of line segments as part of
X the current polygon boundary loop. */
X
Xstd_$call void gpr_$pgon_polyline ();
X
X
X
X/* gpr_$close_fill_pgon closes and fills the currently open polygon. */
X
Xstd_$call void gpr_$close_fill_pgon ();
X
X
X
X/* gpr_$close_return_pgon closes the currently open polygon,
X decomposes it, and returns the list of trapezoids. */
X
Xstd_$call void gpr_$close_return_pgon ();
X
X
X
X/* gpr_$close_return_pgon_tri closes the currently open polygon,
X decomposes it, and returns the list of triangles. */
X
Xstd_$call void gpr_$close_return_pgon_tri ();
X
X
X
X/* gpr_$pgon_decomp_technique establishes the polygon decomposition technique
X to be used. */
X
Xstd_$call void gpr_$pgon_decomp_technique ();
X
X/* gpr_$inq_pgon_decomp_technique returns the polygon decomposition technique
X being used. */
X
Xstd_$call void gpr_$inq_pgon_decomp_technique ();
X
X
Xstd_$call void gpr_$set_triangle_fill_criteria ();
Xstd_$call void gpr_$inq_triangle_fill_criteria ();
X#eject
X
X
X/* direct graphics */
X
X
Xstd_$call void gpr_$set_acq_time_out();
X
X
X/* gpr_set_obscured_opt sets obscured selection attribute for display in
X direct mode */
X
Xstd_$call void gpr_$set_obscured_opt();
X
X
X/* gpr_$acquire_display gives the user exclusive access to all display operations
X in the acquired window */
X
Xstd_$call boolean gpr_$acquire_display();
X
X
X/* gpr_$inq_vis_list returns list of visible subwindows when a window is obscured */
X
Xstd_$call void gpr_$inq_vis_list();
X
X
X/* gpr_$force_release releases the display regardless of how many times it
X was previously acquired */
X
Xstd_$call void gpr_$force_release();
X
X
X/* gpr_$release_display will release the display only if acq_rel_cnt is 1 */
X
Xstd_$call void gpr_$release_display();
X
X
X/* gpr_$set_refresh_entry provides two procedures which will refresh the user's
X window and refresh hidden display memory */
X
Xstd_$call void gpr_$set_refresh_entry();
X
X
X/* gpr_$inq_refresh_entry returns the two procedures which will refresh the
X window and refresh hidden display memory. */
X
Xstd_$call void gpr_$inq_refresh_entry ();
X
X
X/* gpr_$set_auto_refresh tells dm to save bitmap and refresh screen when needed */
X
Xstd_$call void gpr_$set_auto_refresh();
X
X
X/* gpr_$event_wait hangs until input or time out; returns boolean to indicate
X obscured window */
X
Xstd_$call boolean gpr_$event_wait();
X
X
X/* gpr_$cond_event_wait returns immediately and reports if any input */
X
Xstd_$call boolean gpr_$cond_event_wait();
X
X
X/* gpr_$enable_input enables event type and selected set of keys to be
X recognized by event_wait */
X
Xstd_$call void gpr_$enable_input();
X
X
X/* gpr_$disable_input disables event type */
X
Xstd_$call void gpr_$disable_input();
X
X
X/* gpr_$get_ec gets event count */
X
Xstd_$call void gpr_$get_ec();
X
X/* gpr_$set_input_sid establishes the stream id for gpr input in frame mode
X if not standard input */
X
Xstd_$call void gpr_$set_input_sid();
X
X/* gpr_$set_window_id sets the character identifying the current displayed
X bitmap for input identification purposes */
X
Xstd_$call void gpr_$set_window_id();
X
X/* gpr_$inq_window_id returns the character identifying the current displayed
X bitmap for input identification purposes */
X
Xstd_$call void gpr_$inq_window_id();
X
X#eject
X
X/* imaging format calls */
X
X/* gpr_$set_imaging_format sets the dn600 display format */
X
Xstd_$call void gpr_$set_imaging_format();
X
X/* gpr_$inq_imaging_format returns the current dn600 display format */
X
Xstd_$call void gpr_$inq_imaging_format();
X#eject
X
X/* blank timeout calls */
X
X/* gpr_$set_blank_timeout sets the timeout value for screen blanking */
X
Xstd_$call void gpr_$set_blank_timeout ();
X
X/* gpr_$inq_blank_timeout returns the timeout value for screen blanking */
X
Xstd_$call void gpr_$inq_blank_timeout ();
X#eject
X
X/* gpr_$return_virt_dev_id returns the virtual device id */
X
Xstd_$call void gpr_$return_virt_dev_id();
X
X/* gpr_$validate_virt_dev restores the virtual device to the attributes
X that the gpr state has saved */
X
Xstd_$call void gpr_$validate_virt_dev();
X
X/* GPR_$SET_PLANE_MASK_32 sets the plane mask for a rgb bitmap */
Xstd_$call void gpr_$set_plane_mask_32();
X
Xstd_$call void gpr_$allocate_buffer();
X
Xstd_$call void gpr_$deallocate_buffer();
X
Xstd_$call void gpr_$select_display_buffer();
X
Xstd_$call void gpr_$inq_visible_buffer();
X
Xstd_$call void gpr_$make_bitmap_from_array();
X
X/* gpr_$inq_event_data returns additional event data */
Xstd_$call void gpr_$inq_event_data();
X
X#endif /* gpr_$gpr_ins_c */
X
X#eject
X
E!O!F! xstrek/original_code/apollo_inc/gpr.ins.c
echo xstrek/original_code/apollo_inc/kbd.ins.c 1>&2
sed -e 's/^X//' > xstrek/original_code/apollo_inc/kbd.ins.c <<'E!O!F! xstrek/original_code/apollo_inc/kbd.ins.c'
X/* KBD.INS.C, /sys/ins, JBT, 05/08/85
X
X Changes:
X 10/01/85 ltk added F0, F9 and keypad escape
X 05/08/85 ems added mouse button definitions. */
X
X/* Definitions for non-ascii keyboard keys, for use in borrow
X mode and direct mode in gpr_$event_wait. */
X
X
X#define KBD_$L1 0x81
X#define KBD_$L2 0x82
X#define KBD_$L3 0x83
X#define KBD_$L4 0x84
X#define KBD_$L5 0x85
X#define KBD_$L6 0x86
X#define KBD_$L7 0x87
X#define KBD_$L8 0x88
X#define KBD_$L9 0x89
X#define KBD_$LA 0x8A
X#define KBD_$LB 0x8B
X#define KBD_$LC 0x8C
X#define KBD_$LD 0x8D
X#define KBD_$LE 0x8E
X#define KBD_$LF 0x8F
X
X#define KBD_$L1U 0xA1
X#define KBD_$L2U 0xA2
X#define KBD_$L3U 0xA3
X#define KBD_$L4U 0xA4
X#define KBD_$L5U 0xA5
X#define KBD_$L6U 0xA6
X#define KBD_$L7U 0xA7
X#define KBD_$L8U 0xA8
X#define KBD_$L9U 0xA9
X#define KBD_$LAU 0xAA
X#define KBD_$LBU 0xAB
X#define KBD_$LCU 0xAC
X#define KBD_$LDU 0xAD
X#define KBD_$LEU 0xAE
X#define KBD_$LFU 0xAF
X
X#define KBD_$L1S 0xC9
X#define KBD_$L2S 0xCA
X#define KBD_$L3S 0xCB
X#define KBD_$L4S 0xCC
X#define KBD_$L5S 0xCD
X#define KBD_$L6S 0xCE
X#define KBD_$L7S 0xCF
X#define KBD_$L8S 0xD8
X#define KBD_$L9S 0xD9
X#define KBD_$LAS 0xDA
X#define KBD_$LBS 0xDB
X#define KBD_$LCS 0xDC
X#define KBD_$LDS 0xDD
X#define KBD_$LES 0xDE
X#define KBD_$LFS 0xDF
X
X#define KBD_$L1A 0xE8
X#define KBD_$L2A 0xE9
X#define KBD_$L3A 0xEA
X#define KBD_$L1AS 0xEC
X#define KBD_$L2AS 0xED
X#define KBD_$L3AS 0xEE
X#define KBD_$L1AU 0xF8
X#define KBD_$L2AU 0xF9
X#define KBD_$L3AU 0xFA
X
X#define KBD_$R1 0x90
X#define KBD_$R2 0x91
X#define KBD_$R3 0x92
X#define KBD_$R4 0x93
X#define KBD_$R5 0x94
X#define KBD_$R6 0xEB
X
X#define KBD_$R1U 0xB0
X#define KBD_$R2U 0xB1
X#define KBD_$R3U 0xB2
X#define KBD_$R4U 0xB3
X#define KBD_$R5U 0xB4
X#define KBD_$R6U 0xFB
X
X#define KBD_$R1S 0xC8
X#define KBD_$R2S 0xB5
X#define KBD_$R3S 0xB6
X#define KBD_$R4S 0xB7
X#define KBD_$R5S 0xB8
X#define KBD_$R6S 0xEF
X
X#define KBD_$BS 0x95
X#define KBD_$CR 0x96
X#define KBD_$TAB 0x97
X#define KBD_$STAB 0x98
X#define KBD_$CTAB 0x99
X
X#define KBD_$F1 0xC0
X#define KBD_$F2 0xC1
X#define KBD_$F3 0xC2
X#define KBD_$F4 0xC3
X#define KBD_$F5 0xC4
X#define KBD_$F6 0xC5
X#define KBD_$F7 0xC6
X#define KBD_$F8 0xC7
X#define KBD_$F9 0xBB
X#define KBD_$F0 0xBA
X
X#define KBD_$F1S 0xD0
X#define KBD_$F2S 0xD1
X#define KBD_$F3S 0xD2
X#define KBD_$F4S 0xD3
X#define KBD_$F5S 0xD4
X#define KBD_$F6S 0xD5
X#define KBD_$F7S 0xD6
X#define KBD_$F8S 0xD7
X#define KBD_$F9S 0xBF
X#define KBD_$F0S 0xBE
X
X#define KBD_$F1U 0xE0
X#define KBD_$F2U 0xE1
X#define KBD_$F3U 0xE2
X#define KBD_$F4U 0xE3
X#define KBD_$F5U 0xE4
X#define KBD_$F6U 0xE5
X#define KBD_$F7U 0xE6
X#define KBD_$F8U 0xE7
X#define KBD_$F9U 0xBD
X#define KBD_$F0U 0xBC
X
X#define KBD_$F1C 0xF0
X#define KBD_$F2C 0xF1
X#define KBD_$F3C 0xF2
X#define KBD_$F4C 0xF3
X#define KBD_$F5C 0xF4
X#define KBD_$F6C 0xF5
X#define KBD_$F7C 0xF6
X#define KBD_$F8C 0xF7
X#define KBD_$F9C 0xFD
X#define KBD_$F0C 0xFC
X
X /* mouse buttons */
X
X#define KBD_$M1D 'a' /* left-down */
X#define KBD_$M1U 'A' /* left-up */
X#define KBD_$M2D 'b' /* middle-down */
X#define KBD_$M2U 'B' /* middle-up */
X#define KBD_$M3D 'c' /* right-down */
X#define KBD_$M3U 'C' /* right-up */
X
X /* some tablets have 4 button pucks */
X
X#define KBD_$M4D 'd'
X#define KBD_$M4U 'D'
X
X /* the following names refer to the key cap names on the APOLLO 1 and
X APOLLO 2 keyboards. These names can be used only if the key caps are
X in the standard APOLLO locations. IF a 1 follows a defined name then
X the key cap name refers to an APOLLO 1 keyboard if a 2 follows then
X the name refers to an APOLLO 2. A '1' or '2' has only been added to
X key cap names that are common to both keyboards, but the key caps are in
X different locations on the keyboards. */
X
X
X /* key caps common to both APOLLO 1 and APOLLO 2 keyboards */
X
X#define KBD_$LINE_DEL KBD_$L2
X#define KBD_$CHAR_DEL KBD_$L3
X#define KBD_$CMD KBD_$L5
X#define KBD_$UP_ARROW KBD_$L8
X#define KBD_$LEFT_ARROW KBD_$LA
X#define KBD_$NEXT_WIN KBD_$LB
X#define KBD_$RIGHT_ARROW KBD_$LC
X#define KBD_$DOWN_ARROW KBD_$LE
X#define KBD_$L_BAR_ARROW KBD_$L4
X#define KBD_$R_BAR_ARROW KBD_$L6
X#define KBD_$L_BOX_ARROW KBD_$L7
X#define KBD_$R_BOX_ARROW KBD_$L9
X#define KBD_$READ KBD_$R3
X#define KBD_$EDIT KBD_$R4
X
X
X /* APOLLO 1 keys */
X
X#define KBD_$DOWN_BOX_ARROW1 KBD_$LD
X#define KBD_$UP_BOX_ARROW1 KBD_$LF
X#define KBD_$INS_MODE1 KBD_$L1
X#define KBD_$MARK1 KBD_$R1
X#define KBD_$SHELL1 KBD_$R2
X#define KBD_$HOLD1 KBD_$R5
X
X
X /* APOLLO 2 keys */
X
X#define KBD_$DOWN_BOX_ARROW2 KBD_$LF
X#define KBD_$UP_BOX_ARROW2 KBD_$LD
X#define KBD_$INS_MODE2 KBD_$L1S
X#define KBD_$COPY KBD_$L1A
X#define KBD_$CUT KBD_$L1AS
X#define KBD_$PASTE KBD_$L2A
X#define KBD_$UNDO KBD_$L2AS
X#define KBD_$MARK2 KBD_$L1
X#define KBD_$SHELL2 KBD_$L5S
X#define KBD_$GROW KBD_$L3A
X#define KBD_$MOVE KBD_$L3AS
X#define KBD_$POP KBD_$R1
X#define KBD_$AGAIN KBD_$R2
X#define KBD_$EXIT KBD_$R5
X#define KBD_$HOLD2 KBD_$R6
X#define KBD_$SAVE KBD_$R4S
X#define KBD_$ABORT KBD_$R5S
X#define KBD_$HELP KBD_$R6S
X
X /* APOLLO 3 key */
X
X#define KBD_$NUMERIC_KEYPAD 0x9E
E!O!F! xstrek/original_code/apollo_inc/kbd.ins.c
echo xstrek/original_code/apollo_inc/smdu.ins.c 1>&2
sed -e 's/^X//' > xstrek/original_code/apollo_inc/smdu.ins.c <<'E!O!F! xstrek/original_code/apollo_inc/smdu.ins.c'
X/* SMDU.INS.C, /sys/ins, ers, 09/14/83
X Display driver definitions - for users and display manager
X*/
X
X
X#define smd_$operation_ok 0x00000000
X#define smd_$illegal_unit 0x00130001
X#define smd_$font_not_loaded 0x00130002
X#define smd_$font_table_full 0x00130003
X#define smd_$illegal_caller 0x00130004
X#define smd_$font_too_large 0x00130005
X#define smd_$hdmt_unload_err 0x00130006
X#define smd_$illegal_direction 0x00130007
X#define smd_$unexp_blt_inuse 0x00130008
X#define smd_$protocol_viol 0x00130009
X#define smd_$too_many_pages 0x0013000A
X#define smd_$unsupported_font_ver 0x0013000B
X#define smd_$invalid_buffer_size 0x0013000C
X#define smd_$display_map_error 0x0013000D
X#define smd_$borrow_error 0x0013000E
X#define smd_$display_in_use 0x0013000F
X#define smd_$access_denied 0x00130010
X#define smd_$return_error 0x00130011
X#define smd_$not_borrowed 0x00130012
X#define smd_$cant_borrow_both 0x00130013
X#define smd_$already_borrowed 0x00130014
X#define smd_$invalid_pos 0x00130015
X#define smd_$invalid_window 0x00130016
X#define smd_$invalid_length 0x00130017
X#define smd_$invalid_direction 0x00130018
X#define smd_$invalid_displacement 0x00130019
X#define smd_$invalid_blt_mode 0x0013001A
X#define smd_$invalid_blt_ctl 0x0013001B
X#define smd_$invalid_bltd_int 0x0013001C
X#define smd_$invalid_ir_state 0x0013001D
X#define smd_$invalid_blt_coord 0x0013001E
X#define smd_$font_not_mapped 0x0013001F
X#define smd_$already_mapped 0x00130020
X#define smd_$not_mapped 0x00130021
X#define smd_$quit_while_waiting 0x00130022
X#define smd_$invalid_crsr_number 0x00130023
X#define smd_$hdm_full 0x00130024
X#define smd_$wait_quit 0x00130025
X#define smd_$invalid_key 0x00130026
X#define smd_$not_on_color 0x00130027
X#define smd_$not_implemented 0x00130028
X#define smd_$invalid_wid 0x00130029
X#define smd_$window_obscured 0x0013002A
X#define smd_$no_more_wids 0x0013002B
X#define smd_$process_not_found 0x0013002C
X#define smd_$disp_acqd 0x0013002D /* signal not allowed with display acquired */
X#define smd_$already_acquired 0x0013002E
X#define smd_$acquire_timeout 0x0013002F
X
X#define smd_$string_size 120 /* max # chars passed to write_str */
X#define smd_$max_event_data_size 32 /* max # words in event data buffer */
X#define smd_$max_request_size 16 /* max # words passed in req buf */
X/* If smd_$max_loaded_fonts changes, you need to change smdlib_data.asm!! */
X#define smd_$max_loaded_fonts 8 /* max # loaded fonts */
X#define smd_$max_font_length 0x10000 /* max font length, 64KB */
X
X#define smd_$black 0 /* color values for smd_$color */
X#define smd_$white 1
X
Xtypedef struct {
X short line;
X short column;
X} smd_$pos_t;
X
Xtypedef struct {
X short xs;
X short xe;
X short ys;
X short ye;
X} smd_$window_limits_t;
X
Xtypedef char smd_$string_t[smd_$string_size];
X
Xtypedef struct {
X pinteger mode; /* mode register */
X linteger cs; /* control (source) */
X linteger cd; /* control (dest) */
X pinteger ssy; /* start source y */
X pinteger ssx; /* start source x */
X pinteger sdy; /* start destination y */
X pinteger sdx; /* start destination x */
X pinteger esy; /* end source y */
X pinteger esx; /* end source x */
X pinteger edy; /* end destination y */
X pinteger edx; /* end destination x */
X} smd_$blt_regs_t;
X
Xtypedef short enum {smd_$up, smd_$down, smd_$left, smd_$right} smd_$direction_t;
X
Xtypedef short enum {
X smd_$input, smd_$signal, smd_$scroll_blt_complete,
X smd_$borrow_req, smd_$return_req, smd_$kbd_return_req,
X smd_$keyswitch_off, smd_$tpad_and_input, smd_$tpad_data,
X smd_$no_event
X} smd_$event_t;
Xtypedef union {
X char input_char;
X pinteger dbuf[smd_$max_event_data_size];
X struct {
X smd_$pos_t pos;
X short buttons; /* non_zero only for bitpad */
X } tpad_data;
X struct {
X char tp_inchar;
X smd_$pos_t ipos;
X } tpad_and_input;
X} smd_$event_data_t;
X
Xtypedef pinteger smd_$request_t[smd_$max_request_size];
X
Xtypedef pinteger smd_$display_memory_t[1024][64];
X
Xtypedef smd_$display_memory_t *smd_$display_memory_ptr_t;
Xtypedef pinteger *smd_$display_control_ptr_t;
X
Xtypedef struct { /* version 1 font desc table entry */
X char left; /* # rasters to left of curr x */
X char right; /* rasters to right of curr x */
X char up; /* rasters above curr y */
X char down; /* rasters below curr y */
X char width; /* character width, rasters */
X char x_pos; /* horiz pos in font image offs 800 */
X short y_pos; /* vpos in image, offs fit.y_offset */
X} smd_$v1_fdte_t;
X
Xtypedef struct { /* version 2 font desc table entry */
X short left; /* # rasters to left of curr x */
X short right; /* rasters to right of curr x */
X short up; /* rasters above curr y */
X short down; /* rasters below curr y */
X pinteger width; /* character width, rasters */
X pinteger x_pos; /* horiz pos in font image */
X pinteger y_pos; /* vpos in image, offs fit.y_offset */
X pinteger reserved; /* future use, to make 16 bytes */
X} smd_$v2_fdte_t;
X
Xtypedef struct {
X pinteger
X version, /* font table version # */
X image_offset, /* image offset from 1st wd of hdr */
X chars_in_font, /* # characters in font */
X raster_lines, /* # raster lines reqd for image */
X image_size, /* image size, bytes */
X max_height, /* max char height, rasters */
X max_width, /* max char width, rasters */
X v_spacing, /* vertical (inter-line) spacing */
X h_spacing, /* horiz (inter-character) spacing */
X space_size, /* width of space character */
X max_right, /* char max right, rasters */
X max_up, /* char max up, rasters */
X max_down; /* char max down, rasters */
X char index_table[128]; /* desc tab offsets per char */
X smd_$v1_fdte_t desc_table[128]; /* desc table */
X} smd_$font_table_t;
X
Xtypedef smd_$font_table_t *smd_$font_table_ptr_t;
X
Xtypedef pinteger smd_$cursor_bitmap_t[16];
X
Xtypedef short enum {
X smd_$none,
X smd_$bw_15P,
X smd_$bw_19L,
X smd_$color_display,
X smd_$800_color,
X smd_$color2_display,
X smd_$color3_display,
X smd_$reserved_display,
X smd_$color4_display,
X smd_$bw4_1280x1024,
X smd_$color5_display,
X smd_$bw5_1024x800,
X smd_$color6_display
X} smd_$display_type_t;
X
Xtypedef short enum {smd_$input_ec, smd_$scroll_blt_ec} smd_$ec_key_t;
X
X
X#define smd_$font_header_size 26 /* # bytes in font header */
X#define smd_$font_index_table_size 128 /* # bytes in index table */
X#define smd_$v1_fdte_size 8 /* # bytes in 1 descriptor table entry */
X
X
X/* Display mode register declaration. This is the C template for the
X display hardware mode register. */
X
Xtypedef struct {
X unsigned short blt: 1, /* 8000 - bit blt start / run flag */
X dummy: 6, /* 7E00 - pad */
X noninterlace: 1, /* 100 - hardware noninterlace mode */
X from_mm: 1, /* 80 - from main memory */
X to_mm: 1, /* 40 - to main memory */
X ieof: 1, /* 20 - interrupt at eof */
X idone: 1, /* 10 - interrupt on blt done */
X nonconform: 1, /* 8 - nonconforming areas */
X decr: 1, /* 4 - decrement mode (whadis?) */
X clrmode: 1, /* 2 - clear mode */
X dispon: 1; /* 1 - display on if true */
X} smd_$display_modereg_t;
X#eject
X/* Following are user-mode calls to the display driver. These may be
X invoked while the display is "borrowed" by the user. */
X
X
X/* SMD_$LOAD_FONT_U is called to load a font into the hidden portion
X of display memory. The font_id returned by this procedure is used in
X all future calls to write_string to identify the font. */
X
Xstd_$call pinteger smd_$load_font_u();
X
X
X/* SMD_$UNLOAD_FONT_U is called to unload a font from the hidden
X portion of display memory. This routine is invoked to make space for
X another font when the hdm (hidden display memory) or a font table
X becomes full. */
X
Xstd_$call void smd_$unload_font_u();
X
X
X/* SMD_$LOAD_FONT_FILE_U maps a named font file into memory and loads it
X using the load_font routine described above. */
X
Xstd_$call void smd_$load_font_file_u();
X
X
X/* SMD_$UNLOAD_FONT_FILE_U unloads a font and unmaps the associated font
X file. This routine should be used for each font loaded with the
X load_font_file routine. */
X
Xstd_$call void smd_$unload_font_file_u();
X
X
X/* SMD_$WRITE_STRING_U is called to write a text string on the display. */
X
Xstd_$call void smd_$write_string_u();
X
X
X/* SMD_$SOFT_SCROLL_U is used to start a soft scroll operation. The specified
X area of the screen is scrolled, 2 raster lines at a time, until the
X number of raster lines moved is equal to <displacement>. (If this is
X odd, the last blt will be move the area 1 line.) This routine returns
X prior to the completion of the scroll.
X
X Any smd routine which does not require the services of the interrupt
X routine may be called and executed while the scroll is in progress
X without waiting for the scroll to complete. If an smd routine which
X requires the services of the interrupt handler is called, execution of
X that process is suspended until the scroll completes. */
X
Xstd_$call void smd_$soft_scroll_u();
X
X
X/* SMD_$EVENT_WAIT_U causes the calling process to be suspended until a
X screen manager event occurs. These events are enumerated in the
X smd_$event_t type definition. User processes will only be notified
X of scroll/blt completion and keyboard input; never of screen manager
X requests. */
X
Xstd_$call void smd_$event_wait_u();
X
X
X/* SMD_$COND_EVENT_WAIT_U is a conditional version of event_wait. It returns
X smd_$no_event, if no event has occurred. It never waits. */
X
Xstd_$call void smd_$cond_event_wait_u();
X
X
X/* SMD_$COND_INPUT_U performs conditional input. If a character has been
X typed, it is returned in "ch" and the function value is true. If not,
X the value of "ch" is undefined and the function value is false. */
X
Xstd_$call short smd_$cond_input_u();
X
X
X/* SMD_$BLT_U is called to start and optionally wait for the completion
X of a display blt operation.
X
X The procedure will return without waiting for completion if the
X "interrupt when blt done" mode register bit is set.
X
X The state of the "display on" and "interrupt at end of frame" bits are
X irrelevant, as the default mode register, internal to the smd, is used
X to obtain this information. */
X
Xstd_$call void smd_$blt_u();
X
X
X/* SMD_$DRAW_BOX_U is called to draw a box around a window. Lines are drawn
X to vertically and horizontally connect the 4 given endpoints. */
X
Xstd_$call void smd_$draw_box_u();
X
X
X/* SMD_$CLEAR_WINDOW_U is called by the sm to clear the area of the screen
X enclosed within the 4 specified endpoints. This routine does not return
X until the clear is complete. (This makes it eligible to interlace with
X soft scrolling.) */
X
Xstd_$call void smd_$clear_window_u();
X
X
X/* SMD_$MOVE_KBD_CURSOR_U causes the keyboard cursor to be moved from its
X present position to the position specified. The display driver's
X knowledge of cursor position is also updated. */
X
Xstd_$call void smd_$move_kbd_cursor_u();
X
X
X/* SMD_$CLEAR_KBD_CURSOR_U is used to clear the keyboard-associated cursor
X from the display and inhibit cursor blinking. */
X
Xstd_$call void smd_$clear_kbd_cursor_u();
X
X
X/* SMD_$BORROW_DISPLAY_U is called by the user to ask to borrow the display
X memory and a subset of the display driver routines. */
X
Xstd_$call void smd_$borrow_display_u();
X
X
X/* SMD_$BORROW_DISPLAY_NC_U is called by the user to ask to borrow the display
X memory and a subset of the display driver routines. It is similar to the
X normal borrow_display procedure, except that the display is not cleared. */
X
Xstd_$call void smd_$borrow_display_nc_u();
X
X
X/* SMD_$RETURN_DISPLAY_U is called by the user to terminate his exclusive
X use of the display and smd routines. The display is unmapped from his
X address space and further use of the smd routines is disallowed. */
X
Xstd_$call void smd_$return_display_u();
X
X
X/* SMD_$OP_WAIT_U waits for the current soft scroll or blt operation to
X complete, then returns. */
X
Xstd_$call void smd_$op_wait_u();
X
X
X/* SMD_$MAP_DISPLAY_U maps the display memory into the user's address space
X and returns a pointer to the first byte. */
X
Xstd_$call void smd_$map_display_u();
X
X
X/* SMD_$UNMAP_DISPLAY_U unmaps the display memory from the user's address
X space. It must previously have been mapped with SMD_$MAP_DISPLAY_U. */
X
Xstd_$call void smd_$unmap_display_u();
X
X
X/* SMD_$VECTOR_INIT_U initializes the vector drawing routines SMD_$DRAW_ABS_U,
X SMD_$DRAW_REL_U, SMD_$MOVE_ABS_U, SMD_$MOVE_REL_U. */
X
Xstd_$call void smd_$vector_init_u();
X
X
X
X/* SMD_$DRAW_ABS_U draws a vector from the current point to the point specified,
X in absolute screen coordinates. */
X
Xstd_$call void smd_$draw_abs_u();
X
X
X/* SMD_$DRAW_REL_U draws a vector from the current point to the point specified,
X in pixels relative to the current point. */
X
Xstd_$call void smd_$draw_rel_u();
X
X
X/* SMD_$MOVE_ABS_U moves the "current" position to that specified by the x and
X y arguments, in absolute screen coordinates. */
X
Xstd_$call void smd_$move_abs_u();
X
X
X/* SMD_$MOVE_REL_U moves the "current" position to that specified by the x and
X y coordinates, relative to the current position. */
X
Xstd_$call void smd_$move_rel_u();
X
X/* SMD_$COLOR sets the color (black or white/green) of subsequent lines to
X be drawn by draw_abs_u or draw_rel_u */
X
Xstd_$call void smd_$color();
X
X/* SMD_$SET_TP_CURSOR offers touchpad (or other locator device) data to the
X driver, which then displays a different cursor shape, that follows the
X pos data, and eventually delivers the data to the display manager or
X other process owning the display. */
X
Xstd_$call void smd_$set_tp_cursor();
X
X/* SMD_$STOP_TP_CURSOR turns off the touchpad cursor and puts back the blinking
X keyboard cursor, if it is supposed to be up. */
X
Xstd_$call void smd_$stop_tp_cursor();
X
X/* SMD_$TP_ENABLE allows the touchpad cursor to be displayed
X and moved around the screen. Initial state is off. */
X
Xstd_$call void smd_$tp_enable();
X
X/* SMD_$TP_DISABLE is the routine of choice to call when preparing to
X touch display memory directly in user mode, since it both prevents
X interference from the touchpad cursor and guarantees that the blt
X is clear. Note that operations within the driver automatically take
X down the tp cursor if it is up, since the caller does not know where
X it is, and hence cannot take it down conditionally. */
X
Xstd_$call void smd_$tp_disable();
X
X/* SMD_$TP_DIRECT sets or clears the tpad_direct bit.
X
X If tpad_direct is set, then touchpad data does not put a cursor on the
X screen, but delivers the data through smd_$event_wait, as a special
X event type. If not set, then the cursor is moved around by tp data,
X and the new position will be delivered with the next keystroke, as
X a keystroke with cursor event. */
X
Xstd_$call void smd_$tp_direct();
X
X
X/* SMD_$LOAD_CRSR_BITMAP - Define a bitmap for one of the internal cursors */
X
Xstd_$call void smd_$load_crsr_bitmap();
X
X
X/* SMD_$READ_CRSR_BITMAP - Return the bitmap for one of the internal cursors */
X
Xstd_$call void smd_$read_crsr_bitmap();
X
X
X/* SMD_$SET_QUIT_CHAR defines the character which causes a quit to be
X sent to the borrowing process. */
X
Xstd_$call void smd_$set_quit_char();
X
X
X/* SMD_$INQ_DISP_TYPE returns the type of the display physically attached to
X the given unit number. */
X
Xstd_$call smd_$display_type_t smd_$inq_disp_type();
X
X
X/* SMD_$ALLOC_HDM
X
X Allocate space in hidden display memory. It returns an smd_$pos_t
X indicating the x/y position in overall display memory, and works for
X both portrait and landscape displays. The returned space is always
X 224 bits wide, and on the landscape display, may wrap across column
X boundaries. */
X
Xstd_$call void smd_$alloc_hdm();
X
X
X/* SMD_$FREE_HDM
X
X Free previously allocated space in hidden display memory */
X
Xstd_$call void smd_$free_hdm();
X
X
X/* SMD_$INVERT
X
X Invert the display, and all subsequent operations */
X
Xstd_$call void smd_$invert();
X
X
X/* SMD_$GET_EC exports level 1 eventcounts to user-space. */
X
Xstd_$call void smd_$get_ec();
X
X#eject
E!O!F! xstrek/original_code/apollo_inc/smdu.ins.c
echo xstrek/original_code/apollo_inc/time.ins.c 1>&2
sed -e 's/^X//' > xstrek/original_code/apollo_inc/time.ins.c <<'E!O!F! xstrek/original_code/apollo_inc/time.ins.c'
X/* TIME.INS.C /sys/ins, ers, 09/29/82
X customer-callable timer routines
X
X Changes:
X 04/02/86 lwa Change enum to short enum.
X 09/29/82 ers original coding.
X*/
X
X#define time_$no_q_entry 0x000D0001 /* error from time_$advance */
X#define time_$not_found 0x000D0002 /* entry to be canceled not found */
X#define time_$wait_quit 0x000D0003 /* wait interrupted by quit fault */
X#define time_$bad_int 0x000D0004 /* bad timer interrupt */
X#define time_$bad_key 0x000D0005 /* bad key to time_$get_ec */
X
Xtypedef short enum {time_$relative, time_$absolute} time_$rel_abs_t;
X
Xtypedef short enum {time_$clockh_key} time_$key_t;
X
Xstd_$call void time_$clock(); /* read the whole clock */
Xstd_$call void time_$wait();
Xstd_$call void time_$get_ec();
X
X#eject
E!O!F! xstrek/original_code/apollo_inc/time.ins.c
exit
===========
@work: | Matthias Pfuetzner | @home:
ZGDV, Wilhelminenstrasse 7 | 6100 Darmstadt, FRG | Lichtenbergstrasse 73
+49 6151 155-164 or -101 \ <- Tel.nr. -> / +49 6151 75717
pfuetzner at agd.fhg.de pfuetzner at zgdvda.UUCP XBR1YD3U at DDATHD21.BITNET
--
Dan Heller
------------------------------------------------
O'Reilly && Associates ZipCode Software
Senior Writer President
argv at ora.com argv at zipcode.com
More information about the Comp.sources.x
mailing list