Keyboard Shortcuts
Likes
- H390-Vm
- Messages
Search
Re: How Big/Long is a CMS Module
Hello, When I was in college (Ohio University), I developed a technique to run multiple commands from one program. Basically, I created a dynamic loader to load the control program.? Once the control program work? was complete, it would call the dynamic loader in unload mode. The dynamic loader would obtain free storage at the highest available area (enough to run the control program). It would load the control program in this area and the transfer control to it.? ?This is the gist of it.? This method allows for a multi-tasking CMS using interrupts. While at Cray Research, I used it to allow customers to run the various Cray CMS commands while also running one normal command (e.g. editor, compiler, etc.) The thing is, customers came back wanting me to allow them to use multiple CMS commands at the?same time. This was beyond the scope of the Cray VM Station.? ?Running our commands at the same time and one normal CMS command was the directive. Could one create an OS that looks like CMS and allows you to run both foreground and multiple backgrounds tasks.? Yeah!? Figured most of it out years ago, but who would fund it?? I can't.? IBM?? Maybe, if they even thought of it. I talked to an IBMer about it while working for Cray.? He was speechless. I told him I developed the idea in college. He could use it, as the idea and technique were from my college days.? Obviously, the IBM VM team never pursued multitasking CMS. Note:? It isn't meant to have a massive overhead for CP. It is meant to give users the ability to do things in parallel, not one command at a time. The key would be in setting the requirements.? Thanks. On Sun, Feb 4, 2024, 16:42 Dave Wade <dave.g4ugm@...> wrote:
|
Re: How Big/Long is a CMS Module
On Sun, Feb 4, 2024 at 04:42 PM, Dave Wade wrote:
Not sure what you are planning, but if your program has issued any storage requests, the space at the end of the program will have been used to satisfy those requests so not available to load a second program.There is a modules called RUNPARM and XRUNPARM, which is on the Y-Disk. There is also WMSASM from the CBT. All three are supposed to be a 'front end' for programs that are by nature MVS code. They take command line parameters and fix up the PLIST to be something the MVS program will be able to understand. My few examples show something like: RUNPARM MYPROG ... Where MYPROG is a MODULE. So I am attempting to set the load address for MYPROG to be beyond the end of RUNPARM. Do I really know what I am doing. Nope. Just trying to figure it all out. ?... Mark S. |
Re: How Big/Long is a CMS Module
On Sun, Feb 4, 2024 at 03:20 PM, Mark A. Stevens wrote:
The following is wrong. If I could only count. HEX??? RECORD: 000001? RECORDLENGTH: 000080???????????????????????????????????????????????????? ?I think this should be: ... HEX??? RECORD: 000001? RECORDLENGTH: 000080???????????????????????????????????????????????????? ? ?????? ---- +--- -|-- --+- ---| ---- +--- -|-- --+- ---| ---- +--- -|-- --+- ---| ---- +--- -|-- --+- ---|----+----| 000000 .... .... .... .... ...O .... .... .... .... .... .... .... .... .... .... Z... .... .... .... ....???????? ? ZONE?? 0000 0000 0000 0000 002D 0000 0000 0001 4800 0000 0000 0000 0000 0000 0000 E000 0000 0000 0000 0006???????? ? NUMBR? 0200 0200 0258 0258 0156 0000 0000 001F 4003 0000 0300 0000 0000 0000 0000 9000 0000 0000 0000 00E9???????? ? ?????? |STRT|FRST|LAST|LOCC|LDRA|LDRR|PSW????? |LDRF|PRHO| ??????? ADDR LOC? LOC? NT?? DDR? TCD??????????? LAGS LD ?????? STRTADDR? FRSTLOC?? LASTLOC?? LOCCNT??? LDRADDR?? LDRRTCD?? PSW??????????????? LDRFLAGS? PRHOLD ?????? 00020000? 00020000? 00020508? 00020508? 000145D6? 00000000? 00000000 0000011F? 44800300? 00000000 ? ... If I map NUCON variables to those fields, then I end up with LOCCNT having a value of 0000000000020508. Therefor the length of the module is X'0508' or 1288? decimal bytes. Am I close, or just totally lost in the woods? |
Re: How Big/Long is a CMS Module
¿ªÔÆÌåÓýMark, Not sure what you are planning, but if your program has issued any storage requests, the space at the end of the program will have been used to satisfy those requests so not available to load a second program. ? From what I remember there are two ways to load another program and not have it overlay your program. ? One is to use the transient program area. The other is to use an auxiliary directory as used by the assembler. ? In VM/CE we added the RESLIB & NUCXTXT commands which allow TEXT files to be loaded in high memory and called as commands. REXX is installed in this manner. ? Dave ? ? ? From: [email protected] <[email protected]> On Behalf Of Mark A. Stevens via groups.io
Sent: Sunday, February 4, 2024 9:20 PM To: [email protected] Subject: [h390-vm] How Big/Long is a CMS Module ? I've been trying find/figure this out. A CMS module is of a certain length/size. How do I find out what that size is? Why? because I want to call another module, and have it load above the first one, rather than on top of the first. |
How Big/Long is a CMS Module
I've been trying find/figure this out. A CMS module is of a certain length/size. How do I find out what that size is? Why? because I want to call another module, and have it load above the first one, rather than on top of the first.
A related question is: Do I need to specify a full word, or double word, or 4K page boundary as the starting address for the second module? I understand the first one loads at X'020000'. What I have found so far is DMSMOD which GENMOD and LOADMOD come from. It seems there is an 80 byte record at the beginning of the MODULE which contains a number of values, which are stored in NUCON areas, and then written out to the disk file being created. FSVIEW: DMSMOD ASSEMBLE H1?????????? Lines 112-150/725 F80[1-79]? FSVIEW V1.2.5 *? OPERATION??????????????????????????????????????????????????????????? 00112000 *?????????????????????????????????????????????????????????????????????? 00113000 *???????? GENMOD-?????????????????????????????????????????????????????? 00114000 *?????????????????????????????????????????????????????????????????????? 00115000 *???????? GENMOD ISSUES THE START (NO) COMMAND TO FINISH LOADING OF???? 00116000 *???????? OBJECT PROGRAMS. NEXT ERASE THE OLD MODULE IF IT EXISTS.????? 00117000 *???????? THE START AND ENDING LOCATIONS ARE DETERMINED FROM THE??????? 00118000 *???????? USER OPTIONS 'TO' AND 'FROM' OR BY DEFAULT. THE DEFAULT?????? 00119000 *???????? START IS THE ADDRESS OF THE FIRST LOADER TABLE NAME, THE????? 00120000 *???????? DEFAULT END IS THE CURRENT SETTING OF LOCCNT IN NUCON.??????? 00121000 *???????? AN EIGHTY BYTE RECORD IS WRITTEN AS THE FIRST RECORD OF THE?? 00122000 *???????? THE MODULE. THIS RECORD CONSISTS OF THE NUCON LOADER INFORMA- 00123000 *???????? TION. NEXT THE TEXT INFORMATION IS WRITTEN TO THE MODULE????? 00124000 *???????? FILE IN VARIABLE SIZE RECORDS UP TO 65535 BYTES. IF THE?????? 00125000 *???????? MODULE IS NOT FOR A TRANSIENT ROUTINE AND NOMAP WAS NOT?????? 00126000 *???????? SPECIFIED THE LOADER TABLE IS WRITTEN AS THE LAST MODULE????? 00127000 *???????? FILE RECORD. CLOSE THE NEW MODULE FILE AND RETURN TO THE????? 00128000 *???????? CALLER.?????????????????????????????????????????????????????? 00129000 *?????????????????????????????????????????????????????????????????????? 00130000 *???????? LOADMOD-????????????????????????????????????????????????????? 00131000 *?????????????????????????????????????????????????????????????????????? 00132000 *???????? LOADMOD CHECKS FOR THE EXISTENCE OF THE REQUESTED MODULE????? 00133000 *???????? THEN READS THE TEXT INFORMATION INTO THE LOCATIONS SET??????? 00134000 *???????? UP WHEN THE MODULE WAS CREATED. THE MODULE NAME IS??????????? 00135000 *???????? STORED IN THE APPROPRIATE NUCON LOCATION. IF THERE IS???????? 00136000 *???????? A LOADER TABLE RECORD IN THE MODULE IT IS READ INTO?????????? 00137000 *???????? THE LOADER TABLE LOCATION IN STORAGE. SELECTED LOADER???????? 00138000 *???????? INFORMATION IS STORED IN NUCON. RETURN TO CALLER????????????? 00139000 *.????????????????????????????????????????????????????????????????????? 00140000 ... FSVIEW: DMSMOD ASSEMBLE H1?????????? Lines 289-327/725 F80[1-79]? FSVIEW V1.2.5 STBUFF?? LA??? R0,10????????? GET BUFFER FOR FIRST RECORD?????????????? 00289000 ???????? DMSFREE DWORDS=(0),TYPCALL=BALR??????????????????????????????? 00290000 ???????? LR??? R9,R1????????? R9 IS BUFFER ADDRESS????????????????????? 00291000 ???????? ST??? R9,DSKLIN+28?? PUT IN PLIST????????????????????????????? 00292000 ???????? MVC?? 0(80,R9),STRTADDR?? MOVE LOADER INFORMATION TO BUFFER??? 00293000 ???????? STH?? R8,TBENT-STRTADDR(R9)??? SAVE LDR TABLE COUNT??????????? 00294000 ???????? MVC?? DSKLIN+32(4),=XL4'50' SET TO WRITE 80 BYTES????????????? 00295000 ???????? LA??? R1,DSKLIN????? ADDR. OF WRITE PLIST????????????????????? 00296000 ???????? L???? R15,AWRBUF???? ADDR. OF WRBUF??????????????????????????? 00297000 ???????? BALR? R14,R15??????? WRITE FIRST RECORD OF MODULE????????????? 00298000 ... NUCON ... FSVIEW: CMSHRC MACLIB F1????????? Lines 1285-1323/3391 F80[1-79]? FSVIEW V1.2.5 STRTADDR DC??? 1F'0'????????? MODULE STARTING ADDRESS?????????????????? 00252100 FRSTLOC? DC??? 1F'0'????????? MODULE BEGINNING ADDRESS????????????????? 00252200 LASTLOC? DC??? 1F'0'????????? MODULE ENDING ADDRESS???????????????????? 00252300 LOCCNT?? DC??? 1F'0'????????? LOADER LOCATION COUNTER?????????????????? 00252400 LDRADDR? DC??? 1F'0'????????? LOADER RETURN ADDRESS???????????????????? 00252500 LDRRTCD? DC??? 1F'0'????????? LOADER RETURN CODE??????????????????????? 00252600 PSW????? DC??? 1D'0'????????? USER'S STARTING PSW?????????????????????? 00252700 LDRFLAGS DC??? 1F'0'????????? LOADER FLAGS????????????????????????????? 00252800 PRHOLD?? DC??? 1F'0'????????? PSEUDO REGISTER COUNTER?????????????????? 00252900 TBENT??? DC??? H'0'?????????? INITIALIZE TABLE ENTRIES TO?????????????? 00262000 *???????????????????????????? ZEROES??????????????????????????????????? 00262100 ... So when I hexdump, sorry HEXPRINT the file, I get the following which I edited, inserting spaces between each fullword. HEX??? RECORD: 000001? RECORDLENGTH: 000080???????????????????????????????????????????????????? ? ?????? ---- +--- -|-- --+- ---| ---- +--- -|-- --+- ---| ---- +--- -|-- --+- ---| ---- +--- -|-- --+- ---|----+----| 000000 .... .... .... .... ...O .... .... .... .... .... .... .... .... .... .... Z... .... .... .... ....???????? ? ZONE?? 0000 0000 0000 0000 002D 0000 0000 0001 4800 0000 0000 0000 0000 0000 0000 E000 0000 0000 0000 0006???????? ? NUMBR? 0200 0200 0258 0258 0156 0000 0000 001F 4003 0000 0300 0000 0000 0000 0000 9000 0000 0000 0000 00E9???????? ? ???? ? |STRTADDR |FRSTLOC? |LASTLOC? |LOCCNT?? |LDRADDR? |LDRRTCD? |PSW??????????????? |LDRFLAGS |PRHOLD?? | ?????? 00020000? 00020508? 000125D6? 00000000? 44800003? 00030000? 00000000 00000000?? 00000000? 00000000 ? ?????? 00020000? 00020508? 00000000? 0000011F? 00000000? 00000000? 00000000 E9000000?? 00000000? 00000E69 ... If I map NUCON variables to those fields, then I end up with LOCCNT having a value of 000000000000011F. Therefor the length of the module is X'011F' or 287 decimal bytes. Am I close, or just totally lost in the woods, and I should send up a flare? ?... Mark S. |
MONITOR Files
Hi Peter,
it took me some time, but eventually I found the MONSTATS program from the 1985 Waterloo Tape at this website: It takes it's input directly from the reader and prints a nice report of the data collected by the MONITOR command. Thanks again for pointing me to Waterloo Tapes. Regards Ralf? |
Re: IBM BASIC Language - Compiler messages not displayed
¿ªÔÆÌåÓýRalf, Well now you are happy, I have to see what is stopping the error messages. Dave ? From: [email protected] <[email protected]> On Behalf Of Ralf Straube
Sent: Friday, February 2, 2024 11:15 AM To: [email protected] Subject: [h390-vm] IBM BASIC Language - Compiler messages not displayed ? Hi Dave, |
IBM BASIC Language - Compiler messages not displayed
Hi Dave,
"ACCESS (NOPROF" did it! Now BASIC shows every compiler error and warning message I was able to generate, Thank you very much for your assistance. I also learned from your answer more about user profiles in VM, many thanks also for that. PS: By the way, error #2 in my test program isn't a compiler error: an integer variable and an array declared with the same name are obviously treated as different objects - but an array which is declared a second time with different dimensions will cause the intended "invalid array declaration" error message.? Greetings Ralf? |
Re: IBM BASIC Language - Compiler messages not displayed
¿ªÔÆÌåÓýRalf, Pretty sure it one of the profile files. Instead of hitting enter at the VM READ prompt at login type :- ? ¡°ACCESS (NOPROF¡± ? And test again please¡ ¡ you will have to use EDIT rather than EE but of course you can swap between environment by doing ¡°IPL CMS¡± and hitting ¡°enter¡± to have EE, or ¡°ACCESS (NOPROF¡± It all seems to work for me logged on as CMSUSER. ? Dave ? From: [email protected] <[email protected]> On Behalf Of Ralf Straube
Sent: Thursday, February 1, 2024 9:53 PM To: [email protected] Subject: [h390-vm] IBM BASIC Language - Compiler messages not displayed ? Hi Dave, 10 REM "BASIC TEST PROGRAM"? ? ? ? ? ? ? ?? 20 FOR I = 1 TO 10? ? ? ? ? ? ? ? ? ? ? ? ? 30 PRINT "HELLO BASIC WORLD"? ? ? ? ? ? ? ? 49 REM ERROR #1: FOR/NEXT LOOP INCOMPLETE? (NEXT STATEMENT COMMENTED OUT)? 50 REM NEXT I? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? 60 REM ERROR #2: INVALID ARRAY DECLARATION? (VARIABLE I IS ALREADY IMPLICITLY DECLARED) 70 DIM I(1,1)? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? 90 REM ERROR #3: SYNTAX ERROR IN EXPRESSION (LOT INSTEAD OF LET) 90 LOT X = 1? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? 100 END? ? |
IBM BASIC Language - Compiler messages not displayed
Hi Dave,
thank you very much for your reply. I made the changes to SYSPROFB EXEC, but the result was the same as before. After that, trying to find different test cases, not only a simple syntax error by misspelling a BASIC command, I found out that it's a little bit more complicated: one error out of three produced the expected error message, the other two only led to a return code of 264 in the CMS Ready Message without error message. It's error #1 from my test program below. Of course I tested them one at a time, because the compiler stops at the first error it finds.? ? 10 REM "BASIC TEST PROGRAM"? ? ? ? ? ? ? ??
20 FOR I = 1 TO 10? ? ? ? ? ? ? ? ? ? ? ? ?
30 PRINT "HELLO BASIC WORLD"? ? ? ? ? ? ? ?
49 REM ERROR #1: FOR/NEXT LOOP INCOMPLETE? (NEXT STATEMENT COMMENTED OUT)?
50 REM NEXT I? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
60 REM ERROR #2: INVALID ARRAY DECLARATION? (VARIABLE I IS ALREADY IMPLICITLY DECLARED)
70 DIM I(1,1)? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
90 REM ERROR #3: SYNTAX ERROR IN EXPRESSION (LOT INSTEAD OF LET)
90 LOT X = 1? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
100 END? ? Maybe it's the compiler itself and not the CMS environment?? Ralf? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? |
Re: I forgot: How does one read a print / console spool file to CMS disk
Bertram Moshier wrote:
Fish wrote:Correct.Bertram Moshier wrote:Hello,[...][...] As for CON (console), I asked earlier how to read a print (console)Correct. What is the correct command to move the console spool file to a CMSThe exact command you used above. ;-) But you're asking the wrong question. ;-) Your question shouldn't be "What is the correct command to move the console spool file to a CMS file system?", because that question has already been asked and answered. The question you SHOULD be asking is the same as what you asked previously: "What am I [still] missing?" ;-) Previously, you asked "What am I missing?", to which I replied "This:", and then proceeded to TRY and point out the thing that you were missing. But the fact that you didn't "get" (see/understand) what I was trying to show you is probably my fault. I *should* have told you (but failed to do so; my apologies for that) is that you needed to view my response using a Fixed Pitch (Monospaced) font. When you do that what I was trying to show you should hopefully become clear. I'm hoping if you go back and re-read my replying using a fixed pitch monospaced font, your problem will reveal itself. If it doesn't however, I was TRYING in my response to underline the "HOLD" column on your "q rdr 1803 all" results display. If you'll notice, your reader queue entry is listed as being in "HOLD" (held) status. (I always read and reply to emails using plain text, not HTML. In my experience HTML is *rarely* ever needed, and frequently causes alignment problems since proportional (variable spaced) fonts are almost always used with HTML emails, and most of the mainframe shit we deal with is textual, that isn't displayed on your terminal or printed in your listing using proportional fonts!) The bit of information that you were failing to grasp/see was, before you can read in a reader file that is in HOLD status, you need to first alter it to NOHOLD status: ch rdr 1803 nohold THEN your readcard command *should* work just fine. Sorry for not explicitly telling you what your problem was. I was *hoping* you'd figure it out for yourself with the clue I provided. But I failed to tell you to view my answer in a fixed pitch monospaced font. My bad. :( Please understand that I don't always like to give direct answers to peoples' questions. Instead, I try to help them by giving them enough information (hints) that they can then learn how to figure out their problem for themselves. A wise man once said: "You cannot help men permanently by doing for them what they could and should do for themselves." -- Reverend William John Henry Boetcker (Yeah, I can be a prick sometimes. So sue me! I'm only trying to *TRULY* help people.) -- "Fish" (David B. Trout) Software Development Laboratories mail: fish@... |
Re: I forgot: How does one read a print / console spool file to CMS disk
On Thu, Feb 1, 2024 at 10:22 AM, Bertram Moshier wrote:
The READCARD you coded should do the work. However, looking at the output of the QUERY command just before, I see the HOLD status is USER. I think it means the spool file is held so you can't save it to a CMS file. Try to change the HOLD status first: cp change rdr 1803 nohold |
Re: I forgot: How does one read a print / console spool file to CMS disk
¿ªÔÆÌåÓýhi RECEIVE moves a file from spool to your disk. something like RECEIVE spoolid = = or RECEIVE spooldid fn ft fm
best regards Mike On 2024-02-01 19:22, Bertram Moshier
wrote:
-- mit freundlichen Gr¨¹?en / best regards Mike Beer ---------------------------------------------------- Mag. Michael Beer Spitalgasse 1a/12a, 1090 Wien |
Re: I forgot: How does one read a print / console spool file to CMS disk
Hello, I'm sorry, I don't get it.? The class is correct, as they are both class A. As for CON (console), I asked earlier how to read a print (console) file onto a CMS disk.? The reply was to use the transfer command to move the spool file from the print to reader and then read it into the CMS machine. What is the correct command to move the console spool file to a CMS file system? Thank you. On Thu, Feb 1, 2024 at 10:32?AM Fish Fish <david.b.trout@...> wrote: Bertram Moshier wrote: |
Re: I forgot: How does one read a print / console spool file to CMS disk
Bertram Moshier wrote:
[...] q rdr 1803 all#readcard operator con a[...] The virtual reader is ready class a and the console fileThis: OWNERID FILE CLASS RECDS CPY HOLD DATE TIME ... OPERATOR 1803 A CON 000065 01 USER 01/22 00:44:15 ^^^^ ^^^^ ^^^^ -- "Fish" (David B. Trout) Software Development Laboratories mail: fish@... |
Re: I forgot: How does one read a print / console spool file to CMS disk
Hello again, Unfortunately, I'm finding my memory is not what it used to be about VM.? This is what I'm doing and seeing.? What am I doing wrong? q rdr 1803 all#readcard operator con a OWNERID ?FILE CLASS RECDS ?CPY HOLD DATE ?TIME ? ? NAME ? ? ? ?TYPE ? ? DIST? OPERATOR 1803 A CON 000065 ?01 USER 01/22 00:44:15 ? Ready; T=0.01/0.01 15:52:09 ? ?READER EMPTY OR NOT READY. Ready(00008); T=0.01/0.01 15:52:09 q v c? 15:56:08 RDR ?00C CL A ?NOCONT NOHOLD ? EOF ? ? ?READY Ready; T=0.01/0.01 15:56:08? The virtual reader is ready class a and the console file in the reader is class a.? What am I missing? Thanks. On Wed, Jan 31, 2024 at 11:52?PM Bertram Moshier via <herc370390vm=[email protected]> wrote:
|
Re: I forgot: How does one read a print / console spool file to CMS disk
Thank you!? Transfer command.? I forgot about it. On Wed, Jan 31, 2024, 19:43 Fish Fish <david.b.trout@...> wrote: Bertram Moshier wrote: |
Re: I forgot: How does one read a print / console spool file to CMS disk
On Wed, Jan 31, 2024 at 19:35 Bertram Moshier <herc370390vm@...> wrote:
When Hercules creates a printer device, it typically dumps the data written to the printer into a disk file on the host machine.? You could let the file "print" to that file, then open it up in your favorite Linux or Windows file trading program. CP START 00E (or whatever other printer you've got defined) from a suitably authorized VM user will start printing whatever is in the PRT queue. Ross |
Re: I forgot: How does one read a print / console spool file to CMS disk
Bertram Moshier wrote:
[...] I'll have to look at the Profile Exec. Right now theYou have 2 choices, depending on whether it was actually printed or not. Just because something is routed to the [usually system] print queue does necessarily mean it will get physically printed. A lot of times printouts sit in the [system] print queue with a print class different from the one the system printer is currently started with, or with a hold disposition. If that's the case then your first choice is to simply transfer it back to your virtual reader queue. If it's actually being physically printed however (i.e. trees are actually being burnt) and you don't want that to happen, then your second choice is the change whatever 'spool' command there is in your profile exec to spool things back to yourself instead (or add such a statement if one doesn't already exist). -- "Fish" (David B. Trout) Software Development Laboratories mail: fish@... |