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
|