aboutsummaryrefslogtreecommitdiff
path: root/unix/gdev/m70vms/README
blob: 23a068247e48a5ae6dc4bc8ccd31a3cbe0a8f684 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
VMS IRAF/FIO device driver for the IIS Model 70
(will probably also work for the model 75).  11/85 dct
----------------------------------------------------------------------

This directory contains the IRAF/FIO driver subroutines for the IIS Model 70
image display on VMS.  This directory is self contained; no external code is
required other than the VMS/IIS device driver itself.  The code should be
portable to any VMS system.


Driver Procedures:

	zopm70	-- open + allocate
	zclm70	-- close + deallocate
	zrdm70	-- asynchronous binary read
	zwrm70	-- asynchronous binary write
	zwtm70	-- wait for i/o completion, return status
	zstm70	-- get device status


On a UNIX system the ordinary binary file driver (ZFIOBF) may be used for these
functions.  This might work on VMS too, but the IRAF/VMS binary file driver is
complicated and uses RMS, so I did not bother to try.  This driver uses a
modified version local KPNO IIS library, which I suppose came originally from
IIS corp.  The interface procedures are written in VMS Fortran and make direct
calls to the VMS system services.  The original library has been modified to
convert all the names to the prefix "m70", and to remove all Fortran i/o.


VMS/IIS Interface Procedures:

	m70get (fcb, error)		# open+allocate+mclear
	m70rel (fcb)			# close+deallocate
	m70opn (fcb, error)		# open
	m70cls (fcb)			# close
	m70mcl (fcb, error)		# master clear

	m70io  (fcb, data, count, read, opcd, iosb, error)
	m70wt  (fcb, bfnum, bfcnt, iosb, error)
	m70wti (fcb, func, time, button, x, y)


M70IO: I/O between M70 and a VAX.

        fcb      function communications block.
        data     input/output buffer.
        count    number of words to read/write.
        read     0 -> write, 1 -> read.
        opcd     :: 0 -> qio with efn = 1 and wait for completion
                    1 -> qio with efn = 2
                    2 -> qio with efn = 3
	iosb 	 I/O status quadword
	error    :: -1 => display not available
		     0 => success
	             1 => time/out
	             2 => invalid or non-responding device
	           1000 > machine dependent error code


M70WT: Wait for i/o.

        fcb      function communication block.
        bfnum    used to determine event flag to wait for
        bfcnt    number of words in buffer.  should be -1 indicating
                 i/o pending.  reset to zero when i/o completed.
        iosb     i/o status block
        error    0 success, -1 not acquired, 1 timeout,
                 2 invalid device, 1000+n system dep. error