aboutsummaryrefslogtreecommitdiff
path: root/sys/gio/calcomp/ccpescape.x
diff options
context:
space:
mode:
authorJoseph Hunkeler <jhunkeler@gmail.com>2015-07-08 20:46:52 -0400
committerJoseph Hunkeler <jhunkeler@gmail.com>2015-07-08 20:46:52 -0400
commitfa080de7afc95aa1c19a6e6fc0e0708ced2eadc4 (patch)
treebdda434976bc09c864f2e4fa6f16ba1952b1e555 /sys/gio/calcomp/ccpescape.x
downloadiraf-linux-fa080de7afc95aa1c19a6e6fc0e0708ced2eadc4.tar.gz
Initial commit
Diffstat (limited to 'sys/gio/calcomp/ccpescape.x')
-rw-r--r--sys/gio/calcomp/ccpescape.x65
1 files changed, 65 insertions, 0 deletions
diff --git a/sys/gio/calcomp/ccpescape.x b/sys/gio/calcomp/ccpescape.x
new file mode 100644
index 00000000..37e81972
--- /dev/null
+++ b/sys/gio/calcomp/ccpescape.x
@@ -0,0 +1,65 @@
+# Copyright(c) 1986 Association of Universities for Research in Astronomy Inc.
+
+include <gescape.h>
+include "ccp.h"
+
+# CCP_ESCAPE -- Pass a device dependent instruction on to the kernel.
+# used for passing exact scaling factors through gki metacode
+
+procedure ccp_escape (fn, instruction, nwords)
+
+int fn # function code
+short instruction[ARB] # instruction data words
+int nwords # length of instruction
+
+int ip
+real tempr
+char scale_str[SZ_LINE]
+int ctod ()
+
+include "ccp.com"
+
+string warnx "Warning: ccpkern unable to convert gki_escape xscale\n"
+string warny "Warning: ccpkern unable to convert gki_escape yscale\n"
+
+begin
+ call achtsc (instruction, scale_str, nwords)
+ scale_str[nwords+1] = EOS
+ ip = 1
+
+ switch (fn) {
+
+ case GSC_X_GKITODEV:
+
+ # if kernel task scale params were not specified, set actual scale
+ # params to those passed from metacode if translatable, set to
+ # default scale from ccp_init/graphcap if untranslatable. If
+ # kernel task did specify scale, this is a no op.
+
+ if (IS_INDEF (g_xtask_scale)) {
+ if (ctod (scale_str, ip, tempr) < 1) {
+ g_xndcto_p = g_xdefault_scale
+ call eprintf (warnx)
+ call eprintf ("scale string: %s\n")
+ call pargstr (scale_str)
+ call eprintf ("new (graphcap-default) x scale: %f\n")
+ call pargr (g_xndcto_p)
+ } else
+ g_xndcto_p = tempr
+ }
+
+ case GSC_Y_GKITODEV:
+
+ if (IS_INDEF (g_ytask_scale)) {
+ if (ctod (scale_str, ip, tempr) < 1) {
+ g_yndcto_p = g_ydefault_scale
+ call eprintf (warny)
+ call eprintf ("scale string: %s\n")
+ call pargstr (scale_str)
+ call eprintf ("new (graphcap-default) y scale: %f\n")
+ call pargr (g_yndcto_p)
+ } else
+ g_yndcto_p = tempr
+ }
+ }
+end