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