aboutsummaryrefslogtreecommitdiff
path: root/unix/gdev/m70vms/m70mcl.f
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 /unix/gdev/m70vms/m70mcl.f
downloadiraf-linux-fa080de7afc95aa1c19a6e6fc0e0708ced2eadc4.tar.gz
Initial commit
Diffstat (limited to 'unix/gdev/m70vms/m70mcl.f')
-rw-r--r--unix/gdev/m70vms/m70mcl.f35
1 files changed, 35 insertions, 0 deletions
diff --git a/unix/gdev/m70vms/m70mcl.f b/unix/gdev/m70vms/m70mcl.f
new file mode 100644
index 00000000..c9fb5c98
--- /dev/null
+++ b/unix/gdev/m70vms/m70mcl.f
@@ -0,0 +1,35 @@
+ subroutine m70mcl (fcb, error)
+c
+c master clear model 70
+c
+ integer fcb(*), error
+c
+ include 'fcbu.inc'
+ external io$_rewind, ss$_normal
+ integer*4 status, iosb(2), chan, sys$qiow
+ integer*2 chan2(2), iostat, stat
+ equivalence (chan, chan2), (iosb, iostat)
+ equivalence (status, stat)
+ external ss$_timeout, ss$_powerfail
+c
+ chan2(1) = fcb(fcb_u_m70_chan)
+ chan2(2) = fcb(fcb_u_m70_chan+1)
+c
+ status = sys$qiow (, %val(chan), io$_rewind, iosb,,,,,,,,)
+ if (status) then
+ if (iosb(1)) then
+ error = 0
+ else
+ status = lib$match_cond (iosb, ss$_timeout, ss$_powerfail)
+ if (status .eq. 0) then
+ error = 1000 + iostat
+ else
+ error = status
+ endif
+ endif
+ else
+ error = 1000 + stat
+ endif
+c
+ return
+ end