On: Tue, Feb 20, 2007 at 10:29:41AM -0500,Nick Laflamme Wrote:
} Has anyone mapped out the values to tape drives types returned by "Q cuu
} ID"? Perhaps even listed which types are compatible with what sorts of
} tapes? (Yes, Herndon, I'm looking in your direction.)
Nick,
Not sure if this will help because its old and doesn't include the newer
tapes, but this exec "TAPETYPE" may get you started.
/*
TAPETYPE
Rich Greenberg, Locus, 8/89.
This exec, when called as a Rexx function or subroutine,
will return a value which is the IBM model number of the
real tape drive associated with the virtual address passed to it.
To use:
mod = 'TAPETYPE'(vaddr) (Function call)
call 'TAPETYPE' vaddr (Subroutine
mod = result call)
Where:
mod Receives one of the o/p values.
vaddr Is the virtual address of the tape drive.
Output; The value returned will be one of the following:
2401 )
2415 ) Real
2420 ) tape
3420 ) drive
3410 ) is
8809 ) this
3430 ) model.
3480 )
9347 )
0 Real device is a tape drive,
but type is not recognized.
-1 Real device is not a tape drive
-2 Virtual device exists but is not
associated with a real device.
-3 Invalid device address OR the
virtual device does not exist.
-4 Call error - Too many or too few
arguements.
-100 Exit from HELP request.
Note: A 3411 tape drive will return 3410.
*/
address 'COMMAND'
trace 'O'
/*
Get my arg. If null, or more than 1, exit with -4.
Check for HELP request.
*/
parse upper arg vaddr rest
if vaddr = '?' | vaddr = 'HELP'
then do
do n = 2 while substr(sourceline(n),1,2) ^= '*/'
say sourceline(n)
end
exit -100
end
if vaddr = '' | rest ^= ''
then return -4
/*
Now do a diag 24 against the vaddr and see what we get.
*/
parse value diag(24,vaddr) with . 5 rdevclas 6 rdevtyp 7 . 13 cc
select
when cc = 0
then do
if rdevclas = '08'x
then return Seltyp(rdevtyp)
else return -1
end
when cc = 2
then return -2
when cc = 3
then return -3
end
/*
Devicetype matcher routine.
*/
Seltyp:
select
when arg(1) = '80'x
then return 2401
when arg(1) = '40'x
then return 2415
when arg(1) = '20'x
then return 2420
when arg(1) = '10'x
then return 3420
when arg(1) = '08'x
then return 3410
when arg(1) = '02'x
then return 3430
when arg(1) = '01'x
then return 3480
when arg(1) = '04'x
then return 8809
when arg(1) = '84'x
then return 9347
otherwise
return 0
end
--
Rich Greenberg N Ft Myers, FL, USA richgr atsign panix.com + 1 239 543 1353
Eastern time. N6LRT I speak for myself & my dogs only. VM'er since CP-67
Canines:Val, Red, Shasta & Casey (RIP), Red & Zero, Siberians Owner:Chinook-L
Retired at the beach Asst Owner:Sibernet-L