And again when I stole what SJTVM1 had to get a version that runs under VM/ESA. This also upgraded our ISPF/PDF to 3.2. Defined a clone ISPVMNEW service virtual machine. Define new saved segments: For XA mode, DEFSEG ISR321XA 4000-40FF SR SPACE ISPFXA DEFSEG ISP321XA 4100-41FF SR SPACE ISPFXA Then, GIME PRODUCT 3D1 ACCESS 3D1 C (MODE0 Need to see the mode0 text files. ISRSAVE ISR321XA ISPSAVE ISP321XA For 370 mode, DEFSEG ISR321 A00-AFF SR SPACE ISPF370 DEFSEG ISP321 B00-BFF SR SPACE ISPF370 GIME PRODUCT 3D1 ACCESS 3D1 C (MODE0 Need to see the mode0 text files. ISRSAVE ISR321 ISPSAVE ISP321 Modify ISPFINFO EXEC to point to the new segments & virtual machine. Have duplicate copies on the y-disk and the ISPF disk. Removed the Fortran Interactive Debugger & the Inspect debugger code from the ISPSTART EXEC. Jeff Schneiter says they could be invoked manually, not from within ISPF, so I'm gonna save me a local mod and force invocation that way. This may generate some phone calls. Notify the ASAP Team of this change so they can change anything they need to, for example, USOS NAMES on the y-disk. Change PRODUCT NAMES. I didn't change the ISPOPT2, ISPPFT01, ISPPFT02, and ISPPFT03 members in the ISPPLIB MACLIB like I had before. This changes the initial ISPF screen to show stuff that we don't have installed. Tough. This caused a change to the ISPF EXEC. Continued the change to ISRUHC1 and ISRUHC2 members in the ISRPPLIB MACLIB to say NET instead of RSCS. Also the ISRFXPRT and ISRFX09 EXECs were changed. I don't know what or where the ISRXPARM ASSEMBLE file stuff is used for. I never updated that when we changed from ALMVMD to ALMVMA, so it can't be that important, but I went ahead and updated them anyway and ran the ISRINSXR EXEC. Kept our ALMEDIT EXEC, which is called from the ISPF EXEC. ======================================================================= Yet more notes on when I installed ISPF V3.2 in January, 1991. If I keep doing this, I'm going to be known as an ISPF expert. Shit! Program Product Numbers: ISPF 5684-043. ISPF/PDF 5684-123 We got ISPF on two tapes. One had the code, the other had the online documentation that you could view with BOOKMGR. Brian and I put them on the same disk, PRODUCT's 3D2. The tape numbers are VM5407 & VM5408. Bruce Cook (BCOOK at TUCVM8, dept. 70WA (??)) is an ISPF contact. We installed ISPF under the ISPVM virtual machine (instead of ISPFVM). For the segment names, we used For 370-mode, ISP320 & ISR320 (instead of IS*DCSS). For XA-mode, ISP320XA & ISR320XA (instead of IS*22037). We had to change the following files. - ISPFINFO EXEC on the Y-disk changed (new segment names & new SVM). - * EXEC on the Y-disk changed (new segment names & new SVM). - ISBROWSE EXEC on the ISPF disk (local code). - * * on the ISPF disk (local code). ======================================================================= How to save ISPF For XA mode, DEFSEG ISR320XA 4000-40FF SR SPACE ISPFXA DEFSEG ISP320XA 4100-41FF SR SPACE ISPFXA Then, LINK PRODUCT 3D0 3D0 MR The ISPF disk has to be R/W. I dunno why, it didn't used to not be. ACC 3D0 E ISRSAVE ISR320XA ISPSAVE ISP320XA For 370 mode, DEFSEG ISR320 C00-CFF SR SPACE ISPF370 DEFSEG ISP320 D00-DFF SR SPACE ISPF370 Then, LINK PRODUCT 3D0 3D0 MR The ISPF disk has to be R/W. I dunno why, it didn't used to not be. ACC 3D0 E ISRSAVE ISR320 ISPSAVE ISP320 ======================================================================= Brain Dump of when I installed ISPF (yuch!!) in April, 1986 Updated from when I installed it again in March, 1987 ======================================================================= From Dave Sosa in Research, I borrowed the - Product tape for ISPF, version 2, release 2, product # 5664282, - Product tape for ISPF/PDF, version 2, release 2, product # 5664285, - Installation and Customization manual, SC34-4015. ======================================================================= Other people in other areas who have installed ISPF include, - Ruth Chen in building 51, - Mark Levy in Manufacturing, - Jim Kirkpatrick in Product Test, - Dave Sosa in Research. ======================================================================= I basically just followed the cookbook instructions in the manual, but I did have some anamolies occur, and I know I didn't do everything correctly. For example, when it asked me if I wanted "the messages, panels, and tables in MACLIBSs, CMS files, or both," I said both. This caused the 40% of a 100 cylinder disk to be filled. This probably wasn't the right thing to do, but the book doesn't go into why I would want MACLIBs, CMS files, or both. ======================================================================= I did have to add a new userid, ISPVM. Here's its directory entry. It needed class E privileges, the book said, to be able to examine CP real storage. Why it does that, I haven't the foggiest. USER ISPVM XXXX 1M 16M EG ACCOUNT CZ57 ISPVM SYSTEMS IPL CMS CONSOLE 01F 3215 T MDISK 191 3380 5 010 CM80E2 MR MDISK 192 3380 205 100 SH80B5 MR ALL ======================================================================= I also had to define two new DCSS's for SJEVM1. Here are the DCSS definitions that John and I shamelessly stole from Ruth Chen on SJEVM5. ISPV2R2 NAMESYS SYSNAME=ISPV2R2,SYSSTRT=(250,01),SYSVOL=VM50C0, + SYSSIZE=640K,SYSPGCT=160,SYSPGNM=(1568-1727), * SYSHRSG=(98,99,100,101,102,103,104,105,106,107), + VSYSRES=,VSYSADR=IGNORE EJECT , ISRV2R2 NAMESYS SYSNAME=ISRV2R2,SYSSTRT=(251,42),SYSVOL=VM50C0, + SYSSIZE=704K,SYSPGCT=176,SYSPGNM=(3600-3775), * SYSHRSG=(225,226,227,228,229,230,231,232,233,234,235), + VSYSRES=,VSYSADR=IGNORE * * 252,99 THRU 256,120 AVAILABLE * EJECT , ======================================================================= There's also another piece in all of this, and that's the ISPF EXEC. This I also shamelessly stole from Ruth Chen. Here that is ... /*This is the ISPF (System Productivity Facility) command EXEC used */ /*to run the program development facility. Before invoking this */ /*EXEC you must issue FILEDEFS for any additional panel, message, */ /*tables and/or skeleton libraries from which you plan to operate, */ /*as well as for the file to be used for ISPFPFF. THE ISPDCS */ /*command has an optional keyword parameter (keyward is "PDFDCSS") */ /*which specifies the PDF DCSS name (If omitted then the default PDF */ /*DCSS name of "ISRDCSS" is used). */ /* */ /* */ /* */ /* R. Chen 3/18/86 Changed DCSS nmaes to ISPV2R2 and ISRV2R2 */ /* the userid for ISPF service machien is ISPFV2R2 */ TRACE 'o' PARSE UPPER ARG ISPFPARM IF ISPFPARM='?' Then Call Helptext /**********************************************************************/ /* LINK TO ISPF AND PDF DISK(S) */ /**********************************************************************/ 'SET CMSTYPE HT' 'MAKEBUF'; buf=rc 'LISTFILE $$ISPF$$ V2R2 * (LIFO' If rc=0 Then Do Parse Pull . . nmd nmd=SUBSTR(STRIP(nmd,,),1,1) 'DROP' nmd End 'DROPBUF' buf 'GETVADDR B 193' PARSE PULL . cuu nmd . 'CP LINK ISPVM 192' cuu 'RR' 'ACC' cuu nmd 'SET CMSTYPE RT' /**********************************************************************/ /* PERFORM FILEDEFS */ /* NOTE: PRIVATE PANELS, MSGS, SKELS, TABLES AND PROFILE FILES */ /* SHOULD BE PLACED AHEAD OF THE PDF AND ISPF SUPPLIED FILES. */ /* FILEMODE MAY NEED TO BE CHANGED DEPENDING ON HOW DISK WAS */ /* ACCESSED. */ /**********************************************************************/ 'FILEDEF ISPPROF CLEAR' 'FILEDEF ISPPROF DISK ISPPROF MACLIB A (PERM LRECL 80 RECFM F' 'FILEDEF ISPPLIB CLEAR' 'FILEDEF ISPPLIB DISK ISRPLIB MACLIB' nmd '(PERM CONCAT' 'FILEDEF ISPPLIB DISK ISPPLIB MACLIB' nmd '(PERM CONCAT' 'FILEDEF ISPMLIB CLEAR' 'FILEDEF ISPMLIB DISK ISRMLIB MACLIB' nmd '(PERM CONCAT' 'FILEDEF ISPMLIB DISK ISPMLIB MACLIB' nmd '(PERM CONCAT' 'FILEDEF ISPTABL CLEAR' 'FILEDEF ISPTABL DISK TABLES MACLIB A (PERM' 'FILEDEF ISPTLIB CLEAR' 'FILEDEF ISPTLIB DISK TABLES MACLIB A (PERM CONCAT' 'FILEDEF ISPTLIB DISK ISRTLIB MACLIB' nmd '(PERM CONCAT' 'FILEDEF ISPTLIB DISK ISPTLIB MACLIB' nmd '(PERM CONCAT' 'FILEDEF ISPSLIB CLEAR' 'FILEDEF ISPSLIB DISK ISRSLIB MACLIB' nmd '(PERM CONCAT' 'ISPDCS ISPV2R2 ISPVM PANEL(ISR@PRIM) NEWAPPL(ISR) PDFDCSS(ISRV2R2) DMMODE('nmd' 'DROP' nmd Call Mexit Helptext: say 'This is the ISPF (System Productivity Facility) command EXEC used ' say 'to run the program development facility. Before invoking this ' say 'EXEC you must issue FILEDEFS for any additional panel, message, ' say 'tables and/or skeleton libraries from which you plan to operate, ' say 'as well as for the file to be used for ISPFPFF. THE ISPDCS ' say 'command has an optional keyword parameter (keyward is "PDFDCSS") ' say 'which specifies the PDF DCSS name (If omitted then the default PDF' say 'DCSS name of "ISRDCSS" is used). ' say ' ' Mexit: Exit ======================================================================= That, I think, was the last piece. With the ISPVM virtual machine logged on and running, the ISPF EXEC got you into ISPF. Things from there on looked just like ISPF under MVS (yucko!!). See ?? ---------------------- ISPF/PDF PRIMARY OPTION PANEL ------------------------ OPTION ===> USERID - JASPER 0 ISPF PARMS - Specify terminal and user parameters TIME - 12:51 1 BROWSE - Display source data or output listings TERMINAL - 3278 2 EDIT - Create or change source data PF KEYS - 12 3 UTILITIES - Perform utility functions 4 FOREGROUND - Invoke language processors in foreground 5 BATCH - Submit to batch for language processing 6 COMMAND - Enter CMS command or EXEC 7 DIALOG TEST - Perform dialog testing 8 LM UTILITIES- Perform library management utility functions C CHANGES - Display summary of changes for this release T TUTORIAL - Display information about ISPF/PDF X EXIT - Terminate using console, log, and list defaults Enter END command to terminate ISPF. ======================================================================= ======================================================================= === === === Notes from when I installed ISPF again in March, 1987. === === === ======================================================================= ======================================================================= This time, ISPF did not install so easily. Again, I answered "both" to the question whether I wanted the MACLIBs, the CMS files, or both loaded. I still don't know the correct answer to that question. I answered "both" to be safe. The ISP shared segment went in ok, but the ISR shared segment did not. I kept getting CMS ABENDs because the CMS high, nucleus free storage chain pointers were being destroyed. After much work, I determined the CMS loader (DMSLDR) was overwriting that chain. Why? Because the ISRV2R2 shared segment was being loaded at E10000-EC0000 (defined in SNTVM1) and CMS had already "extended" its free storage chain down there. What was happening, was that I was trying to run the ISRSAVE EXEC, the EXEC that loads the ISPF code starting at E10000 (the EXEC does a Diag 64 to determine the starting and ending address of the shared segment), from my userid. After accessing my a-disk, my d-disk, the systems disk, as well as the ISPVM 192 disk, and after NUCXLOADing HSE and FULIST (a result of doing the RR ISPVM 192), I had used up so much CMS high, nucleus free storage that CMS had already extended down below the EC0000 line. CMS, when it runs out of free storage, extends down a page and inserts that newly allocated page onto the free storage chain. I wrote a quick and dirty EXEC (DDD EXEC on ISPVM's 191 disk) ------------------------------------------------------------------------ /* */ msg_prefix = 'The high CMS nucleus free storage chain is' element_address = c2x(storage(1620,4)) Do until element_address = '00000000' next = x2d(element_address) element_length = c2x(storage(d2x(next+4),4)) Say msg_prefix element_address'.'Strip(element_length,'L',0) msg_prefix = Copies(' ',42) element_address = c2x(storage(d2x(next),4)) End exit ------------------------------------------------------------------------ to show me that free storage chain. You can also run the ADTS EXEC to see where minidisk's FSTs are loaded, and NUCXMAP to see what's NUCXLOADed. That should give you an idea what storage is being used for. The solution to this (my bypass really - the correct solution would probably be to move the ISRV2R2 shared segment someplace else, but that would require another CP GEN) was to either release all my extra disks (i.e. the R- and D-disks), NUCXDROP HSE and FULIST, and then rerun the ISRSAVE EXEC. This seemed to work ok. An alternative solution was to logon to ISPVM itself, DEFINE 16 Meg of storage, and run the ISRSAVE EXEC from there. This also works, since ISPVM does not have my a-disk, my d-disk, nor links to the system disk, not as much free storage is used up. Once the shared segments are saved and ISPVM logged on and running, ISPF works ok. I did modify the ISRSAVE EXEC to check for this error before it started loading all the TEXT decks it loads. The following code was inserted in that EXEC ------------------------------------------------------------------------ /* Check for failure should not enough free storage is available. */ element_address = c2x(storage(1620,4)) Do until element_address = '00000000' next = x2d(element_address) element_length = c2x(storage(d2x(next+4),4)) If x2d(element_address) <= x2d(PDF_END) Then Do Say 'This EXEC will fail because you haven''t enough virtual storage avail Say 'Loading ISPF will overlay an element on the high CMS nucleus free sto Say 'The' sysname 'shared segment occupies' PDF_START 'to' PDF_END 'and th msg_prefix = 'free storage chain, anchored at 1620, is:' element_address = c2x(storage(1620,4)) Do until element_address = '00000000' next = x2d(element_address) element_length = c2x(storage(d2x(next+4),4)) Say msg_prefix element_address'.'Strip(element_length,'L',0) msg_prefix = Copies(' ',41) element_address = c2x(storage(d2x(next),4)) End Say 'Try releasing some disks or something.' Exit 1234 End element_address = c2x(storage(d2x(next),4)) End ------------------------------------------------------------------------ That should prevent anybody else from experiencing the same failure I did, or if they do, then they will know quicker what is wrong.