¿ªÔÆÌåÓý


Re: Possible bug in BREXX parse instruction

 

On Tue, Oct 18, 2022 at 02:39 AM, Mark A. Stevens wrote:
Makes me wonder if the VM group should consider using JCC rather than GCC. Do you have? Pros/Cons for these two compilers someplace?

License/ User Agreement

From help/help.htm

JCC and the JCC-Library is not free software.


Re: Possible bug in BREXX parse instruction

 

On Sun, Oct 16, 2022 at 11:11 PM, Mike Gro?mann wrote:
Both versions, Bobs VM and my MVS, are forks
of this original one. But we dropped GCC as?
our compiler and switched to JCC.
Makes me wonder if the VM group should consider using JCC rather than GCC. Do you have? Pros/Cons for these two compilers someplace?

?... Mark S.
Just what we need. one more thing to do.


Re: Three questions about VM/CE (Left, middle, and right field question)

 

-----Original Message-----
From: [email protected] <[email protected]> On Behalf Of Dennis Boone
Sent: 17 October 2022 21:35
To: [email protected]
Subject: Re: [h390-vm] Three questions about VM/CE (Left, middle, and right
field question)

> The IBM ¡°FAL¡± code which used a service machine to handle the > hardware,
and then the user VMs used VMCF to pass the TCPIP traffic > to the service VM

Pretty sure all of the versions I met used IUCV, not VMCF.
You youngster. The original version used VMCF but IUCV was added as an option later.


De
Dave


Re: Three questions about VM/CE (Left, middle, and right field question)

 

The IBM ¡°FAL¡± code which used a service machine to handle the
> hardware, and then the user VMs used VMCF to pass the TCPIP traffic
> to the service VM

Pretty sure all of the versions I met used IUCV, not VMCF.

De


Re: Three questions about VM/CE (Left, middle, and right field question)

 

¿ªÔÆÌåÓý

Bertram,

?

I think it would be challenging to get any ¡°C¡± code similar the ¡°Pi¡± DMR code to run on zVM where you have a modern ¡°C¡± compiler.

The ¡°C¡± compiler in VM/370 is rather old, and the library is the C90 library so is missing many of the routines modern code requires.

In addition, you are limited to a 16Mb virtual machine, unless you start with fiddles.

(My calls are G4UGM and EA7KAE)

?

As other have said adding devices isn¡¯t so hard so long as it approximates to an existing device. Its common to use a pair of devices as many of the device VM supports are treated as semi-half duples.

So when I worked on and X25 package for VM we used a Series/1 which emulated a pair of 3270 screens to pass the X25 traffic into VM

?

As others have said, there is no TCPIP support in VM/370 CE There are fiddles but I am not sure how well these work, I have never tried them.

The IBM ¡°FAL¡± code which used a service machine to handle the hardware, and then the user VMs used VMCF to pass the TCPIP traffic to the service VM

In theory this approach could be used in VM/370 CE as it has VMCF support but it¡¯s a lot of code to write.

?

Whilst there are line-by-line browsers I have found them pretty much un-usable on the modern internet¡­¡­

?

Dave

?

?

From: [email protected] <[email protected]> On Behalf Of Bertram Moshier
Sent: 17 October 2022 09:21
To: [email protected]
Subject: [h390-vm] Three questions about VM/CE (Left, middle, and right field question)

?

Hi,

?

I have three questions.? As a side note, I'm a ham radio operator (WB8ERT) and use DMR.

?

My left field question would be for fellow ham radio operators.? I understand getting a PI-Raspberry to operate as? a transmit and receive DMR.? Just for fun, I'm wondering about doing the same using VM.? Is it possible, in theory?? I think it should be possible.? The DMR code is in C.? SIO to send and receive and yet . . .

?

Middle question:? What is involved in getting herc to see a new device that would then be seen by VM?? I know from my work at Cray Research, Inc, creating hardware for S/370 systems is possible.? We had two hardware devices to talk to a Cray.? One looked like a CTC to the S/370 and the other was by Network Systems.? To our Station software, they looked very similar.? I also worked on the Seagate STK4400 to Cray-1 and Cray-2 interface (using tape connected to the Cray and a 3270 hardware (as I remember) to control the STK for S/370 systems.

?

Right field:? Is there an HTTPD for VM/CE? By this I mean a HTTP server for VM/CE?? OH, is it possible again on VM/CE to run a line by line browser.? (Yeah, I remember using the Internet using a line by line browser (but not on VM).? We connected to an Unix system for our Internet work.

?

Thank you for your time and consideration.

?


Re: Another Time Zone Question (Sorta)

 

¿ªÔÆÌåÓý

This is how we did it when we were running VM/370. We had ASSEMBLE, OLD, NEW versions of DMKRIO and DMKSNT. For DMKSYS, we had ASSEMBLE, EST, EDT. We just copied the right (OLD/NEW) file into ASSEMBLE and built the nucleus. When we made the switch to SEPP, then we also switched to using new update files for EVERY change, even when EST->EDT was the same this year as last year. It was a little tiresome at first but we started doing more UPDATEs for our own application code.

/Tom Kern

On 10/15/2022 6:34 PM, Bob Polmanter wrote:

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: Possible bug in BREXX parse instruction

 

On Mon, Oct 17, 2022 at 02:35 PM, Mike Gro?mann wrote:
The compiler, which unfortunately also processes its instructions sequentially,?
would have to collect all literals first
That's the way Regina works.

?* When the anchor-points are determined, the variables are filled?????? ?
?* in with the parts of the string that comes between each anchor.?????? ?
?* Here is an example:?????????????????????????????????????????????????? ?
?*?????????????????????????????????????????????????????????????????????? ?
?*??? parse value 'That is a parse string!' with a b
'is' c d 'i' e????? ?
?*?????????????????????????????????????????????????????????????????????? ?
?* In this example, there are four anchors in the string, the two??????? ?
?* patterns 'is' and 'i', and the two implicit anchors start-of-string?? ?
?* and end-of-string. They anchor particular locations in the string???? ?
?* to the lists of variables: (a b), (c d) and (e). At the first level?? ?
?* the anchors are found and the text between them are deternmined?????? ?
?* (SOS=Start-Of-String, EOS=End-Of-String):???????????????????????????? ?
?*?????????????????????????????????????????????????????????????????????? ?
?*??????????????????????????? That is a parse string!??????????????????? ?
?*??? anchors??????????? (SOS)-----is------------i---(EOS)?????????????? ?
?*??? strings in-between????? <a b>? <<<<c d>>>>> <e>??????????????????? ?
?*?????????????????????????????????????????????????????????????????????? ?


Re: Possible bug in BREXX parse instruction

 

Hi Mike,
I am?not a bit mad, and I am sorry I gave that impression.

I agree that the literals should be identified first, because they must be
used to separate the string being parsed into smaller sections that
are processed separately. I think you have the right approach,
even if I don't understand?the details of the control flow.
Bob

On Mon, Oct 17, 2022 at 8:35 AM Mike Gro?mann <mike.grossmann.de@...> wrote:
Hey Bob,


as you know my English is not the best. :) So if I misunderstood something, please don't be angry with me.

I know relatively exactly where the problem lies. I just don't have a solution.

I'll try to outline the problem.

The internal compiler processes the template and puts the following statements on the stack:


trest = '() trial 1'
Stck:0 0 NEWCLAUSE
?Stck:0 8 CREATE "TREST"
?Stck:1 24 PUSH "() trial 1"
?Stck:2 48 COPY "() trial 1"

say 'test of () trial 1'
Stck:0 56 NEWCLAUSE
?Stck:0 64 PUSH "test of () trial 1"
?Stck:1 88 SAY "test of () trial 1"

s = dotell(trest)
Stck:0 96 NEWCLAUSE
?Stck:0 104 CREATE "S"
?Stck:1 120 LOAD "TREST"
?Stck:2 144 CALL DOTELL NoArgs=1, Exist=1 Type=other
?Stck:2 248 LOADARG "() trial 1"
?Stck:3 264 COPY2TMP "() trial 1"
?Stck:3 272 PARSE "() trial 1"
?Stck:3 280 PUSH "("
?Stck:4 304 TR_LIT "("

// TR_LIT is trying to set break_end to a reasonable value based on the literal position
DBG> tr_lit: ToParse='() trial 1' - Lit='('
DBG> tr_lit exit) data_start = 1
DBG> tr_lit exit) break_start = 1
DBG> tr_lit exit) break_end = 2

?Stck:3 312 CREATE "WITH"
?Stck:4 328 PVAR

// Here you can see, that the "WITH" keyword is handled as variable, not as keyword.
// "WITH" keyword is not allowed at this context.
DBG> OP_PVAR: BreakStart: 1
DBG> OP_PVAR: BreakEnd: 2
DBG> OP_PVAR: DataStart: 1
DBG> OP_PVAR: DataEnd: 1

?Stck:3 344 TR_SPACE

DBG> tr_space 1) data_start = 1
DBG> tr_space 1) break_start = 1
DBG> tr_space 1) break_end = 2
DBG> tr_space 2) data_start = 2
DBG> tr_space 2) break_start = 3
DBG> tr_space 2) break_end = 4

?Stck:3 352 CREATE "IN1"
?Stck:4 368 PVAR

// OP_PVAR operation will extract a value from the parse string into the in1 variable
DBG> OP_PVAR: BreakStart: 3
DBG> OP_PVAR: BreakEnd: 4
DBG> OP_PVAR: DataStart: 2
DBG> OP_PVAR: DataEnd: 3
DBG> OP_PVAR: extracting value from '() trial 1' ?(2 to 3)

?Stck:3 384 PUSH ")"
?Stck:4 408 TR_LIT ")"

// TR_LIT is trying to set break_end to a reasonable value based on the literal position
DBG> tr_lit: ToParse='() trial 1' - Lit=')'
DBG> tr_lit 1) pattern_pos = 0
DBG> tr_lit 2) data_start = 4
DBG> tr_lit 2) break_start = 11
DBG> tr_lit 2) break_end = 11

?Stck:3 416 CREATE "IN2"
?Stck:4 432 PVAR

// OP_PVAR operation will extract a value from the parse string into the in2 variablev
DBG> OP_PVAR: BreakStart: 11
DBG> OP_PVAR: BreakEnd: 11
DBG> OP_PVAR: DataStart: 4
DBG> OP_PVAR: DataEnd: 11
DBG> OP_PVAR: extracting value from '() trial 1' ?(4 to 11)

?Stck:3 448 TR_END
?Stck:3 456 CREATE "OUTER"
?Stck:4 472 PVAR

// OP_PVAR operation will extract a value from the parse string into the outer variable
DBG> OP_PVAR: BreakStart: 11
DBG> OP_PVAR: BreakEnd: 11
DBG> OP_PVAR: DataStart: 11
DBG> OP_PVAR: DataEnd: 11

?Stck:3 488 POP

Stck:2 504 NEWCLAUSE
?...
?...
?


So, the compiler puts the template on the stack with the information that there must be two variables between two literals.?
The interpreter knows now, which operations (TR_LIT and TR_SPACE and PVALUE) must be executed,?
in order to bring the values from the input string into the variables. Unfortunately, the parsing algorithm cannot handle?
this, if the number of expected variables does not match the "words" in the input string.


To bring it to the point. The compiler, which unfortunately also processes its instructions sequentially,?
would have to collect all literals first, and only then place the template on the stack.?
Then one would have the possibility in the interpreter to process the data, as you described it.


If this makes any sense to you. :)



Mike



Am 17.10.2022 um 13:19 schrieb Bob Bolch <Bob@...>:

Hi Mike,
I don't know where the bad code is, but I expect it is probably in the interpre.c piece.

There is no code that I could find to handle literals in the parse template.?

For example, if we have a string to parse like this one?defined in a variable 'x':

a b c ( d e f? g? h i? j? k?

And a parse template like:

Parse var x one '(' two three four five? ' g'? six?


REXX should:


1. Find the literals in the template. Here they are '(' and 'g'.

2. Separate the string into the literals and the parts that are not literals. Those are:

String:? a b c
Literal: (
String: d e f
Literal: g
String: h i j k

3. We should then assign the template variables, as follows:

Assign value 'a b c' to variable 'one'.
Assign value 'd' to variable 'two'.
Assign value 'e' to variable 'three'.
Assign value 'f' to variable 'four'.
Assign value '' to variable 'five'.
Assign value 'h i j k' to variable 'six'.

t test exec? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
/* */ ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
address COMMAND ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
x = 'a b c ( d e f ?g ?h i ?j ?k' ? ? ? ? ? ? ? ? ?
Parse var x one '(' two three four five ?' g' ?six?
say one ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
say two ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
say three ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
say four ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
say five ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
say six ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
Ready; T=0.01/0.01 07:12:13?



? ? ? ? ? ? test? ? ? ? ? ? ? ? ? ? ? ??
a b c ? ? ? ? ? ? ? ? ? ? ??
d ? ? ? ? ? ? ? ? ? ? ? ? ??
e ? ? ? ? ? ? ? ? ? ? ? ? ??
f ? ? ? ? ? ? ? ? ? ? ? ? ??
? ? ? ? ? ? ? ? ? ? ? ? ? ??
? h i ?j ?k ? ? ? ? ? ? ? ??
Ready; T=0.01/0.01 07:12:34? ?

The key here is to parse subsections of the string by first separating?them,
using the literals found in the parse template.? ?

BREXX doesn't do that on VMCE, or MVS, or in the first implementation by the?
developer. BREXX produces:? ?

test ? ? ? ? ? ? ? ? ? ? ? ?
a b c ? ? ? ? ? ? ? ? ? ? ??
d ? ? ? ? ? ? ? ? ? ? ? ? ??
e ? ? ? ? ? ? ? ? ? ? ? ? ??
f ? ? ? ? ? ? ? ? ? ? ? ? ??
g ?h i ?j ?k ? ? ? ? ? ? ? ?
? ? ? ? ? ? ? ? ? ? ? ? ? ??
Ready; T=0.02/0.02 07:16:28

because it does not process the literals in the parse template correctly.

Bob Bolch?



On Sun, Oct 16, 2022, 1:25 PM Mike Gro?mann <mike.grossmann.de@...> wrote:
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

 

¿ªÔÆÌåÓý

Hey Bob,


as you know my English is not the best. :) So if I misunderstood something, please don't be angry with me.

I know relatively exactly where the problem lies. I just don't have a solution.

I'll try to outline the problem.

The internal compiler processes the template and puts the following statements on the stack:


trest = '() trial 1'
Stck:0 0 NEWCLAUSE
?Stck:0 8 CREATE "TREST"
?Stck:1 24 PUSH "() trial 1"
?Stck:2 48 COPY "() trial 1"

say 'test of () trial 1'
Stck:0 56 NEWCLAUSE
?Stck:0 64 PUSH "test of () trial 1"
?Stck:1 88 SAY "test of () trial 1"

s = dotell(trest)
Stck:0 96 NEWCLAUSE
?Stck:0 104 CREATE "S"
?Stck:1 120 LOAD "TREST"
?Stck:2 144 CALL DOTELL NoArgs=1, Exist=1 Type=other
?Stck:2 248 LOADARG "() trial 1"
?Stck:3 264 COPY2TMP "() trial 1"
?Stck:3 272 PARSE "() trial 1"
?Stck:3 280 PUSH "("
?Stck:4 304 TR_LIT "("

// TR_LIT is trying to set break_end to a reasonable value based on the literal position
DBG> tr_lit: ToParse='() trial 1' - Lit='('
DBG> tr_lit exit) data_start = 1
DBG> tr_lit exit) break_start = 1
DBG> tr_lit exit) break_end = 2

?Stck:3 312 CREATE "WITH"
?Stck:4 328 PVAR

// Here you can see, that the "WITH" keyword is handled as variable, not as keyword.
// "WITH" keyword is not allowed at this context.
DBG> OP_PVAR: BreakStart: 1
DBG> OP_PVAR: BreakEnd: 2
DBG> OP_PVAR: DataStart: 1
DBG> OP_PVAR: DataEnd: 1

?Stck:3 344 TR_SPACE

DBG> tr_space 1) data_start = 1
DBG> tr_space 1) break_start = 1
DBG> tr_space 1) break_end = 2
DBG> tr_space 2) data_start = 2
DBG> tr_space 2) break_start = 3
DBG> tr_space 2) break_end = 4

?Stck:3 352 CREATE "IN1"
?Stck:4 368 PVAR

// OP_PVAR operation will extract a value from the parse string into the in1 variable
DBG> OP_PVAR: BreakStart: 3
DBG> OP_PVAR: BreakEnd: 4
DBG> OP_PVAR: DataStart: 2
DBG> OP_PVAR: DataEnd: 3
DBG> OP_PVAR: extracting value from '() trial 1' ?(2 to 3)

?Stck:3 384 PUSH ")"
?Stck:4 408 TR_LIT ")"

// TR_LIT is trying to set break_end to a reasonable value based on the literal position
DBG> tr_lit: ToParse='() trial 1' - Lit=')'
DBG> tr_lit 1) pattern_pos = 0
DBG> tr_lit 2) data_start = 4
DBG> tr_lit 2) break_start = 11
DBG> tr_lit 2) break_end = 11

?Stck:3 416 CREATE "IN2"
?Stck:4 432 PVAR

// OP_PVAR operation will extract a value from the parse string into the in2 variablev
DBG> OP_PVAR: BreakStart: 11
DBG> OP_PVAR: BreakEnd: 11
DBG> OP_PVAR: DataStart: 4
DBG> OP_PVAR: DataEnd: 11
DBG> OP_PVAR: extracting value from '() trial 1' ?(4 to 11)

?Stck:3 448 TR_END
?Stck:3 456 CREATE "OUTER"
?Stck:4 472 PVAR

// OP_PVAR operation will extract a value from the parse string into the outer variable
DBG> OP_PVAR: BreakStart: 11
DBG> OP_PVAR: BreakEnd: 11
DBG> OP_PVAR: DataStart: 11
DBG> OP_PVAR: DataEnd: 11

?Stck:3 488 POP

Stck:2 504 NEWCLAUSE
?...
?...
?


So, the compiler puts the template on the stack with the information that there must be two variables between two literals.?
The interpreter knows now, which operations (TR_LIT and TR_SPACE and PVALUE) must be executed,?
in order to bring the values from the input string into the variables. Unfortunately, the parsing algorithm cannot handle?
this, if the number of expected variables does not match the "words" in the input string.


To bring it to the point. The compiler, which unfortunately also processes its instructions sequentially,?
would have to collect all literals first, and only then place the template on the stack.?
Then one would have the possibility in the interpreter to process the data, as you described it.


If this makes any sense to you. :)



Mike



Am 17.10.2022 um 13:19 schrieb Bob Bolch <Bob@...>:

Hi Mike,
I don't know where the bad code is, but I expect it is probably in the interpre.c piece.

There is no code that I could find to handle literals in the parse template.?

For example, if we have a string to parse like this one?defined in a variable 'x':

a b c ( d e f? g? h i? j? k?

And a parse template like:

Parse var x one '(' two three four five? ' g'? six?


REXX should:


1. Find the literals in the template. Here they are '(' and 'g'.

2. Separate the string into the literals and the parts that are not literals. Those are:

String:? a b c
Literal: (
String: d e f
Literal: g
String: h i j k

3. We should then assign the template variables, as follows:

Assign value 'a b c' to variable 'one'.
Assign value 'd' to variable 'two'.
Assign value 'e' to variable 'three'.
Assign value 'f' to variable 'four'.
Assign value '' to variable 'five'.
Assign value 'h i j k' to variable 'six'.

t test exec? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
/* */ ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
address COMMAND ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
x = 'a b c ( d e f ?g ?h i ?j ?k' ? ? ? ? ? ? ? ? ?
Parse var x one '(' two three four five ?' g' ?six?
say one ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
say two ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
say three ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
say four ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
say five ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
say six ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
Ready; T=0.01/0.01 07:12:13?



? ? ? ? ? ? test? ? ? ? ? ? ? ? ? ? ? ??
a b c ? ? ? ? ? ? ? ? ? ? ??
d ? ? ? ? ? ? ? ? ? ? ? ? ??
e ? ? ? ? ? ? ? ? ? ? ? ? ??
f ? ? ? ? ? ? ? ? ? ? ? ? ??
? ? ? ? ? ? ? ? ? ? ? ? ? ??
? h i ?j ?k ? ? ? ? ? ? ? ??
Ready; T=0.01/0.01 07:12:34? ?

The key here is to parse subsections of the string by first separating?them,
using the literals found in the parse template.? ?

BREXX doesn't do that on VMCE, or MVS, or in the first implementation by the?
developer. BREXX produces:? ?

test ? ? ? ? ? ? ? ? ? ? ? ?
a b c ? ? ? ? ? ? ? ? ? ? ??
d ? ? ? ? ? ? ? ? ? ? ? ? ??
e ? ? ? ? ? ? ? ? ? ? ? ? ??
f ? ? ? ? ? ? ? ? ? ? ? ? ??
g ?h i ?j ?k ? ? ? ? ? ? ? ?
? ? ? ? ? ? ? ? ? ? ? ? ? ??
Ready; T=0.02/0.02 07:16:28

because it does not process the literals in the parse template correctly.

Bob Bolch?



On Sun, Oct 16, 2022, 1:25 PM Mike Gro?mann <mike.grossmann.de@...> wrote:
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: Three questions about VM/CE (Left, middle, and right field question)

 

¿ªÔÆÌåÓý

The answer to your middle question is A LOT of work. ?All of it in C and coded to Hercules internal constructs.

However, there is no need to create a "new" device for Internet connectivity. ?The issue is not Hercules, but the guest OS (VM I am assuming) lacks TCP/IP intelligence. ?At this vintage of guest operating system, Hercules offers the TCPIP instruction. ?It allows non-privileged access to the host's native TCP interface for connecting to a host socket. ?This interface has been used to support TCP on MVS. ?What VM/370 work would be required to allow a CMS virtual machine to do the same is an unanswered question.

There are a number of "devices" already supported by Hercules for IP connectivity. ?Again, this vintage of VM knows nothing about these Hercules devices, per se. ?Someone who understands the internals of VM/370 would be able to assist with connecting such a device to a CMS guest. ?Some of these device uses CTC channel protocol that VM/370 understands. ?I think the work there is much less. ?Getting CMS the "intelligence" to use the CTC device is another challenge. ?The MVS programs that use the TCPIP instruction might provide a foundation for coding a server or client program.

Just a few thoughts on your "middle" question.

Harold Grovesteen

On Mon, 2022-10-17 at 03:21 -0500, Bertram Moshier wrote:
Hi,

I have three questions.? As a side note, I'm a ham radio operator (WB8ERT) and use DMR.

My left field question would be for fellow ham radio operators.? I understand getting a PI-Raspberry to operate as? a transmit and receive DMR.? Just for fun, I'm wondering about doing the same using VM.? Is it possible, in theory?? I think it should be possible.? The DMR code is in C.? SIO to send and receive and yet . . .

Middle question:? What is involved in getting herc to see a new device that would then be seen by VM?? I know from my work at Cray Research, Inc, creating hardware for S/370 systems is possible.? We had two hardware devices to talk to a Cray.? One looked like a CTC to the S/370 and the other was by Network Systems.? To our Station software, they looked very similar.? I also worked on the Seagate STK4400 to Cray-1 and Cray-2 interface (using tape connected to the Cray and a 3270 hardware (as I remember) to control the STK for S/370 systems.

Right field:? Is there an HTTPD for VM/CE? By this I mean a HTTP server for VM/CE?? OH, is it possible again on VM/CE to run a line by line browser.? (Yeah, I remember using the Internet using a line by line browser (but not on VM).? We connected to an Unix system for our Internet work.

Thank you for your time and consideration.


Re: Possible bug in BREXX parse instruction

 

¿ªÔÆÌåÓý

Hello Martin,


thank you very much for this test tool. It¡¯s working great on MVS, too.

?READY ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
rx ptest $ % cats$dogs%wolves bears boars ? ? ? ? ?
?BREXX/370 V2R5M1 (Oct 14 2022) ? ? ? ? ? ? ? ? ? ?
?DELIMITER_1 = $ ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
?DELIMITER_2 = % ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
?TEMPLATE = OUTER_L'$'INNER_L INNER_R'%'OUTER_R ? ?
?STRING_TO_PARSE = cats$dogs%wolves bears boars ? ?
?OUTER_L = /cats/ ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
?INNER_L = /dogs%wolves/ ? ? ? ? ? ? ? ? ? ? ? ? ??
?INNER_R = /bears boars/ ? ? ? ? ? ? ? ? ? ? ? ? ??
?OUTER_R = // ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
?READY ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??

Best, Mike ?



Am 17.10.2022 um 13:04 schrieb Martin Scheffler <San-Lorenzo@...>:

$ % cats$dogs%wolves bears boars


Re: Possible bug in BREXX parse instruction

 

A quick look into?????? Regina\parsing.c :

/*?????????????????????????????????????????????????????????????????????? ?
?* This implementation of the REXX parse template is quite near to?????? ?
?* what Cowlishaw specified in his book, but there is one very?????????? ?
?* important difference. Cowlishaw sees a template as patterns and?????? ?
?* variables, with patterns in each end (and some of the patterns??????? ?
?* and/or the variables might be empty).???????????????????????????????? ?
?*?????????????????????????????????????????????????????????????????????? ?
?* The concept here is any sequence of variables and patterns, and?????? ?
?* the system is parsed into two levels and interpreted as such.???????? ?
?* First there is the level of patterns, which is anchored to??????????? ?
?* particular locations in the string to be parsed.????????????????????? ?
?*?????????????????????????????????????????????????????????????????????? ?
?* When the anchor-points are determined, the variables are filled?????? ?
?* in with the parts of the string that comes between each anchor.?????? ?
?* Here is an example:?????????????????????????????????????????????????? ?
?*?????????????????????????????????????????????????????????????????????? ?
?*??? parse value 'That is a parse string!' with a b 'is' c d 'i' e????? ?
?*?????????????????????????????????????????????????????????????????????? ?
?* In this example, there are four anchors in the string, the two??????? ?
?* patterns 'is' and 'i', and the two implicit anchors start-of-string?? ?
?* and end-of-string. They anchor particular locations in the string???? ?
?* to the lists of variables: (a b), (c d) and (e). At the first level?? ?
?* the anchors are found and the text between them are deternmined?????? ?
?* (SOS=Start-Of-String, EOS=End-Of-String):???????????????????????????? ?
?*?????????????????????????????????????????????????????????????????????? ?
?*??????????????????????????? That is a parse string!??????????????????? ?
?*??? anchors??????????? (SOS)-----is------------i---(EOS)?????????????? ?
?*??? strings in-between????? <a b>? <<<<c d>>>>> <e>??????????????????? ?
?*?????????????????????????????????????????????????????????????????????? ?
?* Now, we have a set of substrings, and to each substring, there is???? ?
?* possibly empty set of variable which are to receive its value from??? ?
?* the contents of that substring. Doing that, we get:?????????????????? ?
?*?????????????????????????????????????????????????????????????????????? ?
?*??? (a b) = 'That '??????? ==> a='That'?? b=' '??????????????????????? ?
?*??? (c d) = ' a parse str' ==> c='a'????? c=' parse str'?????????????? ?
?*??? (e)?? = 'ng!'????????? ==> e='ng!'???????????????????????????????? ?
?*?????????????????????????????????????????????????????????????????????? ?
?* To some extent, one might say that there are one anchor between?????? ?
?* each variable, since these match a sequence of blank characters.????? ?
?* However, these have less priority than the explicit patterns.???????? ?
?*?????????????????????????????????????????????????????????????????????? ?
?* This file makes available three functions:??????????????????????????? ?
?*?????????????????????????????????????????????????????????????????????? ?
?*?? doparse()????? parses a single string into a single template??????? ?
?*?? parseargtree() parses a set of strings into a set of templates????? ?
?*?? bmstrstr()???? implementation of Boyer-Moore string search????????? ?
?*/????????????????????????????????????????????????????????????????????? ?


Re: Possible bug in BREXX parse instruction

 

Hi Bernd,

On VMCE 1.1.2:


1. Logon MAINTC.
2. The tools for maintaining the GCC runtime are on the 19c at filemode 'T'.
3. Establish the brexx code search?order with the command 'BRXSRCH'
? ? a. 193 is the C compiler output TEXT files for BREXX
? ? b. 393 is the compiler source
? ? c. 394 is the H files provided by the? GCC compiler
? ? d. 194 is the GCCLIB?MACLIB need to compile BREXX
4. The compiler is built with these tools:
? ? a. BRXASM?compiles the assembler code on the 393 disk
? ? b. BRXCOMP compiles the C code on the 393 disk
? ? c. BRXGEN?creates the executable output file: BREXX TEXT and BREXX MAP
5. BREXX is integrated into CMS, so perform these steps to install it on MAINT.
? ? LOGON MAINT
? ? DEFINE STOR 16M
? ? IPL 190 CLEAR
? ? NEWBREXX
? ? IPL 190 CLEAR
? ? SAVESYS CMS
? ? DEFINE STOR 15M
? ? IPL CMS

There are HELP files on the MAINTC T disk for these commands.
Before using them, rename the HELP files with filetype?'HELPCMD' to have
filetype 'HELPCM$'.

Bob Bolch
? ??


On Sun, Oct 16, 2022, 5:20 PM Bernd Oppolzer via <berndoppolzer=[email protected]> wrote:

Hello Mark and Bob,

I would like to help you (if I can) with diagnosing the problem in BREXX.
Maybe we could switch this communication to private.

A list of all sources and includes (in C, AFAIK), which are needed to build BREXX,
would be very helpful. And the MDISK where it can be found (I guess it
is part of the VM distribution, or maybe Turnkey MVS - same version?).

Kind regards

Bernd


Am 16.10.2022 um 22:51 schrieb Bob Bolch:
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

 

Hi Mike,
I don't know where the bad code is, but I expect it is probably in the interpre.c piece.

There is no code that I could find to handle literals in the parse template.?

For example, if we have a string to parse like this one?defined in a variable 'x':

a b c ( d e f? g? h i? j? k?

And a parse template like:

Parse var x one '(' two three four five? ' g'? six?


REXX should:


1. Find the literals in the template. Here they are '(' and 'g'.

2. Separate the string into the literals and the parts that are not literals. Those are:

String:? a b c
Literal: (
String: d e f
Literal: g
String: h i j k

3. We should then assign the template variables, as follows:

Assign value 'a b c' to variable 'one'.
Assign value 'd' to variable 'two'.
Assign value 'e' to variable 'three'.
Assign value 'f' to variable 'four'.
Assign value '' to variable 'five'.
Assign value 'h i j k' to variable 'six'.

t test exec? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
/* */ ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
address COMMAND ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
x = 'a b c ( d e f ?g ?h i ?j ?k' ? ? ? ? ? ? ? ? ?
Parse var x one '(' two three four five ?' g' ?six
say one ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
say two ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
say three ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
say four ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
say five ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
say six ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
Ready; T=0.01/0.01 07:12:13?



? ? ? ? ? ? test? ? ? ? ? ? ? ? ? ? ? ??
a b c ? ? ? ? ? ? ? ? ? ? ?
d ? ? ? ? ? ? ? ? ? ? ? ? ?
e ? ? ? ? ? ? ? ? ? ? ? ? ?
f ? ? ? ? ? ? ? ? ? ? ? ? ?
? ? ? ? ? ? ? ? ? ? ? ? ? ?
? h i ?j ?k ? ? ? ? ? ? ? ?
Ready; T=0.01/0.01 07:12:34? ?

The key here is to parse subsections of the string by first separating?them,
using the literals found in the parse template.? ?

BREXX doesn't do that on VMCE, or MVS, or in the first implementation by the?
developer. BREXX produces:? ?

test ? ? ? ? ? ? ? ? ? ? ? ?
a b c ? ? ? ? ? ? ? ? ? ? ?
d ? ? ? ? ? ? ? ? ? ? ? ? ?
e ? ? ? ? ? ? ? ? ? ? ? ? ?
f ? ? ? ? ? ? ? ? ? ? ? ? ?
g ?h i ?j ?k ? ? ? ? ? ? ? ?
? ? ? ? ? ? ? ? ? ? ? ? ? ?
Ready; T=0.02/0.02 07:16:28

because it does not process the literals in the parse template correctly.

Bob Bolch?



On Sun, Oct 16, 2022, 1:25 PM Mike Gro?mann <mike.grossmann.de@...> wrote:
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

 

I have rewritten the test tool: literal delimiters and string_to_parse are supplied as arguments.
Usage instructions included.

????????????????????????????????????????????????????????????????????????????????????????????????
?davtest?????????????????????????????????????????????????????????????????????????????????????? ?
CMS bREXX 1.0.1 Jul? 5 2022??????????????????????????????????????????????????????????????????? ?
CMS COMMAND davtest davtest??????????????????????????????????????????????????????????????????? ?
?????????????????????????????????????????????????????????????????????????????????????????????? ?
Test tool to research bREXX parsing error, see???????????????????????????????????????????????? ?
?/g/h390-vm/topic/87676003??????????????????????????????????????????????????? ?
?https://github.com/s390guy/vm370/issues/56??????????????????????????????????????????????????? ?
?????????????????????????????????????????????????????????????????????????????????????????????? ?
?????????????????????????????????????????????????????????????????????????????????????????????? ?
Usage:?? davtest???? delimiter_1?? delimiter_2????? string_to_parse??????????????????????????? ?
?????????????????????????????????????????????????????????????????????????????????????????????? ?
Example:?? davtest $ % cats$dogs%wolves bears boars??????????????????????????????????????????? ?
?????????????????????????????????????????????????????????????????????????????????????????????? ?
Ready(00001); T=0.03/0.04 08:53:16???????????????????????????????????????????????????????????? ?
?davtest $ % cats$dogs%wolves bears boars????????????????????????????????????????????????????? ?
CMS bREXX 1.0.1 Jul? 5 2022??????????????????????????????????????????????????????????????????? ?
delimiter_1 = $??????????????????????????????????????????????????????????????????????????????? ?
delimiter_2 = %??????????????????????????????????????????????????????????????????????????????? ?
template = outer_l'$'inner_l inner_r'%'outer_r???????????????????????????????????????????????? ?
string_to_parse = cats$dogs%wolves bears boars???????????????????????????????????????????????? ?
outer_l = /cats/?????????????????????????????????????????????????????????????????????????????? ?
inner_l = /dogs%wolves/??????????????????????????????????????????????????????????????????????? ?
inner_r = /bears boars/??????????????????????????????????????????????????????????????????????? ?
outer_r = //?????????????????????????????????????????????????????????????????????????????????? ?
Ready; T=0.03/0.03 08:53:28??????????????????????????????????????????????????????????????????? ?
?????????????????????????????????????????????????????????????????????????????????????????????? ?
?davtest?????????????????????????????????????????????????????????????????????????????????????? ?
REXX370 4.02 01 Dec 1998?????????????????????????????????????????????????????????????????????? ?
CMS COMMAND DAVTEST EXEC A1 davtest CMS??????????????????????????????????????????????????????? ?
?????????????????????????????????????????????????????????????????????????????????????????????? ?
Test tool to research bREXX parsing error, see???????????????????????????????????????????????? ?
?/g/h390-vm/topic/87676003??????????????????????????????????????????????????? ?
?https://github.com/s390guy/vm370/issues/56??????????????????????????????????????????????????? ?
?????????????????????????????????????????????????????????????????????????????????????????????? ?
?????????????????????????????????????????????????????????????????????????????????????????????? ?
Usage:?? DAVTEST???? delimiter_1?? delimiter_2????? string_to_parse??????????????????????????? ?
?????????????????????????????????????????????????????????????????????????????????????????????? ?
Example:?? DAVTEST $ % cats$dogs%wolves bears boars??????????????????????????????????????????? ?
?????????????????????????????????????????????????????????????????????????????????????????????? ?
Ready(00001); T=0.01/0.01 03:50:31???????????????????????????????????????????????????????????? ?
?DAVTEST $ % cats$dogs%wolves bears boars????????????????????????????????????????????????????? ?
REXX370 4.02 01 Dec 1998?????????????????????????????????????????????????????????????????????? ?
delimiter_1 = $??????????????????????????????????????????????????????????????????????????????? ?
delimiter_2 = %??????????????????????????????????????????????????????????????????????????????? ?
template = outer_l'$'inner_l inner_r'%'outer_r???????????????????????????????????????????????? ?
string_to_parse = cats$dogs%wolves bears boars???????????????????????????????????????????????? ?
outer_l = /cats/?????????????????????????????????????????????????????????????????????????????? ?
inner_l = /dogs/?????????????????????????????????????????????????????????????????????????????? ?
inner_r = //?????????????????????????????????????????????????????????????????????????????????? ?
outer_r = /wolves bears boars/???????????????????????????????????????????????????????????????? ?
Ready; T=0.01/0.01 03:50:41??????????????????????????????????????????????????????????????????? ?
?????????????????????????????????????????????????????????????????????????????????????????????? ?
*** side by side:????????????????????????????????????????????????????????????????????????????? ?
???????????????????????????????????????????????????????????????????????????????????????????????
?davtest $ % cats$dogs%wolves bears boars??????? DAVTEST $ % cats$dogs%wolves bears boars????? ?
CMS bREXX 1.0.1 Jul? 5 2022???????????????????? REXX370 4.02 01 Dec 1998?????????????????????? ?
delimiter_1 = $???????????????????????????????? delimiter_1 = $??????????????????????????????? ?
delimiter_2 = %???????????????????????????????? delimiter_2 = %??????????????????????????????? ?
template = outer_l'$'inner_l inner_r'%'outer_r? template = outer_l'$'inner_l inner_r'%'outer_r ?
string_to_parse = cats$dogs%wolves bears boars? string_to_parse = cats$dogs%wolves bears boars ?
outer_l = /cats/??????????????????????????????? outer_l = /cats/?????????????????????????????? ?
inner_l = /dogs%wolves/???????????????????????? inner_l = /dogs/?????????????????????????????? ?
inner_r = /bears boars/???????????????????????? inner_r = //?????????????????????????????????? ?
outer_r = //??????????????????????????????????? outer_r = /wolves bears boars/???????????????? ?
Ready; T=0.03/0.03 08:53:28???????????????????? Ready; T=0.01/0.01 03:50:41??????????????????? ?
?????????????????????????????????????????????????????????????????????????????????????????????? ?
File: DAVTEST? EXEC???? A1?????? RECFM: V LRECL: 125(255) Lines:??? 40 Current:??? 12????????? ?
====>????????????????????????????????????????????????????????????????????????????????????????? ?
??? 0 * * * Top of file * * *????????????????????????????????????????????????????????????????? ?
??? 1 /* REXX */?????????????????????????????????????????????????????????????????????????????? ?
??? 2 signal on novalue??????????????????????????????????????????????????????????????????????? ?
??? 3 parse version v????????????????????????????????????????????????????????????????????????? ?
??? 4 say v??????????????????????????????????????????????????????????????????????????????????? ?
??? 5 parse source? s????????????????????????????????????????????????????????????????????????? ?
??? 6????????????????????????????????????????????????????????????????????????????????????????? ?
??? 7 parse arg delimiter_1 delimiter_2 string_to_parse??????????????????????????????????????? ?
??? 8 if strip(string_to_parse) = "" then signal usage???????????????????????????????????????? ?
??? 9????????????????????????????????????????????????????????????????????????????????????????? ?
?? 10 template = "outer_l'"delimiter_1"'inner_l inner_r'"delimiter_2"'outer_r"???????????????? ?
?? 11 say "delimiter_1 =" delimiter_1????????????????????????????????????????????????????????? ?
?? 12 say "delimiter_2 =" delimiter_2????????????????????????????????????????????????????????? ?
?? 13 say "template =" template??????????????????????????????????????????????????????????????? ?
?? 14 say "string_to_parse =" string_to_parse????????????????????????????????????????????????? ?
?? 15????????????????????????????????????????????????????????????????????????????????????????? ?
?? 16 interpret "parse var string_to_parse" template?????????????????????????????????????????? ?
?? 17 say "outer_l = /"outer_l"/"????????????????????????????????????????????????????????????? ?
?? 18 say "inner_l = /"inner_l"/"????????????????????????????????????????????????????????????? ?
?? 19 say "inner_r = /"inner_r"/"????????????????????????????????????????????????????????????? ?
?? 20 say "outer_r = /"outer_r"/"????????????????????????????????????????????????????????????? ?
?? 21 exit 0?????????????????????????????????????????????????????????????????????????????????? ?
?? 22????????????????????????????????????????????????????????????????????????????????????????? ?
?? 23 usage:?????????????????????????????????????????????????????????????????????????????????? ?
?? 24 say s??????????????????????????????????????????????????????????????????????????????????? ?
?? 25 parse var s . . my_name .??????????????????????????????????????????????????????????????? ?
?? 26 say " "????????????????????????????????????????????????????????????????????????????????? ?
?? 27 say "Test tool to research bREXX parsing error, see"???????????????????????????????????? ?
?? 28 say " /g/h390-vm/topic/87676003"??????????????????????????????????????? ?
?? 29 say " https://github.com/s390guy/vm370/issues/56"??????????????????????????????????????? ?
?? 30 say " "????????????????????????????????????????????????????????????????????????????????? ?
?? 31 say " "????????????????????????????????????????????????????????????????????????????????? ?
?? 32 say "Usage:? " my_name "??? delimiter_1?? delimiter_2????? string_to_parse "???????????? ?
?? 33 say " "????????????????????????????????????????????????????????????????????????????????? ?
?? 34 say "Example:? " my_name "$ % cats$dogs%wolves bears boars"????????????????????????????? ?
?? 35 say " "????????????????????????????????????????????????????????????????????????????????? ?
?? 36 exit 1?????????????????????????????????????????????????????????????????????????????????? ?
?? 37 novalue:???????????????????????????????????????????????????????????????????????????????? ?
?? 38 say "*** ABORT: NOVALUE condition in line" sigl????????????????????????????????????????? ?
?? 39 say "***" sourceline(sigl)?????????????????????????????????????????????????????????????? ?
?? 40 exit 777???????????????????????????????????????????????????????????????????????????????? ?
????? * * * End of file * * *????????????????????????????????????????????????????????????????? ?
Unchanged?????????????????????????????????? ee V1.2.5_2022-10-08_12:50:00,? 5 File(s)????????? ?


Re: Three questions about VM/CE (Left, middle, and right field question)

 

On Mon, Oct 17, 2022 at 10:21 AM, Bertram Moshier wrote:
Right field:? Is there an HTTPD for VM/CE?
There is no TCP/IP in VM/CE.
See - an early IBM implementation.

Martin


Three questions about VM/CE (Left, middle, and right field question)

 

Hi,

I have three questions.? As a side note, I'm a ham radio operator (WB8ERT) and use DMR.

My left field question would be for fellow ham radio operators.? I understand getting a PI-Raspberry to operate as? a transmit and receive DMR.? Just for fun, I'm wondering about doing the same using VM.? Is it possible, in theory?? I think it should be possible.? The DMR code is in C.? SIO to send and receive and yet . . .

Middle question:? What is involved in getting herc to see a new device that would then be seen by VM?? I know from my work at Cray Research, Inc, creating hardware for S/370 systems is possible.? We had two hardware devices to talk to a Cray.? One looked like a CTC to the S/370 and the other was by Network Systems.? To our Station software, they looked very similar.? I also worked on the Seagate STK4400 to Cray-1 and Cray-2 interface (using tape connected to the Cray and a 3270 hardware (as I remember) to control the STK for S/370 systems.

Right field:? Is there an HTTPD for VM/CE? By this I mean a HTTP server for VM/CE?? OH, is it possible again on VM/CE to run a line by line browser.? (Yeah, I remember using the Internet using a line by line browser (but not on VM).? We connected to an Unix system for our Internet work.

Thank you for your time and consideration.


Re: Possible bug in BREXX parse instruction

 

¿ªÔÆÌåÓý

Hello,

I don¡¯t think, the problem is related to template.c
In my understanding, this code used by the compiler?
and will just create the interpreter stack.
The Problem may occur in interpre.c.?
There is some logic to find the values between the literals?'('?and?')¡®.?
OP_TR_LIT and OP_TR_SPACE.

I¡¯m in debugging mode ;)



Mike ?

Am 16.10.2022 um 22:35 schrieb Mark A. Stevens via <marXtevens@...>:

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

 


Hello Mark,


For MVS there is another version:


This version is not based on gcclib.

The MVS version mentioned by you, is the original multi platform version of brexx.

Both versions, Bobs VM and my MVS, are forks
of this original one. But we dropped GCC as?
our compiler and switched to JCC.


Best, Mile?





Mark A. Stevens via <marXtevens=[email protected]> schrieb am Mo. 17. Okt. 2022 um 02:22:

On Sun, Oct 16, 2022 at 04:20 PM, Bernd Oppolzer wrote:

I would like to help you (if I can) with diagnosing the problem in BREXX.
Maybe we could switch this communication to private.

A list of all sources and includes (in C, AFAIK), which are needed to build BREXX,
would be very helpful. And the MDISK where it can be found (I guess it
is part of the VM distribution, or maybe Turnkey MVS - same version?).

There are CMS & MVS versions on GitHub. They are not identical to each other. They both make use of GCCLIB, but I'm not sure if there is an exact, up to date copy of GCCLIB on GitHub for either CMS, or MVS. I'm pretty sure Dave W. or Bob B. would know the answer.

The URLs are:

CMS



MVS (There are several, so I'm guessing this is the correct one, based on references to the author in other discussions) A search for BREXX on all of GitHub will show the other contenders.



All the code that builds GCCLIB and BREXX for CMS are on the MAINTC minidisks.? There are a number of EXECs and HELPCMDs on the T disk to set up disk access, compile, and build. The file TOOLDISK MEMO T1, is the overview.

L MAINTC
ENTER PASSWORD:
?
DASD 190 LINKED R/O; R/W BY MAINT; R/O BY 005 USERS
DASD 19D LINKED R/O; R/W BY MAINT; R/O BY 003 USERS
DASD 19E LINKED R/O; R/W BY MAINT; R/O BY 005 USERS
FILES: 020 RDR,? NO PRT,? NO PUN
LOGON AT 19:15:07 GMT SUNDAY 10/16/22
VM Community Edition V1 R1.2
?
Y (19E) R/O
U (19D) R/O
Ready; T=0.01/0.01 19:15:09
q disk
Label? CUU M? Stat? Cyl Type Blksize?? Files? Blks Used-(%) Blks Left? Blk Total
MNT191 191 A?? R/W?? 50 3350? 800???????? 16?????? 2013-07????? 26487????? 28500
CMSDSK 190 S?? R/O?? 59 3350? 800??????? 172????? 19537-58????? 14093????? 33630
MNT19C 19C T?? R/W?? 50 3350? 800???????? 40??????? 159-01????? 28341????? 28500
MNT29D 19D U/S R/O?? 30 3350? 800??????? 407?????? 6242-37????? 10858????? 17100
MNT19E 19E Y/S R/O?? 70 3350? 800??????? 706????? 27458-69????? 12442????? 39900
Ready; T=0.01/0.01 19:15:12

I Hope This Helps.

?... Mark S.

--
Von Gmail Mobile gesendet


Re: Another Time Zone Question (Sorta)

 

Hello Mark,

Thank you so very much for your reply!? I will remove SixPack 1.3 in favor of the more recent VM/CE release.

I greatly appreciate knowing this information.

I don't know if someone here has the power, but it would be nice for the SixPack website to denote VM/CE supercedes it.

Thank you again.

On Sun, Oct 16, 2022, 19:06 Mark A. Stevens via <marXtevens=[email protected]> wrote:
On Sun, Oct 16, 2022 at 06:44 PM, Bertram Moshier wrote:
I'm not finding anything about VM/CE 1.2 and if it came after SixPack 1.3 or before it.
?
Concerning Maint Memo B, unfortunately, the SixPack 1.3 version Maint ID doesn't have a 535 drive.??
Sixpack 1.3 preceded all the VM/370 CE releases. MAINT 535, a play on SES, by the way, was added to VM/370 CE V1R1... I forget which exact release. You are missing that minidisk on 1.3, so you won't see MAINT MEMO. On VM/370 CE you won't see SYSPROG MEMO, as it would confuse everyone, as it 'competes' with MAINT MEMO.

Should someone develop either CP or CMS code, how does the person make it available for either SixPack or VM/CE?
As an example, I posted ASSIST for VM/370 in the files section of this discussion group. Bob Bolch took that and added it to VM/370 CE V1R1.2.
An aside, that code should run on 1.3, but if it doesn';t, please let me know, and I will see what I can do to make it so.

Which one is better: SixPack 1.3 or VM/CE 1.2?
VM/370 CE V1... comes after the Sixpack 1.3 and contains almost everything the Sixpack has, with the exception of SYSPROG MEMO and some other files that were removed, because they were broken, or incomplete. ASSIST comes to mind.

?... Mark S.
Better? is the enemy of Good Enough. Jerry Pournelle

?