¿ªÔÆÌåÓý


Re: #VMCE #rexx EE goes XEDIT - compiling a wish list #VMCE #rexx

 

CONGRATULATIONS!!!


On Sat, Nov 12, 2022, 01:39 Martin Scheffler <San-Lorenzo@...> wrote:
The spirit has left the bottle and will never return: EE has run its first REXX macro.

This version is still incomplete and not stable enough for public display.
Now there is MUCH legwork to be done with the EXTRACT command ... and all existing EE commands have to "learn" how to provide an XEDIT-compatible return code.

Martin

The REXX macro below produces the same results on LCM+L's VM/SP Release 5.


File: PRIMEXED LISTING? A1?? RECFM: V LRECL: 125(125) Lines:? 100 Current:?? 12?
?====>???????????????????????????????????????????????????????????????????????? ?
??? 0 * * * Top of File * * *????????????????????????????????????????????????? ?
??? 1 1 is prime?????????????????????????????????????????????????????????????? ?
??? 2 2 is prime?????????????????????????????????????????????????????????????? ?
??? 3 3 is prime?????????????????????????????????????????????????????????????? ?
??? 4 4 = 2*2????????????????????????????????????????????????????????????????? ?
??? 5 5 is prime?????????????????????????????????????????????????????????????? ?
??? 6 6 = 2*3????????????????????????????????????????????????????????????????? ?
??? 7 7 is prime?????????????????????????????????????????????????????????????? ?
??? 8 8 = 2*2*2??????????????????????????????????????????????????????????????? ?
??? 9 9 = 3*3????????????????????????????????????????????????????????????????? ?
?? 10 10 = 2*5???????????????????????????????????????????????????????????????? ?
?? 11 11 is prime????????????????????????????????????????????????????????????? ?
?? 12 12 = 2*2*3?????????????????????????????????????????????????????????????? ?
?? 13 13 is prime????????????????????????????????????????????????????????????? ?
?? 14 14 = 2*7???????????????????????????????????????????????????????????????? ?
?? 15 15 = 3*5???????????????????????????????????????????????????????????????? ?
?? 16 16 = 2*2*2*2???????????????????????????????????????????????????????????? ?
?? 17 17 is prime????????????????????????????????????????????????????????????? ?
?? 18 18 = 2*3*3?????????????????????????????????????????????????????????????? ?
?? 19 19 is prime????????????????????????????????????????????????????????????? ?
?? 20 20 = 2*2*5?????????????????????????????????????????????????????????????? ?
?? 21 21 = 3*7???????????????????????????????????????????????????????????????? ?
?? 22 22 = 2*11??????????????????????????????????????????????????????????????? ?
?? 23 23 is prime????????????????????????????????????????????????????????????? ?
Modified?????????????????????????????????? XeDiT V1.3.0_221112-0730,? 6 File(s)
?
?????????????????????????????????????????????????????????????????????????????? ?
?????????????????????????????????????????????????????????????????????????????? ?
File: PRIMEXED EXEC???? A1?? RECFM: V LRECL: 125(255) Lines:?? 33 Current:?? 12
?
?====>???????????????????????????????????????????????????????????????????????? ?
??? 0 * * * Top of File * * *????????????????????????????????????????????????? ?
??? 1 /* REXX */?????????????????????????????????????????????????????????????? ?
??? 2 address "XEDIT"????????????????????????????????????????????????????????? ?
??? 3????????????????????????????????????????????????????????????????????????? ?
??? 4 default = 23???????????????????????????????????????????????????????????? ?
??? 5 parse arg limit .??????????????????????????????????????????????????????? ?
??? 6 if datatype(limit,"W") = 0 then limit = default????????????????????????? ?
??? 7 if limit < 7 then limit = default??????????????????????????????????????? ?
??? 8 prime. = "0"???????????????????????????????????????????????????????????? ?
??? 9 number. = "0"??????????????????????????????????????????????????????????? ?
?? 10????????????????????????????????????????????????????????????????????????? ?
?? 11 "bottom"???????????????????????????????????????????????????????????????? ?
?? 12 do i = 1 to limit??????????????????????????????????????????????????????? ?
?? 13?? is_prime = 1 /* in the beginning we assume it is prime */????????????? ?
?? 14?? factors = ""?????????????????????????????????????????????????????????? ?
?? 15?? m = i????????????????????????????????????????????????????????????????? ?
?? 16?? do j = 2 to prime.0??????????????????????????????????????????????????? ?
?? 17???? do forever?????????????????????????????????????????????????????????? ?
?? 18?????? if (m // prime.j) <> 0 then leave????????????????????????????????? ?
?? 19?????? is_prime = 0?????????????????????????????????????????????????????? ?
?? 20?????? factors = factors"*"prime.j??????????????????????????????????????? ?
?? 21?????? m = m % prime.j??????????????????????????????????????????????????? ?
?? 22???? end????????????????????????????????????????????????????????????????? ?
?? 23?? end??????????????????????????????????????????????????????????????????? ?
?? 24?? if is_prime = 1 then do??????????????????????????????????????????????? ?
?? 25???? k = prime.0 + 1????????????????????????????????????????????????????? ?
?? 26???? prime.k = i????????????????????????????????????????????????????????? ?
?? 27???? prime.0 = k????????????????????????????????????????????????????????? ?
?? 28???? "input" i "is prime"???????????????????????????????????????????????? ?
?? 29?? end??????????????????????????????????????????????????????????????????? ?
?? 30?? else do??????????????????????????????????????????????????????????????? ?
?? 31???? "input" i "=" substr(factors,2)????????????????????????????????????? ?
?? 32?? end??????????????????????????????????????????????????????????????????? ?
?? 33 end????????????????????????????????????????????????????????????????????? ?
?? 34 * * * End of File * * *????????????????????????????????????????????????? ?
Unchanged????????????????????????????????? XeDiT V1.3.0_221112-0730,? 7 File(s)
?


Re: #VMCE #rexx EE goes XEDIT - compiling a wish list #VMCE #rexx

 

The spirit has left the bottle and will never return: EE has run its first REXX macro.

This version is still incomplete and not stable enough for public display.
Now there is MUCH legwork to be done with the EXTRACT command ... and all existing EE commands have to "learn" how to provide an XEDIT-compatible return code.

Martin

The REXX macro below produces the same results on LCM+L's VM/SP Release 5.


File: PRIMEXED LISTING? A1?? RECFM: V LRECL: 125(125) Lines:? 100 Current:?? 12?
?====>???????????????????????????????????????????????????????????????????????? ?
??? 0 * * * Top of File * * *????????????????????????????????????????????????? ?
??? 1 1 is prime?????????????????????????????????????????????????????????????? ?
??? 2 2 is prime?????????????????????????????????????????????????????????????? ?
??? 3 3 is prime?????????????????????????????????????????????????????????????? ?
??? 4 4 = 2*2????????????????????????????????????????????????????????????????? ?
??? 5 5 is prime?????????????????????????????????????????????????????????????? ?
??? 6 6 = 2*3????????????????????????????????????????????????????????????????? ?
??? 7 7 is prime?????????????????????????????????????????????????????????????? ?
??? 8 8 = 2*2*2??????????????????????????????????????????????????????????????? ?
??? 9 9 = 3*3????????????????????????????????????????????????????????????????? ?
?? 10 10 = 2*5???????????????????????????????????????????????????????????????? ?
?? 11 11 is prime????????????????????????????????????????????????????????????? ?
?? 12 12 = 2*2*3?????????????????????????????????????????????????????????????? ?
?? 13 13 is prime????????????????????????????????????????????????????????????? ?
?? 14 14 = 2*7???????????????????????????????????????????????????????????????? ?
?? 15 15 = 3*5???????????????????????????????????????????????????????????????? ?
?? 16 16 = 2*2*2*2???????????????????????????????????????????????????????????? ?
?? 17 17 is prime????????????????????????????????????????????????????????????? ?
?? 18 18 = 2*3*3?????????????????????????????????????????????????????????????? ?
?? 19 19 is prime????????????????????????????????????????????????????????????? ?
?? 20 20 = 2*2*5?????????????????????????????????????????????????????????????? ?
?? 21 21 = 3*7???????????????????????????????????????????????????????????????? ?
?? 22 22 = 2*11??????????????????????????????????????????????????????????????? ?
?? 23 23 is prime????????????????????????????????????????????????????????????? ?
Modified?????????????????????????????????? XeDiT V1.3.0_221112-0730,? 6 File(s)
?
?????????????????????????????????????????????????????????????????????????????? ?
?????????????????????????????????????????????????????????????????????????????? ?
File: PRIMEXED EXEC???? A1?? RECFM: V LRECL: 125(255) Lines:?? 33 Current:?? 12
?
?====>???????????????????????????????????????????????????????????????????????? ?
??? 0 * * * Top of File * * *????????????????????????????????????????????????? ?
??? 1 /* REXX */?????????????????????????????????????????????????????????????? ?
??? 2 address "XEDIT"????????????????????????????????????????????????????????? ?
??? 3????????????????????????????????????????????????????????????????????????? ?
??? 4 default = 23???????????????????????????????????????????????????????????? ?
??? 5 parse arg limit .??????????????????????????????????????????????????????? ?
??? 6 if datatype(limit,"W") = 0 then limit = default????????????????????????? ?
??? 7 if limit < 7 then limit = default??????????????????????????????????????? ?
??? 8 prime. = "0"???????????????????????????????????????????????????????????? ?
??? 9 number. = "0"??????????????????????????????????????????????????????????? ?
?? 10????????????????????????????????????????????????????????????????????????? ?
?? 11 "bottom"???????????????????????????????????????????????????????????????? ?
?? 12 do i = 1 to limit??????????????????????????????????????????????????????? ?
?? 13?? is_prime = 1 /* in the beginning we assume it is prime */????????????? ?
?? 14?? factors = ""?????????????????????????????????????????????????????????? ?
?? 15?? m = i????????????????????????????????????????????????????????????????? ?
?? 16?? do j = 2 to prime.0??????????????????????????????????????????????????? ?
?? 17???? do forever?????????????????????????????????????????????????????????? ?
?? 18?????? if (m // prime.j) <> 0 then leave????????????????????????????????? ?
?? 19?????? is_prime = 0?????????????????????????????????????????????????????? ?
?? 20?????? factors = factors"*"prime.j??????????????????????????????????????? ?
?? 21?????? m = m % prime.j??????????????????????????????????????????????????? ?
?? 22???? end????????????????????????????????????????????????????????????????? ?
?? 23?? end??????????????????????????????????????????????????????????????????? ?
?? 24?? if is_prime = 1 then do??????????????????????????????????????????????? ?
?? 25???? k = prime.0 + 1????????????????????????????????????????????????????? ?
?? 26???? prime.k = i????????????????????????????????????????????????????????? ?
?? 27???? prime.0 = k????????????????????????????????????????????????????????? ?
?? 28???? "input" i "is prime"???????????????????????????????????????????????? ?
?? 29?? end??????????????????????????????????????????????????????????????????? ?
?? 30?? else do??????????????????????????????????????????????????????????????? ?
?? 31???? "input" i "=" substr(factors,2)????????????????????????????????????? ?
?? 32?? end??????????????????????????????????????????????????????????????????? ?
?? 33 end????????????????????????????????????????????????????????????????????? ?
?? 34 * * * End of File * * *????????????????????????????????????????????????? ?
Unchanged????????????????????????????????? XeDiT V1.3.0_221112-0730,? 7 File(s)
?


Re: TN3270 and various versions.

 

Bertram Moshier wrote:

Hi,

I'm wonder if WC3270 supports 132xNN and 3279. Also how
do I get it to use 132 columns, color, etc?

I really need the wider screen to read various files, etc.
I'm surprised no one mentioned Tom Brennan's Vista 3270:

*

It supports custom screen sizes up to 99 lines by 200 characters wide.

It's not free, but is reasonably priced ($30), a *very* nice product IMO, and was written by a former IBM mainframe system programmer as well:

*

--
"Fish" (David B. Trout)
Software Development Laboratories

mail: fish@...


Re: TN3270 and various versions.

 

On Thu, Nov 10, 2022 at 01:26 PM, Bob Bolch wrote:
Does ZOC distribute its own IND$FILE MODULE?
See A sobering finding (Re: Automatic generation of transcoding tables for IND$FILE)

ZOC only implements the terminal side, it uses the IND$FILE already installed on the mainframe:
  • ZOC works best with IBM's IND$FILE on z/VM 6.4
  • ZOC works best with MECAFF IND$FILE on VM/370 CE if you have done COPY VISTA IND$MAP Y2 DEFAULT IND$MAP A1 before
  • ZOC works best with MECAFF IND$FILE on LCM+L's VM/SP 5 if you have managed to create such a DEFAULT IND$MAP A1
Do not forget to set ZOC to Code Page 1047.

Martin


Re: TN3270 and various versions.

 

¿ªÔÆÌåÓý

Hi Betram,

according to this, WC3270 does support a 3278 Model 5, so your 132 columns display should be fine:


-model?name
The model of 3270 display to be emulated. The model name is in two parts, either of which may be omitted:

The first part is the?base model, which is either?3278?or?3279.?3278?specifies a monochrome (green on black) 3270 display;?3279?specifies a color 3270 display.

The second part is the?model number, which specifies the number of rows and columns. Model 4 is the default.

Model Number Columns Rows
2 80 24
3 80 32
4 80 43
5 132 27

Note: Technically, there is no such 3270 display as a 3279-4 or 3279-5, but most hosts seem to work with them anyway.

The default model is?3279-4.


But as a disclaimer, I am not a Windows user and the X3270 can do all of these things, so I can only point to the manual page.

Thomas


On 11/10/22 10:39, Bertram Moshier wrote:
Hi,

I'm wonder if WC3270 supports 132xNN and 3279.? Also how do I get it to use 132 columns, color, etc?

I really need the wider screen to read various files, etc.

Thank you.


-- 
This e-mail may contain confidential and/or privileged information. If you are
not the intended recipient (or have received this e-mail in error) please notify
the sender immediately and destroy this e-mail. Any unauthorised copying,
disclosure or distribution of the material in this e-mail or of parts hereof is strictly
forbidden.

We have taken precautions to minimize the risk of transmitting software
viruses but nevertheless advise you to carry out your own virus checks on any
attachment of this message. We accept no liability for loss or damage caused
by software viruses except in case of gross negligence or willful behaviour.

Any e-mail messages from us are sent in good faith, but shall not be
binding or construed as constituting any kind of obligation on our part.

--------------------------

Diese E-Mail enthaelt vertrauliche und/oder rechtlich geschuetzte
Informationen. Wenn Sie nicht der richtige Adressat sind oder diese E-Mail
irrtuemlich erhalten haben, informieren Sie bitte sofort den Absender und
vernichten Sie diese E-Mail. Das unerlaubte Kopieren sowie die unbefugte
Weitergabe dieser E-Mail oder von Teilen dieser E-Mail ist nicht gestattet.

Wir haben alle verkehrsueblichen Massnahmen unternommen, um das Risiko
der Verbreitung virenbefallener Software oder E-Mails zu minimieren, dennoch
raten wir Ihnen, Ihre eigenen Virenkontrollen auf alle Anhaenge an dieser
Nachricht durchzufuehren. Wir schliessen ausser fuer den Fall von Vorsatz
oder grober Fahrlaessigkeit die Haftung fuer jeglichen Verlust oder Schaeden
durch virenbefallene Software oder E-Mails aus.

Jede von uns versendete E-Mail ist sorgfaeltig erstellt worden, dennoch
schliessen wir die rechtliche Verbindlichkeit aus; sie kann nicht zu einer
irgendwie gearteten Verpflichtung zu unseren Lasten ausgelegt werden.


Re: TN3270 and various versions.

 

¿ªÔÆÌåÓý

That mention revived some pleasant memories.? ZOC became my 'go-to' dial-up terminal program, replacing ProCOMM Plus (under Win/OS2) back in my OS/2 days.


DeWayne

On 11/10/22 05:08, Martin Scheffler wrote:

ZOC (commercial software for MS Windows and macOS) has a very generous evluation policy. It has 3279 132x27 wide screen and 3270 IND$FILE Transfer inside. Sample screenshot.


Re: TN3270 and various versions.

 

Hi Martin,
Does ZOC distribute its own IND$FILE MODULE? The one from MECAFF is only documented to
work on the Vista emulator and on WC3270. I can't distribute any IBM IND$FILE MODULE on VMCE,
but the MECAFF version does not work consistently?on the Blue Zone emulator that I use, from
Rocket Software. I am looking for a better IND$FILE.
Thanks/Bob Bolch


On Thu, Nov 10, 2022 at 7:08 AM Martin Scheffler <San-Lorenzo@...> wrote:
ZOC (commercial software for MS Windows and macOS) has a very generous evluation policy. It has 3279 132x27 wide screen and 3270 IND$FILE Transfer inside. Sample screenshot.


Re: TN3270 and various versions.

 

ZOC (commercial software for MS Windows and macOS) has a very generous evluation policy. It has 3279 132x27 wide screen and 3270 IND$FILE Transfer inside. Sample screenshot.


TN3270 and various versions.

 

Hi,

I'm wonder if WC3270 supports 132xNN and 3279.? Also how do I get it to use 132 columns, color, etc?

I really need the wider screen to read various files, etc.

Thank you.


Re: Possible bug in BREXX parse instruction

 

I've been following this thread about possible bug in the Parse instruction, and thought I might weigh in.? While the desired behavior would be to break the parse target on literals first, my reading of the Rexx "bible" and my own experience in Rexx programming leads me to believe that such is not the case.? I learned to parse on literals first:

Arg parm_string '(' option_string

Then apply blank-delimited token parsing

Parse Upper Value parm_string with mode fn ft fm fx .

FWIW,

Jim




Re: #VMCE #rexx EE goes XEDIT - compiling a wish list #VMCE #rexx

 

¿ªÔÆÌåÓý

OK. I get it. ?It isn't different C libraries. ?In modern terms there are two separate ABI (application binary interface) stacks that do not communicate between each other.

Or, perhaps a better description is a way for either program to know how to call the other or how to share data with each other.

Yes, a bit "yucky" to deal with to say the least. ?Some assembler somewhere will likely do the "trick".

Thanks, for the explanation,
Harold Grovesteen

On Tue, 2022-11-08 at 14:04 -0500, Bob Bolch wrote:
Martin is exactly right. What I call "the C runtime environment" is the CMSCRAB control block which?
is basically the R13 save area for the currently running C function, and other pointers for stack control
followed by automatic?variables for the running function. One GCC program can call another, of course,
but there are no read/write areas common to multiple C programs. EE can call BREXX, but only using
CMSCALL (SVC 202 in VM/370). BREXX can't run a subroutine that is part of EE (without some tricks :-).
Bob

On Tue, Nov 8, 2022 at 11:19 AM Martin Scheffler <San-Lorenzo@...> wrote:
On Tue, Nov 8, 2022 at 04:52 PM, Harold Grovesteen wrote:
can you help me understand how we ended up with two distinct C runtime environments?
It is the dynamic data, not the code.

  • a user "kicks" CMS to start EE, EE initializes its runtime data
  • EE calls CMS for macro execution
  • CMS sees "/*" and starts bREXX, bREXX initializes its very own runtime data
  • the macro wants to execute an EE subcommand, EE had setup itself as subcommand handler before
  • CMS calls EE's subcommand handler, but has no knowledge about EE's already existing runtime data

IBM had to solve this problem when they made XEDIT, EXEC 2 did the job on VM/SP 1+2


Re: #VMCE #rexx EE goes XEDIT - compiling a wish list #VMCE #rexx

 

Martin is exactly right. What I call "the C runtime environment" is the CMSCRAB control block which?
is basically the R13 save area for the currently running C function, and other pointers for stack control
followed by automatic?variables for the running function. One GCC program can call another, of course,
but there are no read/write areas common to multiple C programs. EE can call BREXX, but only using
CMSCALL (SVC 202 in VM/370). BREXX can't run a subroutine that is part of EE (without some tricks :-).
Bob

On Tue, Nov 8, 2022 at 11:19 AM Martin Scheffler <San-Lorenzo@...> wrote:
On Tue, Nov 8, 2022 at 04:52 PM, Harold Grovesteen wrote:
can you help me understand how we ended up with two distinct C runtime environments?
It is the dynamic data, not the code.

  • a user "kicks" CMS to start EE, EE initializes its runtime data
  • EE calls CMS for macro execution
  • CMS sees "/*" and starts bREXX, bREXX initializes its very own runtime data
  • the macro wants to execute an EE subcommand, EE had setup itself as subcommand handler before
  • CMS calls EE's subcommand handler, but has no knowledge about EE's already existing runtime data

IBM had to solve this problem when they made XEDIT, EXEC 2 did the job on VM/SP 1+2


Re: #VMCE #rexx EE goes XEDIT - compiling a wish list #VMCE #rexx

 

On Tue, Nov 8, 2022 at 04:52 PM, Harold Grovesteen wrote:
can you help me understand how we ended up with two distinct C runtime environments?
It is the dynamic data, not the code.

  • a user "kicks" CMS to start EE, EE initializes its runtime data
  • EE calls CMS for macro execution
  • CMS sees "/*" and starts bREXX, bREXX initializes its very own runtime data
  • the macro wants to execute an EE subcommand, EE had setup itself as subcommand handler before
  • CMS calls EE's subcommand handler, but has no knowledge about EE's already existing runtime data

IBM had to solve this problem when they made XEDIT, EXEC 2 did the job on VM/SP 1+2


Re: #VMCE #rexx EE goes XEDIT - compiling a wish list #VMCE #rexx

 

¿ªÔÆÌåÓý

On Tue, 2022-11-08 at 08:39 -0500, Bob Bolch wrote:
Hi Martin,
You are correct in that CMS calling sequences, program management structure, and interface to
supervisor services know nothing about the GCC compiler runtime interface.?
Enabling EE to use BREXX macros is further complicated by the fact that there are two separate
and distinct C runtime environments in play (one in EE, and the other in BREXX).

As I am not in the weeds like some of you, can you help me understand how we ended up with two distinct C runtime environments? And how did you run into the same thing with BREXX?
Just curious.

Did we not use GCC to compile these programs?

And also a little confused.

Harold Grovesteen


A similar?set of issues are present and solved in my implementation of EXECCOMM for BREXX.
I do think BREXX macros for EE can be made to work, but it is going to require an in depth knowledge?
of both GCC and CMS internals to make it happen.

Bob Bolch


On Tue, Nov 8, 2022 at 4:43 AM Martin Scheffler <San-Lorenzo@...> wrote:
On Mon, Nov 7, 2022 at 02:15 AM, Martin Scheffler wrote:
There might be an incompatibilty of calling conventions.
It is R13. AFAIK CMS does not know anything about GCCCRAB, therefore the SUBCOM entry handler does not know what R13 should point to.? @DSTAKIN expects specific things through R13, see file? DYNSTK ASSEMBLE H1???? on?? GCCCMS??? .

File: DYNSTK?? ASSEMBLE H1?????????????????????????????????????????????? ?
===>???????????????????????????????????????????????????????????????????? ?
?? 11 * ?
?? 12 *??????????????????????????????????????????????????????????????? * ?
?? 13 * Assembler stubs for the dynamic stack implemetation??????????? * ?
?? 14 * These routines are called from PDPEPIL and PDPPRLG MACROs????? * ?
?? 15 * To maximise performance, as they have not got a save area they * ?
?? 16 * can use to save registers, and because Adrian's lack of??????? * ?
?? 17 * experience these use a register based linkage:???????????????? * ?
?? 18 *?? R5 for the base (called address)???????????????????????????? * ?
?? 19 *?? R15 is used by callers - should not be touched?????????????? * ?
?? 20 *?? R14 Return Address?????????????????????????????????????????? * ?
?? 21 *?? R13 Save Area / stack frame being manipulated??????????????? * ?
?? 22 *?? R12 is the callers base address - should not be touched????? * ?
?? 23 *??????????????????????????????????????????????????????????????? * ?
?? 24 * ?
?? 25 *??????????????????????????????????????????????????????????????? * ?
?? 26 DYNSTK?? CSECT???????????????????????????????????????????????????? ?
?? 27 *????????????????????????????????????????????????????????????????? ?
?? 28 * ?
?? 29 * @DSTAKIN - Into a new strack frame???????????????????????????? * ?
?? 30 * The point of this stub is to call MORESTAK when the current??? * ?
?? 31 * stack bin is used up?????????????????????????????????????????? * ?
?? 32 * ?
?? 33 * Parameters (see also this file's header)???????????????????????? ?
?? 34 *?? R9 - Stack Space requested???????????????????????????????????? ?
?? 35 * Register Usage:????????????????????????????????????????????????? ?
?? 36 *?? R11 - End of STACK BIN???????????????????????????????????????? ?
?? 37 *?? R8 - GCCCRAB?????????????????????????????????????????????????? ?
?? 38 *?? R7 - Next Available byte on the Stack (i.e. the new save area) ?
?? 39 *?? R6 - The end of the requested area in current bin (might be??? ?
?? 40 *??????? too big). The next free space after the new frame.??????? ?
?? 41 *?? R0 - Work Register???????????????????????????????????????????? ?
?? 42 *?? R1 - MORESTAK parameter pointer??????????????????????????????? ?
?? 43 *?? R2 - Saved R1 during MORESTAK Call???????????????????????????? ?
?? 44 *?? R3 - Saved R14 during MORESTAK call??????????????????????????? ?
?? 45 * Output?????????????????????????????????????????????????????????? ?
?? 46 *?? R13 - New Frame??????????????????????????????????????????????? ?
?? 47 * ?
?? 48????????? ENTRY @DSTAKIN??????????????????????????????????????????? ?
?? 49 @DSTAKIN DS??? 0H????????????????????????????????????????????????? ?
?? 50????????? USING @DSTAKIN,R5???????????????????????????????????????? ?
?? 51????????? USING CMSCRAB,R13???????????????????????????????????????? ?
?? 52????????? L???? R8,GCCCRABA????? get address of the GCCCRAB???????? ?
?? 53????????? USING GCCCRAB,R8????????????????????????????????????????? ?
?? 54 * Get the dynamic stack information pointer??????????????????????? ?
?? 55????????? L???? R11,DSTACK???? Get the dynamic stack control??????? ?
?? 56 *????????????????????????????? from R13 save area reserved word??? ?
?? 57????????? LA??? R11,0(,R11)??? Remove flag bits???????????????????? ?
?? 58 * Get new save area in R7????????????????????????????????????????? ?
?? 59????????? L???? R7,STACKNXT??? get next available byte in GCC stack ?
?? 60 *?????????????????????????????? from the CMSCRAB work area???????? ?
?? 61 * Get the address after the frame of the required size in R6?????? ?
?? 62????????? LA??? R6,0(R7,R9)??? point to end of R9 sized stack?????? ?
?? 63 * Have we enough space???????????????????????????????????????????? ?
?? 64????????? CR??? R6,R11???????? Request bigger than available??????? ?
?? 65????????? BNH?? OKSTACK???????????????????????????????????????????? ?
?? 66????????? CLI?? DSTACK,X'01'?? Check stack flags??????????????????? ?
?? 67????????? BL??? OKSTACK??????? If flag is zero, no check is done??? ?
?? 68 * Insufficient space in this stack segment, allocate some????????? ?
?? 69????????? BE??? OVERFLOW?????? If static, then overflow error?????? ?
?? 70 *????????????????????????????????????????????????????????????????? ?
?? 71 * Calling MORESTAK???????????????????????????????????????????????? ?
?? 72????????? LR??? R3,R14?????????? Return address to PDPPRLG????????? ?
?? 73????????? LR??? R2,R1??????????? Hold R1 (C function parms)???????? ?
?? 74 *????????????????????????????????????????????????????????????????? ?
?? 75 * MORESTAK needs a two word parameter list.??????????????????????? ?
?? 76 *????????? Word 1 is the address of the current stack frame??????? ?
?? 77 *????????? Word 2 is the frame size requested????????????????????? ?
?? 78????????? LR??? R6,R13?????????? Pointer to current stack frame???? ?
?? 79????????? LR??? R7,R9??????????? Frame size wanted????????????????? ?

._,_._,_

Groups.io Links:

You receive all messages sent to this group.

View/Reply Online (#4667) | Reply To Group | Reply To Sender | Mute This Topic | New Topic
Mute #vmce | Mute #rexx
Your Subscription | Contact Group Owner | Unsubscribe [h.grovsteen@...]

_._,_._,_


Re: #VMCE #rexx EE goes XEDIT - compiling a wish list #VMCE #rexx

 

Hi Martin,
You are correct in that CMS calling sequences, program management structure, and interface to
supervisor services know nothing about the GCC compiler runtime interface.?
Enabling EE to use BREXX macros is further complicated by the fact that there are two separate
and distinct C runtime environments in play (one in EE, and the other in BREXX).

A similar?set of issues are present and solved in my implementation of EXECCOMM for BREXX.
I do think BREXX macros for EE can be made to work, but it is going to require an in depth knowledge?
of both GCC and CMS internals to make it happen.

Bob Bolch


On Tue, Nov 8, 2022 at 4:43 AM Martin Scheffler <San-Lorenzo@...> wrote:
On Mon, Nov 7, 2022 at 02:15 AM, Martin Scheffler wrote:
There might be an incompatibilty of calling conventions.
It is R13. AFAIK CMS does not know anything about GCCCRAB, therefore the SUBCOM entry handler does not know what R13 should point to.? @DSTAKIN expects specific things through R13, see file? DYNSTK ASSEMBLE H1???? on?? GCCCMS??? .

File: DYNSTK?? ASSEMBLE H1?????????????????????????????????????????????? ?
===>???????????????????????????????????????????????????????????????????? ?
?? 11 * ?
?? 12 *??????????????????????????????????????????????????????????????? * ?
?? 13 * Assembler stubs for the dynamic stack implemetation??????????? * ?
?? 14 * These routines are called from PDPEPIL and PDPPRLG MACROs????? * ?
?? 15 * To maximise performance, as they have not got a save area they * ?
?? 16 * can use to save registers, and because Adrian's lack of??????? * ?
?? 17 * experience these use a register based linkage:???????????????? * ?
?? 18 *?? R5 for the base (called address)???????????????????????????? * ?
?? 19 *?? R15 is used by callers - should not be touched?????????????? * ?
?? 20 *?? R14 Return Address?????????????????????????????????????????? * ?
?? 21 *?? R13 Save Area / stack frame being manipulated??????????????? * ?
?? 22 *?? R12 is the callers base address - should not be touched????? * ?
?? 23 *??????????????????????????????????????????????????????????????? * ?
?? 24 * ?
?? 25 *??????????????????????????????????????????????????????????????? * ?
?? 26 DYNSTK?? CSECT???????????????????????????????????????????????????? ?
?? 27 *????????????????????????????????????????????????????????????????? ?
?? 28 * ?
?? 29 * @DSTAKIN - Into a new strack frame???????????????????????????? * ?
?? 30 * The point of this stub is to call MORESTAK when the current??? * ?
?? 31 * stack bin is used up?????????????????????????????????????????? * ?
?? 32 * ?
?? 33 * Parameters (see also this file's header)???????????????????????? ?
?? 34 *?? R9 - Stack Space requested???????????????????????????????????? ?
?? 35 * Register Usage:????????????????????????????????????????????????? ?
?? 36 *?? R11 - End of STACK BIN???????????????????????????????????????? ?
?? 37 *?? R8 - GCCCRAB?????????????????????????????????????????????????? ?
?? 38 *?? R7 - Next Available byte on the Stack (i.e. the new save area) ?
?? 39 *?? R6 - The end of the requested area in current bin (might be??? ?
?? 40 *??????? too big). The next free space after the new frame.??????? ?
?? 41 *?? R0 - Work Register???????????????????????????????????????????? ?
?? 42 *?? R1 - MORESTAK parameter pointer??????????????????????????????? ?
?? 43 *?? R2 - Saved R1 during MORESTAK Call???????????????????????????? ?
?? 44 *?? R3 - Saved R14 during MORESTAK call??????????????????????????? ?
?? 45 * Output?????????????????????????????????????????????????????????? ?
?? 46 *?? R13 - New Frame??????????????????????????????????????????????? ?
?? 47 * ?
?? 48????????? ENTRY @DSTAKIN??????????????????????????????????????????? ?
?? 49 @DSTAKIN DS??? 0H????????????????????????????????????????????????? ?
?? 50????????? USING @DSTAKIN,R5???????????????????????????????????????? ?
?? 51????????? USING CMSCRAB,R13???????????????????????????????????????? ?
?? 52????????? L???? R8,GCCCRABA????? get address of the GCCCRAB???????? ?
?? 53????????? USING GCCCRAB,R8????????????????????????????????????????? ?
?? 54 * Get the dynamic stack information pointer??????????????????????? ?
?? 55????????? L???? R11,DSTACK???? Get the dynamic stack control??????? ?
?? 56 *????????????????????????????? from R13 save area reserved word??? ?
?? 57????????? LA??? R11,0(,R11)??? Remove flag bits???????????????????? ?
?? 58 * Get new save area in R7????????????????????????????????????????? ?
?? 59????????? L???? R7,STACKNXT??? get next available byte in GCC stack ?
?? 60 *?????????????????????????????? from the CMSCRAB work area???????? ?
?? 61 * Get the address after the frame of the required size in R6?????? ?
?? 62????????? LA??? R6,0(R7,R9)??? point to end of R9 sized stack?????? ?
?? 63 * Have we enough space???????????????????????????????????????????? ?
?? 64????????? CR??? R6,R11???????? Request bigger than available??????? ?
?? 65????????? BNH?? OKSTACK???????????????????????????????????????????? ?
?? 66????????? CLI?? DSTACK,X'01'?? Check stack flags??????????????????? ?
?? 67????????? BL??? OKSTACK??????? If flag is zero, no check is done??? ?
?? 68 * Insufficient space in this stack segment, allocate some????????? ?
?? 69????????? BE??? OVERFLOW?????? If static, then overflow error?????? ?
?? 70 *????????????????????????????????????????????????????????????????? ?
?? 71 * Calling MORESTAK???????????????????????????????????????????????? ?
?? 72????????? LR??? R3,R14?????????? Return address to PDPPRLG????????? ?
?? 73????????? LR??? R2,R1??????????? Hold R1 (C function parms)???????? ?
?? 74 *????????????????????????????????????????????????????????????????? ?
?? 75 * MORESTAK needs a two word parameter list.??????????????????????? ?
?? 76 *????????? Word 1 is the address of the current stack frame??????? ?
?? 77 *????????? Word 2 is the frame size requested????????????????????? ?
?? 78????????? LR??? R6,R13?????????? Pointer to current stack frame???? ?
?? 79????????? LR??? R7,R9??????????? Frame size wanted????????????????? ?


Re: #VMCE #rexx EE goes XEDIT - compiling a wish list #VMCE #rexx

 

On Mon, Nov 7, 2022 at 02:15 AM, Martin Scheffler wrote:
There might be an incompatibilty of calling conventions.
It is R13. AFAIK CMS does not know anything about GCCCRAB, therefore the SUBCOM entry handler does not know what R13 should point to.? @DSTAKIN expects specific things through R13, see file? DYNSTK ASSEMBLE H1???? on?? GCCCMS??? .

File: DYNSTK?? ASSEMBLE H1?????????????????????????????????????????????? ?
===>???????????????????????????????????????????????????????????????????? ?
?? 11 * ?
?? 12 *??????????????????????????????????????????????????????????????? * ?
?? 13 * Assembler stubs for the dynamic stack implemetation??????????? * ?
?? 14 * These routines are called from PDPEPIL and PDPPRLG MACROs????? * ?
?? 15 * To maximise performance, as they have not got a save area they * ?
?? 16 * can use to save registers, and because Adrian's lack of??????? * ?
?? 17 * experience these use a register based linkage:???????????????? * ?
?? 18 *?? R5 for the base (called address)???????????????????????????? * ?
?? 19 *?? R15 is used by callers - should not be touched?????????????? * ?
?? 20 *?? R14 Return Address?????????????????????????????????????????? * ?
?? 21 *?? R13 Save Area / stack frame being manipulated??????????????? * ?
?? 22 *?? R12 is the callers base address - should not be touched????? * ?
?? 23 *??????????????????????????????????????????????????????????????? * ?
?? 24 * ?
?? 25 *??????????????????????????????????????????????????????????????? * ?
?? 26 DYNSTK?? CSECT???????????????????????????????????????????????????? ?
?? 27 *????????????????????????????????????????????????????????????????? ?
?? 28 * ?
?? 29 * @DSTAKIN - Into a new strack frame???????????????????????????? * ?
?? 30 * The point of this stub is to call MORESTAK when the current??? * ?
?? 31 * stack bin is used up?????????????????????????????????????????? * ?
?? 32 * ?
?? 33 * Parameters (see also this file's header)???????????????????????? ?
?? 34 *?? R9 - Stack Space requested???????????????????????????????????? ?
?? 35 * Register Usage:????????????????????????????????????????????????? ?
?? 36 *?? R11 - End of STACK BIN???????????????????????????????????????? ?
?? 37 *?? R8 - GCCCRAB?????????????????????????????????????????????????? ?
?? 38 *?? R7 - Next Available byte on the Stack (i.e. the new save area) ?
?? 39 *?? R6 - The end of the requested area in current bin (might be??? ?
?? 40 *??????? too big). The next free space after the new frame.??????? ?
?? 41 *?? R0 - Work Register???????????????????????????????????????????? ?
?? 42 *?? R1 - MORESTAK parameter pointer??????????????????????????????? ?
?? 43 *?? R2 - Saved R1 during MORESTAK Call???????????????????????????? ?
?? 44 *?? R3 - Saved R14 during MORESTAK call??????????????????????????? ?
?? 45 * Output?????????????????????????????????????????????????????????? ?
?? 46 *?? R13 - New Frame??????????????????????????????????????????????? ?
?? 47 * ?
?? 48????????? ENTRY @DSTAKIN??????????????????????????????????????????? ?
?? 49 @DSTAKIN DS??? 0H????????????????????????????????????????????????? ?
?? 50????????? USING @DSTAKIN,R5???????????????????????????????????????? ?
?? 51????????? USING CMSCRAB,R13???????????????????????????????????????? ?
?? 52????????? L???? R8,GCCCRABA????? get address of the GCCCRAB???????? ?
?? 53????????? USING GCCCRAB,R8????????????????????????????????????????? ?
?? 54 * Get the dynamic stack information pointer??????????????????????? ?
?? 55????????? L???? R11,DSTACK???? Get the dynamic stack control??????? ?
?? 56 *????????????????????????????? from R13 save area reserved word??? ?
?? 57????????? LA??? R11,0(,R11)??? Remove flag bits???????????????????? ?
?? 58 * Get new save area in R7????????????????????????????????????????? ?
?? 59????????? L???? R7,STACKNXT??? get next available byte in GCC stack ?
?? 60 *?????????????????????????????? from the CMSCRAB work area???????? ?
?? 61 * Get the address after the frame of the required size in R6?????? ?
?? 62????????? LA??? R6,0(R7,R9)??? point to end of R9 sized stack?????? ?
?? 63 * Have we enough space???????????????????????????????????????????? ?
?? 64????????? CR??? R6,R11???????? Request bigger than available??????? ?
?? 65????????? BNH?? OKSTACK???????????????????????????????????????????? ?
?? 66????????? CLI?? DSTACK,X'01'?? Check stack flags??????????????????? ?
?? 67????????? BL??? OKSTACK??????? If flag is zero, no check is done??? ?
?? 68 * Insufficient space in this stack segment, allocate some????????? ?
?? 69????????? BE??? OVERFLOW?????? If static, then overflow error?????? ?
?? 70 *????????????????????????????????????????????????????????????????? ?
?? 71 * Calling MORESTAK???????????????????????????????????????????????? ?
?? 72????????? LR??? R3,R14?????????? Return address to PDPPRLG????????? ?
?? 73????????? LR??? R2,R1??????????? Hold R1 (C function parms)???????? ?
?? 74 *????????????????????????????????????????????????????????????????? ?
?? 75 * MORESTAK needs a two word parameter list.??????????????????????? ?
?? 76 *????????? Word 1 is the address of the current stack frame??????? ?
?? 77 *????????? Word 2 is the frame size requested????????????????????? ?
?? 78????????? LR??? R6,R13?????????? Pointer to current stack frame???? ?
?? 79????????? LR??? R7,R9??????????? Frame size wanted????????????????? ?


Re: Possible bug in BREXX parse instruction

 

On Sun, Nov 6, 2022 at 08:43 AM, Martin Scheffler wrote:
Remembering the rough times of EXEC 2 when there was no 'parse' instruction: I now have a real use case where I need to program around this bug. Here are some quick ideas.
If you have VM/370 CE 1.1.2 up and running, look at the ASSIST EXEC on the Y minidisk, for a working example of how to get around the PARSE problem.

If you don't have it, look at ASSIST_VM370_etc in the Files section for this discussion. All the files are there.

?... Mark S.


Re: AP and/or MP support in VM/CE: Does it exist or no?

 

¿ªÔÆÌåÓý

Bertram,

?

VM or rather Hercules will use more than one core, which is one reason it performs well. Remember that the 30xx boxes had, for their time high performance and sophisticated IO systems.

Hercules will use an additional core to simulate the IO subsystem so if you can generate a workload that does asynchronous disk IO you are able to get at least two cores in your system running code.

So whilst it might not run an AP or MP the channels, controllers and devices are emulated in a separate engine in a way that is close to real hardware.

The result is that on a decent dual core PC it will blow a 308x out of the water. And don¡¯t let anyone tell you PC IO is slow. A modern SATA disk runs has intelligent buffering on the disk and does IO independently of the CPU.

Then if you stick in an SSD it will just scream. If you want a genuine 308x experience you need to run it on a Raspberry PI 3 with some slow spinning disks on a USB interface.

Even on this you may struggle to get things roaring along. You really need lots of users logged on¡­¡­.

?

Dave

?

Note:- there are some differences in the way IO is managed which can confuse some software. For example tapes unload instantly, and I don¡¯t believe Hercules ever returns ¡°channel busy¡± but its pretty good.

?

From: [email protected] <[email protected]> On Behalf Of Bertram Moshier
Sent: 07 November 2022 03:59
To: [email protected]
Subject: Re: [h390-vm] AP and/or MP support in VM/CE: Does it exist or no?

?

Hi,

?

Thank you for the information. I understand and agree why you didn't get the AP working.

?

I have a Dell Precision 7910 with dual E5-2667 v3 and 128GB of RAM.? I just like the idea of a VM version able to use more than just a sole core.

?

I wonder how VM/CE on my computer compares with past Iron (where they would match).

?

What I need to do now is learn Hercules and VM/CE as well as I knew VM/SP on a 3031 in 1981-1983.

?

On Sun, Nov 6, 2022, 21:20 Drew Derbyshire <swhobbit@...> wrote:

On Sun, Oct 30, 2022 at 04:44 PM, Bertram Moshier wrote:

... it would?be nice for VM/CE to be more than just a UP OS.

The use case for an AP VM/370 servicing single CMS user is? CMS doesn't multitask; it doesn't even generally do asynchronous disk I/O.??

An UP VM/370 under Hercules running on a modern host kicks the butt of the real 1980 era hardware, so I don't see why AP matters in general. This is especially true since AP vs. UP is invisible to the average user.

Also, running VM/SP in AP mode under Hercules resulted increased failed IPL instances. It wasn't worth the effort to chase it, especially since it didn't match the live 4361 UP hardware.

Working on functionality visible to user would be more rewarding to more people.

-ahd-

p.s. As I?dimly?recall from ~ 4 years ago,?I?tested VM/SP on the live LCM+L IBM 4361 versus the Hercules image used to develop for the 4361.? Hercules was on Raspberry Pi 3b (or 3b+, I don't know remember). The VM/SP running under Hercules had ~3 times the performance as the live hardware, and the Pi 3b is not build for speed. Using fast x86 box, a UP VM would be blazing.


Re: AP and/or MP support in VM/CE: Does it exist or no?

 

Hi,

Thank you for the information. I understand and agree why you didn't get the AP working.

I have a Dell Precision 7910 with dual E5-2667 v3 and 128GB of RAM.? I just like the idea of a VM version able to use more than just a sole core.

I wonder how VM/CE on my computer compares with past Iron (where they would match).

What I need to do now is learn Hercules and VM/CE as well as I knew VM/SP on a 3031 in 1981-1983.

On Sun, Nov 6, 2022, 21:20 Drew Derbyshire <swhobbit@...> wrote:
On Sun, Oct 30, 2022 at 04:44 PM, Bertram Moshier wrote:
... it would?be nice for VM/CE to be more than just a UP OS.

The use case for an AP VM/370 servicing single CMS user is? CMS doesn't multitask; it doesn't even generally do asynchronous disk I/O.??

An UP VM/370 under Hercules running on a modern host kicks the butt of the real 1980 era hardware, so I don't see why AP matters in general. This is especially true since AP vs. UP is invisible to the average user.

Also, running VM/SP in AP mode under Hercules resulted increased failed IPL instances. It wasn't worth the effort to chase it, especially since it didn't match the live 4361 UP hardware.

Working on functionality visible to user would be more rewarding to more people.

-ahd-

p.s. As I?dimly?recall from ~ 4 years ago,?I?tested VM/SP on the live LCM+L IBM 4361 versus the Hercules image used to develop for the 4361.? Hercules was on Raspberry Pi 3b (or 3b+, I don't know remember). The VM/SP running under Hercules had ~3 times the performance as the live hardware, and the Pi 3b is not build for speed. Using fast x86 box, a UP VM would be blazing.


Re: AP and/or MP support in VM/CE: Does it exist or no?

 

On Sun, Oct 30, 2022 at 04:44 PM, Bertram Moshier wrote:
... it would?be nice for VM/CE to be more than just a UP OS.

The use case for an AP VM/370 servicing single CMS user is? CMS doesn't multitask; it doesn't even generally do asynchronous disk I/O.??

An UP VM/370 under Hercules running on a modern host kicks the butt of the real 1980 era hardware, so I don't see why AP matters in general. This is especially true since AP vs. UP is invisible to the average user.

Also, running VM/SP in AP mode under Hercules resulted increased failed IPL instances. It wasn't worth the effort to chase it, especially since it didn't match the live 4361 UP hardware.

Working on functionality visible to user would be more rewarding to more people.

-ahd-

p.s. As I?dimly?recall from ~ 4 years ago,?I?tested VM/SP on the live LCM+L IBM 4361 versus the Hercules image used to develop for the 4361.? Hercules was on Raspberry Pi 3b (or 3b+, I don't know remember). The VM/SP running under Hercules had ~3 times the performance as the live hardware, and the Pi 3b is not build for speed. Using fast x86 box, a UP VM would be blazing.