In a message dated 6/12/2008 11:42:05 A.M. Central Daylight Time,  
[EMAIL PROTECTED] writes:
>Real CCW addresses are also used by the documented EXCPVR  interface.
 
True.  And you have to get the real addresses correct with EXCPVR,  or you 
will hose storage on read commands.
 
>The 
biggest problem with STARTIO is that there is no allocation,  DCB, or 
OPEN required.
 
I never considered this a problem but a major benefit, and one of several  
reasons why I use STARTIO.  If you are authorized enough to use EXCPVR, you  
can 
also use EXCP, modify the DEB, and get to any device which you have not  
allocated, enqueued upon, or OPENed a DCB for.  There are times when such  
things 
are necessary.  The lower the level "access method" you use, the  more 
flexibility you have, the more things you can do, sometimes the more things  
you have 
to do (e.g., block/deblock with BSAM but not with QSAM), and, at a low  
enough level, the more dangerous it becomes.
 
>All it needs is an IOSB -- which contains pointers to the 
channel  program and UCB. Using STARTIO, you can construct a channel 
program to read  or write any records anywhere on any device. This puts 
you one subtle  programming error away from "wiping out" something 
important that isn't  yours.
 
Which is why you test your STARTIO code, and anything else you build that  is 
authorized, on "test" systems that everyone else knows may not survive your  
test.  You can also wipe out something that is not yours with an incorrect  
real address on a read command using the much "safer" EXCPVR.   When  you are 
building authorized code, you must write each instruction with the  awareness 
that you can unexpectedly hose almost any conceivable part of MVS if  you err.
 
>The other danger is having to write code 
that executes in SRB  mode -- with PSW key zero -- to manage I/O completion.
 
Many posters have demonstrated a familiarity with coding SRBs.  I  assume a 
poster is competent enough to do whatever is necessary whenever he  finds out 
whatever prompted him to post a question.  The original mention  of STARTIO 
seemed to me more like intellectual curiosity than a desire to build  a 
production program with possibly massive, hidden dangers in it.  There  are 
plenty of 
other dangers, too; e.g., in STARTIO you must build your channel  program in 
and have all your data in fixed storage, and also make your address  space 
nonswappable.  You can screw up either of these and possibly hose  something.
 
>Without question, STARTIO is a dangerous interface -- made even more  
dangerous by the total lack of documentation on its use.
 
Not completely total.  Only officially.  Long ago intrepid  developers 
discovered several IBM software products using STARTIO (JES3, IMS)  whose 
source 
code was distributed, and they copied the code surrounding those  STARTIOs.  I 
learned how to do it from a photocopy of a photocopy of a ...  from someone in 
Amdahl in 1985.   And when I explained publicly  how to use STARTIO in SHARE, I 
emphasized many times how easy it was to hose  things with STARTIO and to be 
very, very careful.
 
Bill  Fairchild
Rocket Software





**************Vote for your city's best dining and nightlife. City's Best 
2008.      (http://citysbest.aol.com?ncid=aolacg00050000000102)

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [EMAIL PROTECTED] with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html

Reply via email to