¿ªÔÆÌåÓý


Re: Possible bug in BREXX parse instruction

 

Thanks, Mark.

I never found brexx debug to be very useful. I do remember that you put the BREXXD TEXT on your A-disk, renamed to BREXX TEXT, then IPL CMS.? Then the 'trace' statement, in an EXEC , turns the tracing on and off (I can't remember the exact operand.) The trace output shows you codepoints in the BREXX interpretor where the code flows. I will try to figure out the details and report back.
Bob

On Sun, Oct 16, 2022, 4:35 PM Mark A. Stevens via <marXtevens=[email protected]> wrote:
On Sun, Oct 16, 2022 at 10:36 AM, Bob Bolch wrote:
Which left parentheses?are you referring?to in that sentence?
?
Also, the WITH keyword is only valid in a parse of the form:
PARSE VALUE expression WITH template
The 'with' in Dave Mitchell's example is a variable name.
?
The correct result of the DAVEMTST?EXEC is the following:
Welcome back from your surgery.

Once again, I'm leaving out thoughts and not writing them down. Sorry.
I am referencing Mike's 2nd edition, also the ANSI X3J18-199X document. I will also eat my words about the parentheses. I was wrong. I had to walk away from this due to other challenges, and forgot.

From the ANSI document.

/* Note: The next section describes templates. */
template_list?????? := template | [template] ',' [template_list]
template??????????? := (trigger | target | Msg38.1)+
target????????????? := VAR_SYMBOL | '.'
trigger???????????? := pattern | positional
pattern???????????? := STRING | vrefp
vrefp?????????????? := '(' (VAR_SYMBOL | Msg19.7) (')' | Msg46.1)
positional????????? := absolute_positional | relative_positional
absolute_positional := NUMBER | '=' position
position??????????? := NUMBER | vrefp | Msg38.2
relative_positional := ('+' | '-') position

Concerning the use of 'WITH', I found I was misreading the code. You are correct.

address ??????????? := 'ADDRESS' [(taken_constant [expression]
??????????????????? | Msg19.1 | valueexp) [ 'WITH' connection]]
... and ...

parse_value???????? := 'VALUE' [expression] ('WITH' | Msg38.3)

I have been going through the C code to determine what is and is not happening. Not having a lot of luck, yet, as I get lost in the definitions of record constructs, and I don't understand why TEMPLATE C skips left paren while gathering symbols. Starting at line 35 and on.

/* ----------- vrefp --------- */
/* variable reference position */
static void
vrefp(void) {
??? Context *context = (Context *) CMSGetPG();
??? nextsymbol(); /* skip left parenthesis */

I also have not been able to activate the debug mode of bREXX, though I thought I followed the directions.

?... Mark S.
Boy, do I feel stupid today.


Re: Possible bug in BREXX parse instruction

 

On Sun, Oct 16, 2022 at 10:36 AM, Bob Bolch wrote:
Which left parentheses?are you referring?to in that sentence?
?
Also, the WITH keyword is only valid in a parse of the form:
PARSE VALUE expression WITH template
The 'with' in Dave Mitchell's example is a variable name.
?
The correct result of the DAVEMTST?EXEC is the following:
Welcome back from your surgery.

Once again, I'm leaving out thoughts and not writing them down. Sorry.
I am referencing Mike's 2nd edition, also the ANSI X3J18-199X document. I will also eat my words about the parentheses. I was wrong. I had to walk away from this due to other challenges, and forgot.

From the ANSI document.

/* Note: The next section describes templates. */
template_list?????? := template | [template] ',' [template_list]
template??????????? := (trigger | target | Msg38.1)+
target????????????? := VAR_SYMBOL | '.'
trigger???????????? := pattern | positional
pattern???????????? := STRING | vrefp
vrefp?????????????? := '(' (VAR_SYMBOL | Msg19.7) (')' | Msg46.1)
positional????????? := absolute_positional | relative_positional
absolute_positional := NUMBER | '=' position
position??????????? := NUMBER | vrefp | Msg38.2
relative_positional := ('+' | '-') position

Concerning the use of 'WITH', I found I was misreading the code. You are correct.

address ??????????? := 'ADDRESS' [(taken_constant [expression]
??????????????????? | Msg19.1 | valueexp) [ 'WITH' connection]]
... and ...

parse_value???????? := 'VALUE' [expression] ('WITH' | Msg38.3)

I have been going through the C code to determine what is and is not happening. Not having a lot of luck, yet, as I get lost in the definitions of record constructs, and I don't understand why TEMPLATE C skips left paren while gathering symbols. Starting at line 35 and on.

/* ----------- vrefp --------- */
/* variable reference position */
static void
vrefp(void) {
??? Context *context = (Context *) CMSGetPG();
??? nextsymbol(); /* skip left parenthesis */

I also have not been able to activate the debug mode of bREXX, though I thought I followed the directions.

?... Mark S.
Boy, do I feel stupid today.


Re: Another Time Zone Question (Sorta)

 

On Sun, Oct 16, 2022 at 08:56 AM, Bob Polmanter wrote:
I don't have my system available in front of me at the moment but to the best of my recollection those change files were controlling the OPTIONS COPY member, for the support of varying the AP=YES/NO selection in DMKSYS and thus including an extra COPY member in the conditional assembly.
There are other control files, aux files, and then code which are included when AP is selected for a build. I've forgotten the details, but I used it on our 4381[-P2]?, as it had an attached processor, years ago. You are correct about the lack of performance improvement. If I recall correctly Fish, and others, have not implemented the EPCS:VM assists for that.

I learned update control on CDC KRONOS and NOS operating systems in the early 80s and into the 90s. When I shifted to VM/SP 6, and found there was an equivalent methodology, and commands, I started using them and practiced on DMKSNT, and DMKSYS. This helped me when I started applying PUTs, and re-installing SP 6 & upgrading to later releases. Especially as our consultant 'skipped'? using VM/SES during the original install.

I also took advantage of XEDIT's UPDATE feature and applied it to management of local code, REXX, EXEC, and so on. For my own sanity, as well as helping those who might later follow.

Since most of us no longer have to share our VM/370 installation, yes, this is overkill, but if you want to learn what happened in those days, it is, in my humble opinion, worth trying. Practice on DMKSYS, and change the name of your host with the SYSID macro, and making the time match your particular time zone.

If you just want to change the time, look at Hercules V4.x, and the TZOFFSET. The following is from my configuration file.

# Spring/Summer/Fall US Central Daylight Savings Time (CST)
TZOFFSET??????? -0500
# Fall/Winter/Spring US Central Daylight Time (CDT)
#TZOFFSET??????? -0600
#?????????????? + indicates east of GMT
#?????????????? - indicates west of GMT
#??????????????? 00 = hours
#????????????????? 00 = minutes (India for example)

I Hope This Helps
?... Mark S.


Re: Possible bug in BREXX parse instruction

 

Will check this.?

Martin Scheffler <San-Lorenzo@...> schrieb am So. 16. Okt. 2022 um 21:28:

We might look for? TEMPLATE? C? F?? on MAINTC:

q disk?????????????????????????????????????????????????????????????????????????????
Label? CUU M? Stat? Cyl Type Blksize?? Files? Blks Used-(%) Blks Left? Blk Total? ?
MNT191 191 A?? R/W?? 50 3350? 800???????? 29?????? 2699-09????? 25801????? 28500? ?
MNT193 193 E/A R/O?? 50 3350? 800??????? 212?????? 2347-08????? 26153????? 28500? ?
MNT393 393 F/A R/O?? 50 3350? 800??????? 218?????? 1468-05????? 27032????? 28500? ?
MNT394 394 G/A R/O?? 50 3350? 800???????? 20?????? 2252-08????? 26248????? 28500? ?
MNT194 194 H/A R/O?? 50 3350? 800????????? 1?????? 3123-11????? 25377????? 28500? ?
CMSDSK 190 S?? R/O?? 59 3350? 800??????? 172????? 19542-58????? 14088????? 33630? ?
MNT19C 19C T?? R/W?? 50 3350? 800???????? 40??????? 124-00????? 28376????? 28500? ?
MNT29D 19D U/S R/O?? 30 3350? 800??????? 407?????? 6242-37????? 10858????? 17100? ?
MNT19E 19E Y/S R/O?? 70 3350? 800??????? 710????? 28263-71????? 11637????? 39900? ?
Ready; T=0.01/0.01 19:15:40?????????????????????????????????????????????????????? ?
????????????????????????????????????????????????????????????????????????????????? ?
l template c *??? ( l iso???????????????????????????????????????????????????????? ?
Filename Filetype Fm? Format??? Recs Blocks???? Date??? Time?? Label????????????? ?
TEMPLATE C??????? F1? V??? 80??? 218???? 10? 2021-04-14 12:17? MNT393???????????? ?
Ready; T=0.01/0.01 19:16:41?????????????????????????????????????????????????????? ?
????????????????????????????????????????????????????????????????????????????????? ?
File: TEMPLATE C??????? F1??????????????????????????????????????????????????????? ?
===>????????????????????????????????????????????????????????????????????????????? ?
?? 81 /* -------------------------------------------------------------- */??????? ?
?? 82 /*? template_list := template | [template] ',' [template_list]??? */??????? ?
?? 83 /*? template?? := (trigger | target | Msg38.1)+?????????????????? */??????? ?
?? 84 /*? target???? := VAR_SYMBOL | '.'??????????????????????????????? */??????? ?
?? 85 /*? trigger??? := pattern | positional??????????????????????????? */??????? ?
?? 86 /*? pattern??? := STRING | vrefp????????????????????????????????? */??????? ?
?? 87 /*? vrefp????? := '(' (VAR_SYMBOL | Msg19.7) (')' | Msg46.1)????? */??????? ?
?? 88 /*? positional := absolute_pos | relative_pos???????????????????? */??????? ?
?? 89 /*? absolute_pos := NUMBER | '=' position???????????????????????? */??????? ?
?? 90 /*? position?? := NUMBER | vrefp? | Msg38.2?????????????????????? */??????? ?
?? 91 /*? relative_pos := ('+' | '-') position????????????????????????? */??????? ?
?? 92 /* -------------------------------------------------------------- */??????? ?
?? 93 void __CDECL??????????????????????????????????????????????????????????????? ?
?? 94 C_template(void) {????????????????????????????????????????????????????????? ?
?? 95???? void *target_ptr = NULL;??????????????????????????????????????????????? ?
?? 96???? bool trigger, dot = FALSE;????????????????????????????????????????????? ?
?? 97???? bool sign;????????????????????????????????????????????????????????????? ?
?? 98???? int type;?????????????????????????????????????????????????????????????? ?
?? 99???? CTYPE pos;????????????????????????????????????????????????????????????? ?
? 100???? Context *context = (Context *) CMSGetPG();????????????????????????????? ?
? 101???????????????????????????????????????????????????????????????????????????? ?
? 102???? _CodeAddByte(OP_PARSE);???????????????????????????????????????????????? ?
? 103???? while (((context->nextsymbsymbol) != semicolon_sy) &&?????????????????? ?



--
Von Gmail Mobile gesendet


Re: Possible bug in BREXX parse instruction

 

We might look for? TEMPLATE? C? F?? on MAINTC:

q disk?????????????????????????????????????????????????????????????????????????????
Label? CUU M? Stat? Cyl Type Blksize?? Files? Blks Used-(%) Blks Left? Blk Total? ?
MNT191 191 A?? R/W?? 50 3350? 800???????? 29?????? 2699-09????? 25801????? 28500? ?
MNT193 193 E/A R/O?? 50 3350? 800??????? 212?????? 2347-08????? 26153????? 28500? ?
MNT393 393 F/A R/O?? 50 3350? 800??????? 218?????? 1468-05????? 27032????? 28500? ?
MNT394 394 G/A R/O?? 50 3350? 800???????? 20?????? 2252-08????? 26248????? 28500? ?
MNT194 194 H/A R/O?? 50 3350? 800????????? 1?????? 3123-11????? 25377????? 28500? ?
CMSDSK 190 S?? R/O?? 59 3350? 800??????? 172????? 19542-58????? 14088????? 33630? ?
MNT19C 19C T?? R/W?? 50 3350? 800???????? 40??????? 124-00????? 28376????? 28500? ?
MNT29D 19D U/S R/O?? 30 3350? 800??????? 407?????? 6242-37????? 10858????? 17100? ?
MNT19E 19E Y/S R/O?? 70 3350? 800??????? 710????? 28263-71????? 11637????? 39900? ?
Ready; T=0.01/0.01 19:15:40?????????????????????????????????????????????????????? ?
????????????????????????????????????????????????????????????????????????????????? ?
l template c *??? ( l iso???????????????????????????????????????????????????????? ?
Filename Filetype Fm? Format??? Recs Blocks???? Date??? Time?? Label????????????? ?
TEMPLATE C??????? F1? V??? 80??? 218???? 10? 2021-04-14 12:17? MNT393???????????? ?
Ready; T=0.01/0.01 19:16:41?????????????????????????????????????????????????????? ?
????????????????????????????????????????????????????????????????????????????????? ?
File: TEMPLATE C??????? F1??????????????????????????????????????????????????????? ?
===>????????????????????????????????????????????????????????????????????????????? ?
?? 81 /* -------------------------------------------------------------- */??????? ?
?? 82 /*? template_list := template | [template] ',' [template_list]??? */??????? ?
?? 83 /*? template?? := (trigger | target | Msg38.1)+?????????????????? */??????? ?
?? 84 /*? target???? := VAR_SYMBOL | '.'??????????????????????????????? */??????? ?
?? 85 /*? trigger??? := pattern | positional??????????????????????????? */??????? ?
?? 86 /*? pattern??? := STRING | vrefp????????????????????????????????? */??????? ?
?? 87 /*? vrefp????? := '(' (VAR_SYMBOL | Msg19.7) (')' | Msg46.1)????? */??????? ?
?? 88 /*? positional := absolute_pos | relative_pos???????????????????? */??????? ?
?? 89 /*? absolute_pos := NUMBER | '=' position???????????????????????? */??????? ?
?? 90 /*? position?? := NUMBER | vrefp? | Msg38.2?????????????????????? */??????? ?
?? 91 /*? relative_pos := ('+' | '-') position????????????????????????? */??????? ?
?? 92 /* -------------------------------------------------------------- */??????? ?
?? 93 void __CDECL??????????????????????????????????????????????????????????????? ?
?? 94 C_template(void) {????????????????????????????????????????????????????????? ?
?? 95???? void *target_ptr = NULL;??????????????????????????????????????????????? ?
?? 96???? bool trigger, dot = FALSE;????????????????????????????????????????????? ?
?? 97???? bool sign;????????????????????????????????????????????????????????????? ?
?? 98???? int type;?????????????????????????????????????????????????????????????? ?
?? 99???? CTYPE pos;????????????????????????????????????????????????????????????? ?
? 100???? Context *context = (Context *) CMSGetPG();????????????????????????????? ?
? 101???????????????????????????????????????????????????????????????????????????? ?
? 102???? _CodeAddByte(OP_PARSE);???????????????????????????????????????????????? ?
? 103???? while (((context->nextsymbsymbol) != semicolon_sy) &&?????????????????? ?




Re: Possible bug in BREXX parse instruction

 

I¡®m on my way to find a fix.
Debug environment is back in running state.?

Martin Scheffler <San-Lorenzo@...> schrieb am So. 16. Okt. 2022 um 19:28:

I had to build bREXX for bug chasing already .. I will look into this. I checked KEDIT/KEXX, Regina and ooRexx under Microsoft Windows and all these results are the same as with REXX370 4.02 .

--
Von Gmail Mobile gesendet


Re: Possible bug in BREXX parse instruction

 

I had to build bREXX for bug chasing already .. I will look into this. I checked KEDIT/KEXX, Regina and ooRexx under Microsoft Windows and all these results are the same as with REXX370 4.02 .


Re: Possible bug in BREXX parse instruction

 

¿ªÔÆÌåÓý

Bob,

did you came closer to a c file, where the problem may occur?
I just reviewed my old mail, but can¡¯t really remember. Something with
not finding the closing ?)¡°. Where do you think is the bug, I will
review the code.


Mike ?

Am 16.10.2022 um 19:18 schrieb Bob Bolch <Bob@...>:

Yes. The problem is that BREXX doesn't handle literals in the parse template!!
I just don't know enough C to find and fix it.
Bob Bolch

On Sun, Oct 16, 2022, 12:46 PM Martin Scheffler <San-Lorenzo@...> wrote:
Comparing with results from real iron (z/VM 6.4):

Ready; T=0.01/0.01 10:46:48?????????????????????????????????????? ?
?DAVEMTST???????????????????????????????????????????????????????? ?
z/VM Version 6 Release 4.0, service level 1701 (64-bit)?????????? ?
Generated at 04/24/17 16:30:42 EST??????????????????????????????? ?
IPL at 10/08/22 07:37:33 EST????????????????????????????????????? ?
CMS Level 28, Service Level 1701????????????????????????????????? ?
REXX370 4.02 01 Dec 1998????????????????????????????????????????? ?
test of () trial 1??????????????????????????????????????????????? ?
in1 = //????????????????????????????????????????????????????????? ?
in2 = //????????????????????????????????????????????????????????? ?
outer=/ trial 1/????????????????????????????????????????????????? ?
test of (1) trial 2?????????????????????????????????????????????? ?
in1 = /1/???????????????????????????????????????????????????????? ?
in2 = //????????????????????????????????????????????????????????? ?
outer=/ trial 2/????????????????????????????????????????????????? ?
test of (1 3) trial 3???????????????????????????????????????????? ?
in1 = /1/???????????????????????????????????????????????????????? ?
in2 = /3/???????????????????????????????????????????????????????? ?
outer=/ trial3/?????????????????????????????????????????????????? ?
Ready; T=0.01/0.01 10:46:51?????????????????????????????????????? ?
????????????????????????????????????????????????????????????????? ?
????????????????????????????????????????????????????????????????? ?
Written new file: DAVEMTST EXEC A1??????????????????????????????? ?
Ready; T=0.09/0.23 15:58:32?????????????????????????????????????? ?
DAVEMTST????????????????????????????????????????????????????????? ?
SYSTEM 4381-A???????????????????????????????????????????????????? ?
VM/370 Community Edition Version? 1 Release? 1.2 10/11/22 08:44:05?
VM/370 CMS Community Edition Version 1 Release 1.2??????????????? ?
CMS bREXX 1.0.1 Jul? 5 2022?????????????????????????????????????? ?
test of () trial 1??????????????????????????????????????????????? ?
in1 = /)/???????????????????????????????????????????????????????? ?
in2 = /trial 1/?????????????????????????????????????????????????? ?
outer=//????????????????????????????????????????????????????????? ?
test of (1) trial 2?????????????????????????????????????????????? ?
in1 = /1)/??????????????????????????????????????????????????????? ?
in2 = /trial 2/?????????????????????????????????????????????????? ?
outer=//????????????????????????????????????????????????????????? ?
test of (1 3) trial 3???????????????????????????????????????????? ?
in1 = /1/???????????????????????????????????????????????????????? ?
in2 = /3/???????????????????????????????????????????????????????? ?
outer=/ trial3/?????????????????????????????????????????????????? ?
Ready; T=0.08/0.12 15:58:38?????????????????????????????????????? ?
????????????????????????????????????????????????????????????????? ?
*** side by side:???????????????????????????????????????????????? ?
????????????????????????????????????????????????????????????????? ?
REXX370 4.02 01 Dec 1998? CMS bREXX 1.0.1 Jul? 5 2022???????????? ?
test of () trial 1??????? test of () trial 1????????????????????? ?
in1 = //????????????????? in1 = /)/?????????????????????????????? ?
in2 = //????????????????? in2 = /trial 1/???????????????????????? ?
outer=/?trial 1/????????? outer=//??????????????????????????????? ?
test of (1) trial 2?????? test of (1) trial 2???????????????????? ?
in1 = /1/???????????????? in1 = /1)/????????????????????????????? ?
in2 = //????????????????? in2 = /trial 2/???????????????????????? ?
outer=/?trial 2/????????? outer=//??????????????????????????????? ?
test of (1 3) trial 3???? test of (1 3) trial 3?????????????????? ?
in1 = /1/???????????????? in1 = /1/?????????????????????????????? ?
in2 = /3/???????????????? in2 = /3/?????????????????????????????? ?
outer=/ trial3/?????????? outer=/ trial3/???????????????????????? ?
????????????????????????????????????????????????????????????????? ?
?DAVEMTST EXEC???? A1? F 80? Trunc=80 Size=22 Line=11 Col=1 Alt=0 ?
====>???????????????????????????????????????????????????????????? ?
????0 * * * Top of File * * *???????????????????????????????????? ?
????1 /* test parse */??????????????????????????????????????????? ?
????2 "q cplevel"???????????????????????????????????????????????? ?
????3 "q cmslevel"??????????????????????????????????????????????? ?
????4 parse version v???????????????????????????????????????????? ?
????5 say v?????????????????????????????????????????????????????? ?
????6?? trest = '() trial 1'????????????????????????????????????? ?
????7?? say 'test of () trial 1'????????????????????????????????? ?
????8?? s = dotell(trest)???????????????????????????????????????? ?
????9?? trest = '(1) trial 2'???????????????????????????????????? ?
???10?? say 'test of (1) trial 2'???????????????????????????????? ?
???11?? s = dotell(trest)???????????????????????????????????????? ?
???12?? trest = '(1 3) trial3'??????????????????????????????????? ?
???13?? say 'test of (1 3) trial 3'?????????????????????????????? ?
???14?? s = dotell(trest)???????????????????????????????????????? ?
???15?? exit????????????????????????????????????????????????????? ?
???16???????????????????????????????????????????????????????????? ?
???17 dotell:???????????????????????????????????????????????????? ?
???18?? parse arg with '(' in1 in2 ')' outer????????????????????? ?
???19?? say 'in1 = /'in1'/'?????????????????????????????????????? ?
???20?? say 'in2 = /'in2'/'?????????????????????????????????????? ?
???21?? say 'outer=/'outer'/'???????????????????????????????????? ?
???22?? return 0????????????????????????????????????????????????? ?
???23 * * * End of File * * *???????????????????????????????????? ?




Re: Possible bug in BREXX parse instruction

 

¿ªÔÆÌåÓý

Hello Mark,

yes, MVS has the same bug. But unfortunately I'm not able to find a fix. :(


Mike ?

Am 16.10.2022 um 16:57 schrieb Mark A. Stevens via <marXtevens@...>:

On Sat, Sep 17, 2022 at 01:48 PM, Mike Gro?mann wrote:
I totally forgot about this topic.?
I'll look at it tomorrow, I promise.?
?
Mike
Any luck in finding time?

?... Mark S.


Re: Possible bug in BREXX parse instruction

 

Yes. The problem is that BREXX doesn't handle literals in the parse template!!
I just don't know enough C to find and fix it.
Bob Bolch

On Sun, Oct 16, 2022, 12:46 PM Martin Scheffler <San-Lorenzo@...> wrote:
Comparing with results from real iron (z/VM 6.4):

Ready; T=0.01/0.01 10:46:48?????????????????????????????????????? ?
?DAVEMTST???????????????????????????????????????????????????????? ?
z/VM Version 6 Release 4.0, service level 1701 (64-bit)?????????? ?
Generated at 04/24/17 16:30:42 EST??????????????????????????????? ?
IPL at 10/08/22 07:37:33 EST????????????????????????????????????? ?
CMS Level 28, Service Level 1701????????????????????????????????? ?
REXX370 4.02 01 Dec 1998????????????????????????????????????????? ?
test of () trial 1??????????????????????????????????????????????? ?
in1 = //????????????????????????????????????????????????????????? ?
in2 = //????????????????????????????????????????????????????????? ?
outer=/ trial 1/????????????????????????????????????????????????? ?
test of (1) trial 2?????????????????????????????????????????????? ?
in1 = /1/???????????????????????????????????????????????????????? ?
in2 = //????????????????????????????????????????????????????????? ?
outer=/ trial 2/????????????????????????????????????????????????? ?
test of (1 3) trial 3???????????????????????????????????????????? ?
in1 = /1/???????????????????????????????????????????????????????? ?
in2 = /3/???????????????????????????????????????????????????????? ?
outer=/ trial3/?????????????????????????????????????????????????? ?
Ready; T=0.01/0.01 10:46:51?????????????????????????????????????? ?
????????????????????????????????????????????????????????????????? ?
????????????????????????????????????????????????????????????????? ?
Written new file: DAVEMTST EXEC A1??????????????????????????????? ?
Ready; T=0.09/0.23 15:58:32?????????????????????????????????????? ?
DAVEMTST????????????????????????????????????????????????????????? ?
SYSTEM 4381-A???????????????????????????????????????????????????? ?
VM/370 Community Edition Version? 1 Release? 1.2 10/11/22 08:44:05
VM/370 CMS Community Edition Version 1 Release 1.2??????????????? ?
CMS bREXX 1.0.1 Jul? 5 2022?????????????????????????????????????? ?
test of () trial 1??????????????????????????????????????????????? ?
in1 = /)/???????????????????????????????????????????????????????? ?
in2 = /trial 1/?????????????????????????????????????????????????? ?
outer=//????????????????????????????????????????????????????????? ?
test of (1) trial 2?????????????????????????????????????????????? ?
in1 = /1)/??????????????????????????????????????????????????????? ?
in2 = /trial 2/?????????????????????????????????????????????????? ?
outer=//????????????????????????????????????????????????????????? ?
test of (1 3) trial 3???????????????????????????????????????????? ?
in1 = /1/???????????????????????????????????????????????????????? ?
in2 = /3/???????????????????????????????????????????????????????? ?
outer=/ trial3/?????????????????????????????????????????????????? ?
Ready; T=0.08/0.12 15:58:38?????????????????????????????????????? ?
????????????????????????????????????????????????????????????????? ?
*** side by side:???????????????????????????????????????????????? ?
????????????????????????????????????????????????????????????????? ?
REXX370 4.02 01 Dec 1998? CMS bREXX 1.0.1 Jul? 5 2022???????????? ?
test of () trial 1??????? test of () trial 1????????????????????? ?
in1 = //????????????????? in1 = /)/?????????????????????????????? ?
in2 = //????????????????? in2 = /trial 1/???????????????????????? ?
outer=/ trial 1/????????? outer=//??????????????????????????????? ?
test of (1) trial 2?????? test of (1) trial 2???????????????????? ?
in1 = /1/???????????????? in1 = /1)/????????????????????????????? ?
in2 = //????????????????? in2 = /trial 2/???????????????????????? ?
outer=/ trial 2/????????? outer=//??????????????????????????????? ?
test of (1 3) trial 3???? test of (1 3) trial 3?????????????????? ?
in1 = /1/???????????????? in1 = /1/?????????????????????????????? ?
in2 = /3/???????????????? in2 = /3/?????????????????????????????? ?
outer=/ trial3/?????????? outer=/ trial3/???????????????????????? ?
????????????????????????????????????????????????????????????????? ?
?DAVEMTST EXEC???? A1? F 80? Trunc=80 Size=22 Line=11 Col=1 Alt=0 ?
====>???????????????????????????????????????????????????????????? ?
??? 0 * * * Top of File * * *???????????????????????????????????? ?
??? 1 /* test parse */??????????????????????????????????????????? ?
??? 2 "q cplevel"???????????????????????????????????????????????? ?
??? 3 "q cmslevel"??????????????????????????????????????????????? ?
??? 4 parse version v???????????????????????????????????????????? ?
??? 5 say v?????????????????????????????????????????????????????? ?
??? 6?? trest = '() trial 1'????????????????????????????????????? ?
??? 7?? say 'test of () trial 1'????????????????????????????????? ?
??? 8?? s = dotell(trest)???????????????????????????????????????? ?
??? 9?? trest = '(1) trial 2'???????????????????????????????????? ?
?? 10?? say 'test of (1) trial 2'???????????????????????????????? ?
?? 11?? s = dotell(trest)???????????????????????????????????????? ?
?? 12?? trest = '(1 3) trial3'??????????????????????????????????? ?
?? 13?? say 'test of (1 3) trial 3'?????????????????????????????? ?
?? 14?? s = dotell(trest)???????????????????????????????????????? ?
?? 15?? exit????????????????????????????????????????????????????? ?
?? 16???????????????????????????????????????????????????????????? ?
?? 17 dotell:???????????????????????????????????????????????????? ?
?? 18?? parse arg with '(' in1 in2 ')' outer????????????????????? ?
?? 19?? say 'in1 = /'in1'/'?????????????????????????????????????? ?
?? 20?? say 'in2 = /'in2'/'?????????????????????????????????????? ?
?? 21?? say 'outer=/'outer'/'???????????????????????????????????? ?
?? 22?? return 0????????????????????????????????????????????????? ?
?? 23 * * * End of File * * *???????????????????????????????????? ?


Re: Possible bug in BREXX parse instruction

 

Comparing with results from real iron (z/VM 6.4):

Ready; T=0.01/0.01 10:46:48?????????????????????????????????????? ?
?DAVEMTST???????????????????????????????????????????????????????? ?
z/VM Version 6 Release 4.0, service level 1701 (64-bit)?????????? ?
Generated at 04/24/17 16:30:42 EST??????????????????????????????? ?
IPL at 10/08/22 07:37:33 EST????????????????????????????????????? ?
CMS Level 28, Service Level 1701????????????????????????????????? ?
REXX370 4.02 01 Dec 1998????????????????????????????????????????? ?
test of () trial 1??????????????????????????????????????????????? ?
in1 = //????????????????????????????????????????????????????????? ?
in2 = //????????????????????????????????????????????????????????? ?
outer=/ trial 1/????????????????????????????????????????????????? ?
test of (1) trial 2?????????????????????????????????????????????? ?
in1 = /1/???????????????????????????????????????????????????????? ?
in2 = //????????????????????????????????????????????????????????? ?
outer=/ trial 2/????????????????????????????????????????????????? ?
test of (1 3) trial 3???????????????????????????????????????????? ?
in1 = /1/???????????????????????????????????????????????????????? ?
in2 = /3/???????????????????????????????????????????????????????? ?
outer=/ trial3/?????????????????????????????????????????????????? ?
Ready; T=0.01/0.01 10:46:51?????????????????????????????????????? ?
????????????????????????????????????????????????????????????????? ?
????????????????????????????????????????????????????????????????? ?
Written new file: DAVEMTST EXEC A1??????????????????????????????? ?
Ready; T=0.09/0.23 15:58:32?????????????????????????????????????? ?
DAVEMTST????????????????????????????????????????????????????????? ?
SYSTEM 4381-A???????????????????????????????????????????????????? ?
VM/370 Community Edition Version? 1 Release? 1.2 10/11/22 08:44:05
VM/370 CMS Community Edition Version 1 Release 1.2??????????????? ?
CMS bREXX 1.0.1 Jul? 5 2022?????????????????????????????????????? ?
test of () trial 1??????????????????????????????????????????????? ?
in1 = /)/???????????????????????????????????????????????????????? ?
in2 = /trial 1/?????????????????????????????????????????????????? ?
outer=//????????????????????????????????????????????????????????? ?
test of (1) trial 2?????????????????????????????????????????????? ?
in1 = /1)/??????????????????????????????????????????????????????? ?
in2 = /trial 2/?????????????????????????????????????????????????? ?
outer=//????????????????????????????????????????????????????????? ?
test of (1 3) trial 3???????????????????????????????????????????? ?
in1 = /1/???????????????????????????????????????????????????????? ?
in2 = /3/???????????????????????????????????????????????????????? ?
outer=/ trial3/?????????????????????????????????????????????????? ?
Ready; T=0.08/0.12 15:58:38?????????????????????????????????????? ?
????????????????????????????????????????????????????????????????? ?
*** side by side:???????????????????????????????????????????????? ?
????????????????????????????????????????????????????????????????? ?
REXX370 4.02 01 Dec 1998? CMS bREXX 1.0.1 Jul? 5 2022???????????? ?
test of () trial 1??????? test of () trial 1????????????????????? ?
in1 = //????????????????? in1 = /)/?????????????????????????????? ?
in2 = //????????????????? in2 = /trial 1/???????????????????????? ?
outer=/ trial 1/????????? outer=//??????????????????????????????? ?
test of (1) trial 2?????? test of (1) trial 2???????????????????? ?
in1 = /1/???????????????? in1 = /1)/????????????????????????????? ?
in2 = //????????????????? in2 = /trial 2/???????????????????????? ?
outer=/ trial 2/????????? outer=//??????????????????????????????? ?
test of (1 3) trial 3???? test of (1 3) trial 3?????????????????? ?
in1 = /1/???????????????? in1 = /1/?????????????????????????????? ?
in2 = /3/???????????????? in2 = /3/?????????????????????????????? ?
outer=/ trial3/?????????? outer=/ trial3/???????????????????????? ?
????????????????????????????????????????????????????????????????? ?
?DAVEMTST EXEC???? A1? F 80? Trunc=80 Size=22 Line=11 Col=1 Alt=0 ?
====>???????????????????????????????????????????????????????????? ?
??? 0 * * * Top of File * * *???????????????????????????????????? ?
??? 1 /* test parse */??????????????????????????????????????????? ?
??? 2 "q cplevel"???????????????????????????????????????????????? ?
??? 3 "q cmslevel"??????????????????????????????????????????????? ?
??? 4 parse version v???????????????????????????????????????????? ?
??? 5 say v?????????????????????????????????????????????????????? ?
??? 6?? trest = '() trial 1'????????????????????????????????????? ?
??? 7?? say 'test of () trial 1'????????????????????????????????? ?
??? 8?? s = dotell(trest)???????????????????????????????????????? ?
??? 9?? trest = '(1) trial 2'???????????????????????????????????? ?
?? 10?? say 'test of (1) trial 2'???????????????????????????????? ?
?? 11?? s = dotell(trest)???????????????????????????????????????? ?
?? 12?? trest = '(1 3) trial3'??????????????????????????????????? ?
?? 13?? say 'test of (1 3) trial 3'?????????????????????????????? ?
?? 14?? s = dotell(trest)???????????????????????????????????????? ?
?? 15?? exit????????????????????????????????????????????????????? ?
?? 16???????????????????????????????????????????????????????????? ?
?? 17 dotell:???????????????????????????????????????????????????? ?
?? 18?? parse arg with '(' in1 in2 ')' outer????????????????????? ?
?? 19?? say 'in1 = /'in1'/'?????????????????????????????????????? ?
?? 20?? say 'in2 = /'in2'/'?????????????????????????????????????? ?
?? 21?? say 'outer=/'outer'/'???????????????????????????????????? ?
?? 22?? return 0????????????????????????????????????????????????? ?
?? 23 * * * End of File * * *???????????????????????????????????? ?


Re: Possible bug in BREXX parse instruction

 

The best description of how the parsing of?literal strings in the template?is
supposed to work, see:
'The Rexx Language' by Mike ( I have the second edition.)
See Section 10 on Parsing in the subsection on "Parsing with literal templates".
Bob

On Sun, Oct 16, 2022 at 11:36 AM Bob Bolch via <Bob=[email protected]> wrote:
Hi Mark,
'That said, the definition for parsing using the PARSE ARG, or ARG commands does not appear to identify the right parenthesis as a special character, as it identifies the left parenthesis.'

Which left parentheses?are you referring?to in that sentence?

Also, the WITH keyword is only valid in a parse of the form:
PARSE VALUE expression WITH template
The 'with' in Dave Mitchell's example is a variable name.

The correct result of the DAVEMTST?EXEC is the following:

davemtst ? ? ? ? ? ? ? ? ? ? ?
TEST OF () TRIAL 1 ? ? ? ? ? ?
IN1 = // ? ? ? ? ? ? ? ? ? ? ?
IN2 = // ? ? ? ? ? ? ? ? ? ? ?
OUTER=/ TRIAL 1/ ? ? ? ? ? ? ?
TEST OF (1) TRIAL 2 ? ? ? ? ?
IN1 = /1/ ? ? ? ? ? ? ? ? ? ?
IN2 = // ? ? ? ? ? ? ? ? ? ? ?
OUTER=/ TRIAL 2/ ? ? ? ? ? ? ?
TEST OF (1 3) TRIAL 3 ? ? ? ?
IN1 = /1/ ? ? ? ? ? ? ? ? ? ?
IN2 = /3/ ? ? ? ? ? ? ? ? ? ?
OUTER=/ TRIAL3/ ? ? ? ? ? ? ?
Ready; T=0.01/0.01 11:28:05 ?
?
Questions?? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

Bob

On Sun, Oct 16, 2022 at 11:10 AM Mark A. Stevens via <marXtevens=[email protected]> wrote:
On Sun, Dec 12, 2021 at 07:33 AM, Dave Mitchell wrote:
I seem to have stumbled on a bug in the way the parse instruction works in BREXX? specifically when a pattern is used. Here's a sample exec;
/* test parse */?
? trest = '() trial 1'
? say 'test of () trial 1'
? s = dotell(trest)
? trest = '(1) trial 2'
? say 'test of (1) trial 2'
? s = dotell(trest)
? trest = '(1 3) trial3'
? say 'test of (1 3) trial 3'
? s = dotell(trest)
? exit
?
dotell:
? parse arg with '(' in1 in2 ')' outer
? say 'in1 = /'in1'/'
? say 'in2 = /'in2'/'
? say 'outer=/'outer'/'
? return 0
only the third test works as it should, setting 'in1' to '1', 'in2' to '3' and 'outer' to 'trial 3'. The other two cases set 'in1' to ')' and '1) respectively, 'in2' to 'trial 1' and 'trial 2' and 'outer' to a null string.
With the replacement of the GCCLIB segment, I tried this again, and the results are the same.

I've been looking at the REXX syntax definitions, and Mike's definitive book, trying to understand what the C code should be doing.

That said, the definition for parsing using the PARSE ARG, or ARG commands does not appear to identify the right parenthesis as a special character, as it identifies the left parenthesis.

What did not exist in VM/SP 6, and prior was the 'WITH' parameter. I'm guessing, for lack of documentation and knowledge, this was added to resolve the challenge Dave is talking about.

type davemtst exec a
?
/* test parse */
? trest = '() trial 1'
? say 'test of () trial 1'
? s = dotell(trest)
? trest = '(1) trial 2'
? say 'test of (1) trial 2'
? s = dotell(trest)
? trest = '(1 3) trial3'
? say 'test of (1 3) trial 3'
? s = dotell(trest)
? exit
?
dotell:
? parse arg with '(' in1 in2 ')' outer
? say 'in1 = /'in1'/'
? say 'in2 = /'in2'/'
? say 'outer=/'outer'/'
? return 0
?
Ready; T=0.01/0.01 09:55:08
davemtst
test of () trial 1
in1 = /)/
in2 = /trial 1/
outer=//
test of (1) trial 2
in1 = /1)/
in2 = /trial 2/
outer=//
test of (1 3) trial 3
in1 = /1/
in2 = /3/
outer=/ trial3/
Ready; T=0.04/0.05 09:55:15

?... Mark S.
This ... and $5.00, might get you a cup of coffee. I'm old enough to remember 25 cents, but not a nickel, for a cup.


Re: Possible bug in BREXX parse instruction

 

Hi Mark,
'That said, the definition for parsing using the PARSE ARG, or ARG commands does not appear to identify the right parenthesis as a special character, as it identifies the left parenthesis.'

Which left parentheses?are you referring?to in that sentence?

Also, the WITH keyword is only valid in a parse of the form:
PARSE VALUE expression WITH template
The 'with' in Dave Mitchell's example is a variable name.

The correct result of the DAVEMTST?EXEC is the following:

davemtst ? ? ? ? ? ? ? ? ? ? ?
TEST OF () TRIAL 1 ? ? ? ? ? ?
IN1 = // ? ? ? ? ? ? ? ? ? ? ?
IN2 = // ? ? ? ? ? ? ? ? ? ? ?
OUTER=/ TRIAL 1/ ? ? ? ? ? ? ?
TEST OF (1) TRIAL 2 ? ? ? ? ?
IN1 = /1/ ? ? ? ? ? ? ? ? ? ?
IN2 = // ? ? ? ? ? ? ? ? ? ? ?
OUTER=/ TRIAL 2/ ? ? ? ? ? ? ?
TEST OF (1 3) TRIAL 3 ? ? ? ?
IN1 = /1/ ? ? ? ? ? ? ? ? ? ?
IN2 = /3/ ? ? ? ? ? ? ? ? ? ?
OUTER=/ TRIAL3/ ? ? ? ? ? ? ?
Ready; T=0.01/0.01 11:28:05 ?
?
Questions?? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

Bob

On Sun, Oct 16, 2022 at 11:10 AM Mark A. Stevens via <marXtevens=[email protected]> wrote:
On Sun, Dec 12, 2021 at 07:33 AM, Dave Mitchell wrote:
I seem to have stumbled on a bug in the way the parse instruction works in BREXX? specifically when a pattern is used. Here's a sample exec;
/* test parse */?
? trest = '() trial 1'
? say 'test of () trial 1'
? s = dotell(trest)
? trest = '(1) trial 2'
? say 'test of (1) trial 2'
? s = dotell(trest)
? trest = '(1 3) trial3'
? say 'test of (1 3) trial 3'
? s = dotell(trest)
? exit
?
dotell:
? parse arg with '(' in1 in2 ')' outer
? say 'in1 = /'in1'/'
? say 'in2 = /'in2'/'
? say 'outer=/'outer'/'
? return 0
only the third test works as it should, setting 'in1' to '1', 'in2' to '3' and 'outer' to 'trial 3'. The other two cases set 'in1' to ')' and '1) respectively, 'in2' to 'trial 1' and 'trial 2' and 'outer' to a null string.
With the replacement of the GCCLIB segment, I tried this again, and the results are the same.

I've been looking at the REXX syntax definitions, and Mike's definitive book, trying to understand what the C code should be doing.

That said, the definition for parsing using the PARSE ARG, or ARG commands does not appear to identify the right parenthesis as a special character, as it identifies the left parenthesis.

What did not exist in VM/SP 6, and prior was the 'WITH' parameter. I'm guessing, for lack of documentation and knowledge, this was added to resolve the challenge Dave is talking about.

type davemtst exec a
?
/* test parse */
? trest = '() trial 1'
? say 'test of () trial 1'
? s = dotell(trest)
? trest = '(1) trial 2'
? say 'test of (1) trial 2'
? s = dotell(trest)
? trest = '(1 3) trial3'
? say 'test of (1 3) trial 3'
? s = dotell(trest)
? exit
?
dotell:
? parse arg with '(' in1 in2 ')' outer
? say 'in1 = /'in1'/'
? say 'in2 = /'in2'/'
? say 'outer=/'outer'/'
? return 0
?
Ready; T=0.01/0.01 09:55:08
davemtst
test of () trial 1
in1 = /)/
in2 = /trial 1/
outer=//
test of (1) trial 2
in1 = /1)/
in2 = /trial 2/
outer=//
test of (1 3) trial 3
in1 = /1/
in2 = /3/
outer=/ trial3/
Ready; T=0.04/0.05 09:55:15

?... Mark S.
This ... and $5.00, might get you a cup of coffee. I'm old enough to remember 25 cents, but not a nickel, for a cup.


Re: Possible bug in BREXX parse instruction

 

On Sun, Dec 12, 2021 at 07:33 AM, Dave Mitchell wrote:
I seem to have stumbled on a bug in the way the parse instruction works in BREXX? specifically when a pattern is used. Here's a sample exec;
/* test parse */?
? trest = '() trial 1'
? say 'test of () trial 1'
? s = dotell(trest)
? trest = '(1) trial 2'
? say 'test of (1) trial 2'
? s = dotell(trest)
? trest = '(1 3) trial3'
? say 'test of (1 3) trial 3'
? s = dotell(trest)
? exit
?
dotell:
? parse arg with '(' in1 in2 ')' outer
? say 'in1 = /'in1'/'
? say 'in2 = /'in2'/'
? say 'outer=/'outer'/'
? return 0
only the third test works as it should, setting 'in1' to '1', 'in2' to '3' and 'outer' to 'trial 3'. The other two cases set 'in1' to ')' and '1) respectively, 'in2' to 'trial 1' and 'trial 2' and 'outer' to a null string.
With the replacement of the GCCLIB segment, I tried this again, and the results are the same.

I've been looking at the REXX syntax definitions, and Mike's definitive book, trying to understand what the C code should be doing.

That said, the definition for parsing using the PARSE ARG, or ARG commands does not appear to identify the right parenthesis as a special character, as it identifies the left parenthesis.

What did not exist in VM/SP 6, and prior was the 'WITH' parameter. I'm guessing, for lack of documentation and knowledge, this was added to resolve the challenge Dave is talking about.

type davemtst exec a
?
/* test parse */
? trest = '() trial 1'
? say 'test of () trial 1'
? s = dotell(trest)
? trest = '(1) trial 2'
? say 'test of (1) trial 2'
? s = dotell(trest)
? trest = '(1 3) trial3'
? say 'test of (1 3) trial 3'
? s = dotell(trest)
? exit
?
dotell:
? parse arg with '(' in1 in2 ')' outer
? say 'in1 = /'in1'/'
? say 'in2 = /'in2'/'
? say 'outer=/'outer'/'
? return 0
?
Ready; T=0.01/0.01 09:55:08
davemtst
test of () trial 1
in1 = /)/
in2 = /trial 1/
outer=//
test of (1) trial 2
in1 = /1)/
in2 = /trial 2/
outer=//
test of (1 3) trial 3
in1 = /1/
in2 = /3/
outer=/ trial3/
Ready; T=0.04/0.05 09:55:15

?... Mark S.
This ... and $5.00, might get you a cup of coffee. I'm old enough to remember 25 cents, but not a nickel, for a cup.


Re: Possible bug in BREXX parse instruction

 

On Sat, Sep 17, 2022 at 01:48 PM, Mike Gro?mann wrote:
I totally forgot about this topic.?
I'll look at it tomorrow, I promise.?
?
Mike
Any luck in finding time?

?... Mark S.


Re: Another Time Zone Question (Sorta)

 

On Sun, Oct 16, 2022 at 12:28 AM, Dave Wade wrote:
However I notice that there are already some change files for DMKSYS which are for generating an 2-CPU nucleus. I wonder are these redundant?
Dave,

I don't have my system available in front of me at the moment but to the best of my recollection those change files were controlling the OPTIONS COPY member, for the support of varying the AP=YES/NO selection in DMKSYS and thus including an extra COPY member in the conditional assembly.

Its been a long time since I ran the AP nucleus (because, really what is the point on a single user system and it doesn't perform that well anyway) but as I recall I didn't use the change files and just manually updated the OPTIONS on the A-disk, with an original OPTIONS COPY on one of the original materials disks.

Regards,
Bob


Re: Another Time Zone Question (Sorta)

 

On Fri 14 Oct 2022 at 20:30:32 -0700, Jim Snellen wrote:
I'm guessing on the replace statement, I'm sure there's an IBM manual
that describes how to code these update statements.
Later CMS versions have some command where you can edit a file with all
updates applied, and where you can create new update files. So I made
something similar (much simpler, I expect).

I called it VMFEE EXEC. I got some inspiration from VMFASM EXEC S.


*
* Usage: VMFEE fn ctlfile
* VMFEE fn ft ctlfile
*
* Like VMFASM, update the given ASSEMBLE file with the UPDATES
* (given as the fn of the CNTRL file)
* but call EE to show the result (using $fn ft A).
*
* If you don't specify the file type, it is assumed to be ASSEMBLE
* like with VMFASM.
*
* If you save changes, a file "$fn UPDATE" is created.
*
* If this file already exists when invoking this exec,
* the updates are not re-done, but you can edit from where you left
* off.
* If you don't save changes, the temporary files are removed.
*
&CONTROL OFF
&IF &INDEX LT 3 &GOTO -ARGS2
-ARGS3 &NAME = &1
&FT = &2
&CNTL = &3
&GOTO -ARGDON

-ARGS2 &NAME = &1
&FT = ASSEMBLE
&CNTL = &2
*
-ARGDON &UPNM = $&NAME
&ANAME = &UPNM
&EDITOR = EE
*
-STSYS STATE &NAME &FT *
&IF &RETCODE EQ 0 &GOTO -STCTL
&TYPE *** &NAME &FT NOT FOUND ***
&EXIT 1
*
-STCTL STATE &CNTL CNTRL *
&IF &RETCODE EQ 0 &GOTO -STUPD
&TYPE *** &CNTL CNTRL NOT FOUND ***
&EXIT 2
* Did we edit this file before?
-STUPD &TYPE STATE &ANAME UPDATE A
STATE &ANAME UPDATE A
&IF &RETCODE EQ 0 &GOTO -DOEDIT
* Do the update
-FUPD UPDATE &NAME &FT * &CNTL CNTRL * ( CTL STK
&IF &RETCODE EQ 40 &ANAME = &NAME
&IF &RETCODE GT 12 &IF &RETCODE NE 40 &GOTO -UPDERR
* Get most recent update level
&IF &READFLAG EQ CONSOLE &GOTO -EXIT
&READ ARGS
&TEXT = &2
&READ ARGS
&ARGS &2 &3 &4 &5 &6 &7 &8 &9
*
&BAKFT = BAK&FT
COPY &ANAME &FT A = &BAKFT = (REPLACE
-DOEDIT &TYPE EDITING &ANAME &FT ... UPDATE &TEXT
&EDITOR &ANAME &FT
&GLOBAL0 = &RETCODE
&TYPE EDITED " &NAME &FT " ... UPDATE " &TEXT "
* Automatically generate some update statements from
* the differences, and put them in fn UPDATE A.
XCOMPARE &ANAME &BAKFT A = &FT = (CMSUPD
* Did the user change something?
STATE &ANAME UPDATE A
&IF &RETCODE EQ 0 &GOTO -UPDATED
* Since we didn't edit the file we may as well remove it
ERASE &ANAME &FT A
ERASE &ANAME &BAKFT A
&GOTO -EXIT
*
-UPDATED
&IF &RETCODE EQ 0 &TYPE UPDATE FILE " &ANAME UPDATE A " CREATED
-EXIT
&EXIT &GLOBAL0

-Olaf.
--
___ "Buying carbon credits is a bit like a serial killer paying someone else to
\X/ have kids to make his activity cost neutral." -The BOFH falu.nl@rhialto


Re: Another Time Zone Question (Sorta)

 

¿ªÔÆÌåÓý

Bertram,

We handle most things folks throw at us. I¡¯ve updated that page to point out later versions are elsewhere.

Dave

?

From: [email protected] <[email protected]> On Behalf Of Bertram Moshier
Sent: 16 October 2022 06:50
To: [email protected]
Subject: Re: [h390-vm] Another Time Zone Question (Sorta)

?

Hello Dave,

?

I got my copy of VM/370 from:

?

?

It is Six Pack 1.3.

?

I got the URL from YouTube watching the Moshix channel.

?

If these are different, how are they different?

?

Does this group handle both or just one line (VM/CE or SixPack)?

?

Thank you,

?

Bertram Moshier

?

On Sat, Oct 15, 2022, 06:40 Dave Wade <dave.g4ugm@...> wrote:

Bertram (and Jim)

?

You don¡¯t say which version of VM you are using! MAINT MEMO B is certainly there on CE1.2 from .

?

You still create modifications using update, its just on the latest CE we have provided a separate minidisk, so when we update the system you can quickly put your own modifications back.

?

For multiple time zones, you can¡¯t just edit the source because you are using UPDATE. You can either have two mods, or just edit your mod. You could even write and EXEC that generates the update and re-builds the nucleus.

?

As for learning about the system, well the original manuals are on BITSAVERS here:-

?

?

and the various memos and help files describe what has been added.

?

In some ways its similar to the CMS in zVM but in other ways its quite different. So most command line commands in vm/370 are still in zVM but you may not need them.

Whilst it has REXX the codebase is totally different¡­..

?

Dave

?

From: [email protected] <[email protected]> On Behalf Of Bertram Moshier
Sent: 15 October 2022 05:52
To: [email protected]
Subject: Re: [h390-vm] Another Time Zone Question (Sorta)

?

Hello Jim,

?

I'm logged into Maint and can't find the file MAINT MEMO *.? The Syspro memo doesn't speak to maint memo.? I can't find the vmsetup command.

?

Like you I would create CP with local mods by modifying the source code using the update command, etc.

?

Where do I start to learn this new system.

?

Thank you.

?

On Fri, Oct 14, 2022, 22:30 Jim Snellen <jsnellen55@...> wrote:

Hello All,
I too, like Jay Maynard, am trying to specify the correct time zone for my location.? I know that DMKSYS is where it's specified, and I know that I want to change?
'SYSTIME ZONE=0,LOC=WEST,ID=GMT' to 'SYSTIME ZONE=5,LOC=WEST,ID=EDT'.? I also know the sequence number is 00220000.

In my past life, I would simply edit DMKSYS ASSEMBLE and be on my way.? Now that I know that's the wrong way to do it, I don't quite know the right way using the E-disk for local mods.

I see that MAINT MEMO B says to use VMSETUP CP to establish the search order.? OK, next I see that DMKLCL CNTRL E identifies where the local changes are (by way of filetype I presume).? ?DMKSYS AUXLCL E should contain an entry like 'LCLnnnDK xxx Change SYSTIME macro to reflect local time zone and ID'.? I don't know what values are supposed to be used for nnn and xxx.? What is the significance of DK? It also appears I need to create a file named 'LCLnnnDK MEMO E' which contains a lengthier description of the modification.? Finally, I assume another file is to be created named 'DMKSYS LCLnnnDK E' that contains:
,/ R 00220000 $ 00220000 1? ? ? ? ? ? ? ? ?mm/dd/yy? hh:mm:ss
? ? ? ? ?SYSTIME ZONE=5,LOC=WEST,ID=EDT? ? ? ? ?LCLnnnDK

I'm guessing on the replace statement, I'm sure there's an IBM manual that describes how to code these update statements.?
After all is done I simply

  1. VMFASM DMKSYS DMKLCL
  2. CP SPOOL PUN *
  3. CP SPOOL PRT *
  4. VMFLOAD CPLOAD DMKLCL
  5. ORDER READER nnnn (for IPL deck)
  6. IPL 00C CLEAR
  7. CLOSE RDR
  8. ORDER RDR nnnn (for print file)
  9. READCARD CPLOAD MAP?
  10. LOGOFF
  11. Re-IPL.



So, that's where I am.? I hope somebody can correct my assumptions and put me on the path to righteousness. (LOL)

PS - Can I have two SYSTIME statements, one for EST and one for EDT?? Is the alternative to rebuild CP each time change?


Re: Another Time Zone Question (Sorta)

 

¿ªÔÆÌåÓý

Bob,

That¡¯s certainly the way I used to do it. I suspect in some situations in the ¡°modern world¡± one might be asked to use UPDATE files simply for change control.

However I notice that there are already some change files for DMKSYS which are for generating an 2-CPU nucleus. I wonder are these redundant?

Dave

?

From: [email protected] <[email protected]> On Behalf Of Bob Polmanter
Sent: 15 October 2022 23:34
To: [email protected]
Subject: Re: [h390-vm] Another Time Zone Question (Sorta)

?

Jim,

I definitely would not use update files and AUX files in order to manage DMKSYS for the purposes of a time zone change.? I realize that VM/CE may be more or less set up for that, but it doesn't mean you have to use it.? My stance might irritate some but it is just overkill for the purpose.

Keep in mind that the three user modifiable CP modules DMKSYS, DMKRIO, and DMKSNT are meant to be customized for the specific installation.? There is no need to preserve the "untouched original IBM code" for these three modules.? It is expected that a system programmer will alter these three files.

If you like, you can save a copy of the original IBM versions on another minidisk, but in all seriousness I would directly edit any of those three as changes are needed, and simply reassemble them as usual using VMFASM DMKxxx DMKLCL.?? I wouldn't use any update or AUX files for these three.? The only possible case I could see would be that update files do provide a sort of history of changes; if that is important to you then use them.? In lieu of that, you could also keep track of important changes with comments in these three modules as well, as you see fit.

I'm practicing what I am preaching here still to this day, just as I did on my real VM system on real hardware for years, back in the day.

Regards,
Bob


Re: Another Time Zone Question (Sorta)

 

Is it possible to run different Herc systems with their own different VM systems. of course on the same PC or different PC connected by means?
?
I have just done a fresh install to have an "untouched" running under a second Hercules.
Of course the port number has to be different from 3270 which is in use by my main system.

fc vm370ce.conf vm370ce.bak?????????????????????
Comparing files vm370ce.conf and VM370CE.BAK?? ?
vm370ce.conf???????????????????????????? ?
ARCHMODE??????? S/370????????????????????????? ?
CNSLPORT??????? 3271?????????????????????????? ?
CODEPAGE??????? 819/1047?????????????????????? ?
VM370CE.BAK????????????????????????????? ?
ARCHMODE??????? S/370????????????????????????? ?
CNSLPORT??????? 3270?????????????????????????? ?
CODEPAGE??????? 819/1047?????????????????????? ?
????????????????????????????????????????? ?