CMSGAM stuff is on PRODUCT's 411 disk. There's a README FIRST file out there with good stuff in it. To test CMSGAM: - Attach a 5080 to yourself. On ALMVMA, ATT CD0 * 120. - PRODUCT IAX - IAXARC GRAP NOGDDM - Once inside IAX, disp testdata - end iax to get out. The following are extracts from the README FIRST file. --------------------------------------------------------------------- To satisfy the GDDM users, we packed the CMSGAM shared segment in with GDDM. GDDM can reside above the 16 meg line for XA users, but for 370 users, it has to be down below 16 meg. We defined the GDDM370 segment thusly, DEFSEG ADMPG000 CA0-DDF SR SPACE GDDM370 DEFSEG ADMXSS00 DE0-DDF SR SPACE GDDM370 DEFSEG CMSGAM DE0-DFF SR SPACE GDDM370 To satisfy Chuck Cox, who needed CMSGAM, but also needed as much storage as he can get, so he didn't want to SEGMENT RESERVE the whole D segment, we created his own space. In Chuck's CBDS4 EXEC, the one he uses to start the Circuit Board Design System, he has a SEGMENT LOAD CHUCK, which gets him the CHUCKCOX space, not the GDDM370 space, so when CMS does the SEGMENT LOAD CMSGAM, he still has D00000-DDEFFF free. The CHUCKCOX space is defined like so, DEFSEG CMSGAM SAME SPACE CHUCKCOX DEFSEG CHUCK DDF-DDF SR SPACE CHUCKCOX --------------------------------------------------------------------- There's two tricks in saving CMSGAM. The first is to have all the skeleton NSS's defined before you save any of them. Since CMSGAM is shared between the CHUCKCOX and GDDM370 spaces, you have to re-DEFSEG all the member NSS's like so, DEFSEG CMSGAM DE0-DFF SR SPACE GDDM370 DEFSEG ADMPG000 SAME SPACE GDDM370 DEFSEG ADMXSS00 SAME SPACE GDDM370 DEFSEG CMSGAM SAME SPACE CHUCKCOX DEFSEG CHUCK SAME SPACE CHUCKCOX There second trick is to IPL the small CMS residing on CMSSP55's 090 disk. When you have 14 or more meg of virtual storage, CMS uses the storage just below E00000 for its Page Allocation Tables (PAT). When when you try to load the CMSGAM code to save it, CMS complains that that storage is in use. So I defined a CMS that's loaded at 6-8 meg. There's no IPL'er for it, so you have to DEFINE STORAGE 16M LINK CMSSP55 090 099 RR IPL 090 Then you can GIME PRODUCT 411 GAMXGEN --------------------------------------------------------------------- If you screw up the GDDM segments, to resave them, make sure all the NSS's are class S (skeleton), DEFSEG ADMPG000 CA0-DDF SR SPACE GDDM370 DEFSEG ADMXSS00 A00-C9F SR SPACE GDDM370 DEFSEG CMSGAM DE0-DFF SR SPACE GDDM370 have small CMS IPL'd, DEFINE STORAGE 16M LINK CMSSP56 090 099 RR IPL 090 Then PRODUCT GDDM ADMBLSEG You want to save the GDDM and PGF segments. ADMXSS00 is for GDDM and ADMPG000 is for PGF. ==================================================================== I asked Henk Jobsen (NL44609 at EAMSVM2) about putting CMSGAM in the nucleus (he had mentioned doing it in the VMXASP2 FORUM), and he sent me the following reply. I didn't bother implementing it, but for future reference .... From: Henk Jobsen SE Public Sector This describes the mod to DMSGAM, all GAM TEXT decks should be included in the nucleus. Henk Jobsen, VM Specialist Public Sector, Zoetermeer, tel. 079 - 253380 PRINT SELECTION FOR APAR - HB17522 90/07/10 APAR= HB17522 SER= IN INCORROUT MSDMSGAM955E STAT= CLOSED PER FESN0560114- CTID= LA0902 ISEV= 2 SB90/01/18 RC90/01/22 CL90/04/20 PD SEV= 2 PE= TYPE= F RCOMP= 570901901 CAEDS BASE RREL= R311 FCOMP= 570901901 CAEDS BASE PFREL= F999 TREL= T ERROR DESCRIPTION: PROBLEM WITH DMSGAM PATCH DESCRIBED IN SH50-0128-01 PAGE 35 WHEN RUNNING VM/XA R2 SUP8904 LEVEL. CIRCUMVENTION: REMOVE VM37200 (AND VM38113) SCENARIO: FIRST TIME IN DMSGAM NO PROBLEM. POINTER AGAMSEG IS FILLED. SECOND TIME AGAMSEG NOT ZERO SO BRANCH TO LABEL ANCFOUND. CODE FOR VM37200 HAS BEEN ADDED HERE, RESULTING IN MSDMSGAM955E. CONCLUSION: PATCH NEEDS TO BE REWORKED FOR VM37200 ... LOCAL FIX: FOLLOWING IS THE REWORKED PATCH FOR VM37200: ./ * ********************************************************* ./ * VM/XA SP 2.1 8905 ./ * ./ * THIS MOD WILL CHECK IF MACHINE IS RUNNING IN XA MODE. IF ./ * SO IT WILL TRY TO LOAD THE GAM SHARED SEGMENT. IF NOT XA ./ * MODE, IT WILL CHECK TO SEE IF GAM WAS BUILT INTO THE ./ * NUCLEUS. IF IT WAS BUILT INTO THE NUCLEUS IT USES IT, IF ./ * NOT IT CONTINUES WITH NORMAL PROCESSING OF LOADING THE ./ * SHARED SEGMENT. ./ * ********************************************************* ./ * ./ * INSERT THE FOLLOWING AFTER: ./ * LA R3,GAMNAME POINT TO SHARED SEGMENT NAME ./ I 02850000 $ 02850010 10 03/22/90 18:00:00 ****** START MOD TO CHECK FOR GAM LOADED INTO NUCLEUS TM NUCMFLAG,X'80' ARE WE IN XA MODE ??? BO TRYSHRSG YES, TRY TO LOAD THE SHARED L R1,VGABSEG IS GAM LTR R1,R1 NUCLEUS RESIDENT ??? BZ TRYSHRSG NO, BRANCH TO LOAD SEGMENT B LOADED GAM LOADED IN NUCLEUS VGABSEG DC V(GABSEG) ADDRESS OF START OF GAM TRYSHRSG DS 0H ****** END MOD TO CHECK FOR GAM LOADED INTO NUCLEUS ./ * ./ * INSERT THE FOLLOWING AFTER: ./ * LA R3,GAMNAME POINT TO SHARED SEGMENT NAME@VA37200 ./ I 03101000 $ 03101010 10 03/22/90 18:00:00 ****** START MOD TO CHECK FOR GAM LOADED INTO NUCLEUS TM NUCMFLAG,X'80' ARE WE IN XA MODE ??? BO TRYCHECK YES, DO NORMAL CHECKING L R1,VGABSEG IS GAM LTR R1,R1 NUCLEUS RESIDENT ??? BNZ SKPCHECK YES, SKIP NORMAL CHECKING TRYCHECK DS 0H ****** END MOD TO CHECK FOR GAM LOADED INTO NUCLEUS ./ * ./ * INSERT THE FOLLOWING AFTER: ./ * BNE SEGPURGD NO SEGMENT WAS PURGED @VA37200 ./ I 03105000 $ 03105010 10 03/22/90 18:00:00 ****** START MOD TO CHECK FOR GAM LOADED INTO NUCLEUS SKPCHECK DS 0H ****** END MOD TO CHECK FOR GAM LOADED INTO NUCLEUS