The History of this program: ---------------------------- This program was written when I was working for Cincom support and a customer rang up and asked: "I need to create a 1000 page section [for a database]. When I try to do this, the program falls over with insufficient global pages. Yet when I do a INSTALL LIST/GLOBAL/SUMMARY, VMS tells me that I have 1400 pages available. Why does it fall over?" The obvious answer is that the global page table is fragmented. The page table is a fixed length structure controlled by SYSGEN parameter GBLPAGES. If you (say) install 50 images at boot time and it takes up 15000 pages of global page table, and then deinstall one of those images (e.g., the first one installed,) you are going to have a block of <15000 pages in the middle of global page space, thus fragmenting it. Unfortunately, INSTALL is very misleading and does not report this, and the customer was not inclined to take my word for it, so I wrote the program. Another funny story: Before I wrote this program, I rang a contact at DEC regional support to ask if this feature was planned for a future release of VMS. He said (emphatically) no. 6 months later, a new version of VMS (5.1?) had exactly this functionality added to it! Did I directly contribute to VMS functionality? :-) This makes this program redundant except as a demo on internals programming, fast sorting methods, and the best way on the VAX to implement the linear congruent method of random number generation. Have fun! Don't crash your (development) machine to often, and I hope this code sparks the interest of a few young sysprogs in internals! Regards, Jim. P.S. Looking at this program, has my coding style changed in 4 years or what?!