Keyboard Shortcuts
Likes
- H390-Vm
- Messages
Search
Re: How Big/Long is a CMS Module
Corrections to my earlier post:
The ability to execute load modules from an OS resident LOADLIB is only available in VM/SP and above. At the VM/370 level, e.g. VM/CE, you can still define an OS resident PDS that contains object decks, and use that from VM/CMS. Sorry for any confusion caused. Mark |
Re: How Big/Long is a CMS Module
On Tue, Feb 6, 2024 at 02:10 AM, Dave Wade wrote:
I still wonder what Mark hopes to achieve as my experiences with the G assembler were not good.Dave, I'm a masochist? ;-) I am certainly an optimist. In looking at the XF code, I saw there were overlays, but didn't understand how you would figure out how to make/apply them. Behind the self flagellation, is the thought of adding XA/ESA/z support, and seeing if any of the SLAC mods for ASMH could be added. In one of the sets of tapes/files/XMIT/DASD, I ran into an EXEC which looked similar to my efforts to create load modules with LKED (Yeah, I know it's for NCP, but long ago, I successfully used it to create a module, but the details are lost in the mists of time. Thanks for the tape/file. I'll go through it, as I can manage. ?... Mark S. |
Re: How Big/Long is a CMS Module
On Mon, Feb 5, 2024 at 09:54 PM, Mark Waterbury wrote:
Then, when done, you can just remove the FILEDEF, release the "O" minidisk, and CP DETACH the OS volume when no longer in use.Mark W., I think I understood all that! :-D I have copied Jay MOseley's SYSCPK to my VM/370, and have accessed it as? 'O' but I wasn't sure where to go from there. You've given me some ideas. ?... Mark S. |
Re: How Big/Long is a CMS Module
On Mon, Feb 5, 2024 at 08:37 PM, David Durand wrote:
Mark S., some thoughts in case they are helpful.David, Always appreciated. I've been able to take the TEXT decks and create MODULEs which load at specified addresses. I am just not sure if the addresses I have been using are correct. ?... Mark S. |
Re: How Big/Long is a CMS Module
¿ªÔÆÌåÓýFolks, The ASSEMBLER XF uses auxiliary directories to overlay the assembler. I do have an ASSEMBLER G tape for VM and I have had it running but I forget how. ? ? There are multiple VMFPLC2 (or perhaps TAPE) dumps on it but I forget what you need to do to create the auxiliary directories. I am busy today demonstrating the Baby Replica Computer (let me know if you come to Manchester) but I will try and have a look tonight. (I am on GMT at present). ? I still wonder what Mark hopes to achieve as my experiences with the G assembler were not good. ? Dave ? From: [email protected] <[email protected]> On Behalf Of Dave Wade via groups.io
Sent: Tuesday, February 6, 2024 7:50 AM To: [email protected] Subject: Re: [h390-vm] How Big/Long is a CMS Module ? Mark, Looking at the code on the tape I have, (I sent you a link) it uses auxiliary directories. I¡¯ll try and have a look tonight to see if these can be added to CMS but I am curious to know what problem you think this is going to solve? Dave ? From: [email protected] <[email protected]> On Behalf Of Mark A. Stevens via groups.io ? On Mon, Feb 5, 2024 at 02:50 AM, Dave Wade wrote:
Still struggling with U of Waterloo Assembler G. I need the OS to VM conversion program, RUNPARM/XRUNPARM/WMSASM/... but am struggling with figuring out how/where to load that module, and the ASMG* MODULES, that is, their load/entry address. I also don't get to spend a lot of time thinking about it, as I have a grandson (2 1/2 years old) running around the house 4 days per week. My wife has Parkinson's Disease, so I am picking up more of her duties as time goes along. No tears. It's life. |
Re: How Big/Long is a CMS Module
¿ªÔÆÌåÓýMark, Looking at the code on the tape I have, (I sent you a link) it uses auxiliary directories. I¡¯ll try and have a look tonight to see if these can be added to CMS but I am curious to know what problem you think this is going to solve? Dave ? From: [email protected] <[email protected]> On Behalf Of Mark A. Stevens via groups.io
Sent: Tuesday, February 6, 2024 1:30 AM To: [email protected] Subject: Re: [h390-vm] How Big/Long is a CMS Module ? On Mon, Feb 5, 2024 at 02:50 AM, Dave Wade wrote:
Still struggling with U of Waterloo Assembler G. I need the OS to VM conversion program, RUNPARM/XRUNPARM/WMSASM/... but am struggling with figuring out how/where to load that module, and the ASMG* MODULES, that is, their load/entry address. I also don't get to spend a lot of time thinking about it, as I have a grandson (2 1/2 years old) running around the house 4 days per week. My wife has Parkinson's Disease, so I am picking up more of her duties as time goes along. No tears. It's life. |
Re: How Big/Long is a CMS Module
Hi, Mark,
Here is another idea that may help to make your job easier in trying to get ASMG running under VM/CE CMS. You can create a small OS mini-disk DASD volume, just big enough to have a minimal VTOC and one PDS library.? Size the minidisk just a few cylinders, just large enough to hold everything needed, with a little extra for "maintenance" activities, such as re-linking certain modules to incorporate fixes, etc. Then, you run the link-edits under the real OS/360, or OS/VS1 or MVS (could even be MVS TK3, TK4- or TK5), to create your load modules from the object decks. Then, to use it from VM/CE CMS, you issue CP LINK to that minidisk, then ACCESS it as a "mode" letter, (I like "O" for this, since it is an "OS disk"), and then issue a FILEDEF to define it to CMS, and then your main front-end program, equivalent of XRUNPARM or WMSASM, etc. can just issue a LOAD EP=name and then you load the address into R15 and issue a BALR R14,R15 to call the desired module, or even issue LINK EP= to let OS Simulation handle loading and unloading each "phase" in turn. Then, when done, you can just remove the FILEDEF, release the "O" minidisk, and CP DETACH the OS volume when no longer in use. Hope this helps, Mark S. Waterbury |
Re: How Big/Long is a CMS Module
Hi, David, |
Re: How Big/Long is a CMS Module
Mark W.,
You are correct to point out the Transient Area as critical to understanding this issue. Mark S., some thoughts in case they are helpful. It's important to remember that?modules are imager of memory after the link loader has been run. This means that all address constants (external or internal, ACONS and VCONS, as we used to call them) have been resolved into absolute addresses, preventing relocation of the code. It's possible to have fully relocatable 370 code, but it is more than a bit painful, and?I'd be surprised if the whole assembler is relocatable. The lack of relocation is why the transient area is handy. The different load areas means that even without relocation, transient modules can call non-transient modules, and nontransient modules can call transient modules. XEDIT and REXX used various forms of voodoo to load essentially all their code except for an initial boot module into high memory (or they lived on a DCSS at an address above the usual user area).?They could run arbitrary modules (as long as there was enough main memory in play). We do have the CMS dynamic loader, but it did not exist at the time that asmg was ported. I believe it's also possible to have a small transient module that can serve as an overlay manager, capable of loading and calling multiple heavyweight non-transient modules that do most of the work. The alternative is to rely on SVC 202, and ensure that the entry point of any module you via SVC will be at the same address as the return address from SVC. While that is theoretically possible, I don't think it's really maintainabl, especially since you have two different memory areas into which you can load modules without conflict. I have not ported stuff from MVS, and indeed I know relatively little about OS variants, but especially the compilers tended to have complicated overlay structures. These were replicated when proting to CMS by using multiple Modules (one for each overlay), and loading and branching to them directly. That's why PLI on CMS consists of so many different modules. Building this up from scratch could be pretty painful at this remove. If you are trying to get ASMG running (even if you only have the MVS version, as it seems), and given that ASMG started as a patched version of Assembler F, I'd start first by looking at the source and build structure for? Assembler F in CMS, as you might be able to use that build structure (and it's execs) as a starting point for the task. With luck you might even be able to replace the existing F Modules with thjeir equivalent G modules. At Brown where I was an undergrad, and where I did most of my hacking on VM, they did have ASMG running in VM, but I'm afraid that I never looked at the implementation. |
Re: How Big/Long is a CMS Module
On Mon, Feb 5, 2024 at 02:50 AM, Dave Wade wrote:
Are you building a compiler for VM?Still struggling with U of Waterloo Assembler G. I need the OS to VM conversion program, RUNPARM/XRUNPARM/WMSASM/... but am struggling with figuring out how/where to load that module, and the ASMG* MODULES, that is, their load/entry address. I also don't get to spend a lot of time thinking about it, as I have a grandson (2 1/2 years old) running around the house 4 days per week. My wife has Parkinson's Disease, so I am picking up more of her duties as time goes along. No tears. It's life. I am learning a H*** of a lot along the way. ?... Mark S. |
Re: How Big/Long is a CMS Module
¿ªÔÆÌåÓýMark, Are you building a compiler for VM? If so you might want to look at the two assembler routines on the Fortran 191 disk which provide the interface between CMS and the OS Fortran compiler. Dave ? From: [email protected] <[email protected]> On Behalf Of Mark Waterbury
Sent: Monday, February 5, 2024 12:35 AM To: [email protected] Subject: Re: [h390-vm] How Big/Long is a CMS Module ? Hi, Bernd, |
Re: How Big/Long is a CMS Module
For future reference.
From GC20-1809-7_VM370_OLTSEP_and_Error_Reporting_Guide_Rel_6_PLC_1_Mar79.pdf Transient Program Area (X'0E000' to X'10000') Since it is not essential to keep all nucleus functions resident in storage all the time, some of them are made "transient." This means that when they are needed, they are loaded from the disk into the transient program area.? Such programs may not be longer than two pages, because that is the size of the transient area.? (A page is 4096 bytes of virtual storage.) All transient routines must be serially reusable since they are not read in each time they are needed. User Program Area (X'20000' to Loader Tables) User programs are loaded into this area? by the LOAD command.? Storage allocated by means of the GETMAIN macro instruction is taken from this area, starting from the high address of the user program.? In addition, this storage area can be allocated from the top down by DMSFREE, if there is not enough storage available in the low DMSFREE storage area. Thus, the usable size of the user program area is reduced by the amount of free storage that has been allocated from it by DMSFREE. Free Storage Management Free storage can be allocated by issuing the GETMAIN or DMSFREE macros. Storage allocated by the GETMAIN macro is taken from the user program area, beginning after the high address of the user program. ... Mark S. |
Re: How Big/Long is a CMS Module
On Sun, Feb 4, 2024 at 06:32 PM, Mark Waterbury wrote:
RUNPARMS and XRUNPARM are very small, so no reason they could not be compiled and loaded with "(ORIGIN TRANS" to run in the CMS transient area (only 8K), then that way they can load and run any normal VM/CMS module that has the default origin address of x'20000' ... :-)Had not considered that, since I don't know off hand how big the transient area is. I'm sure it's in a manual someplace :-D So, I'll add that to my list.? Thanks! However, since RUNPARM issues a GETMAIN, I need to learn what it does when running from the transient area, as compared to the user area. More to learn. ?... Mark S. |
Re: How Big/Long is a CMS Module
On Sun, Feb 4, 2024 at 05:57 PM, Bernd Oppolzer wrote:
I have written XRUNPARM some years ago (2016), based on a routine called RUNPARM,I wondered where XRUNPARM came from, and now I know! Thank you!! I do know where the source is, and have assembled it. The TEXT and LISTING files are somewhere around here. I had been looking at LOAD MAPs for both XRUNPARM and RUNPARM, and could not determine where the end/length of/size of the MODULEs were. Something I read steered me to look at DMSMOD, where I found the information cited above. I *think* I'm using it correctly. ?... Mark S. |
Re: How Big/Long is a CMS Module
Hi, Bernd,
See my reply to Mark Stevens regarding RUNPARMS and XRUNPARM... :-) Also, for VM/SP and above, you should be able to use the OSRUN command that is built-in to VM/SP and above to invoke your compiler with an OS style parameter list. All the best, Mark S. Waterbury |
Re: How Big/Long is a CMS Module
Hi, Mark,
RUNPARMS and XRUNPARM are very small, so no reason they could not be compiled and loaded with "(ORIGIN TRANS" to run in the CMS transient area (only 8K), then that way they can load and run any normal VM/CMS module that has the default origin address of x'20000' ... :-) All the best, Mark S. Waterbury |
Re: How Big/Long is a CMS Module
On Sun, Feb 4, 2024 at 05:54 PM, Ren¨¦ Ferland wrote:
Have you check the assembler code of RUNPARM? I can't say for sure but, looking at it, I feel RUNPARM does make a call to GETMAIN to obtain storage for the module beyond the end of itself.Rene, Yes, I have, and it has a call to GETMAIN and FREEMAIN. ?... Mark S. |
Re: How Big/Long is a CMS Module
¿ªÔÆÌåÓýOne more remark, BTW: when I tested my Pascal compiler - including XRUNPARM - on modern
z/VM, So XRUNPARM on modern VM constantly failed with this error
message: BADSIZE? DS??? 0H which gives (for example): MODULE XXXXXXXX REQUIRES 192K MORE STORAGE no matter how many storage you allocated to your VM/CMS session.
I found a way to overcome this error message, but don't recall
what it was; I'm sorry to say that MVS 3.8 and current z/OS are no problem in
this respect, Sorry, kind regards Bernd
Am 05.02.2024 um 00:57 schrieb Bernd
Oppolzer via groups.io:
|