This forum provides the support of Dezhi Mainframe systems. Please post your questions about logon, usage of our mainframe environment.
Moderators: sysprog, prino, sfan, steve-myers, Tim001
by MAGDA01 » Tue 03 Dec 2013, 19:19
Hi, today i've been using the user TSO during two hours, but after a half an hour of inactivity, when i want to entry again the system shows me this message "IKJ56420I Userid MAGDA01 not authorized to use TSO"
I suppose i've been banned (apologizes in advance), but i don't know why...I only have built a simple JCL for compile a simple PL/I program imbedded in JCL in the library that you provide invoking the procedures without manipulate them
Could you re-activate the TSO userid, please?
-
MAGDA01
-
by steve-myers » Tue 03 Dec 2013, 22:58
Unlikely: the ID appears to be used for training, which is prohibited.
-
steve-myers
-
- Posts: 452
- Joined: Tue 04 May 2010, 15:43
by prino » Thu 05 Dec 2013, 17:03
And to add one last post to this thread, why would anyone named PEDRO apply for a userid MAGDA01?
-
prino
-
- Posts: 479
- Joined: Sat 06 Jun 2009, 21:41
- Location: Vilnius, Lithuania
-
by MAGDA01 » Fri 06 Dec 2013, 09:52
steve-myers wrote:Unlikely: the ID appears to be used for training, which is prohibited.
Hi, it is not for training purposes, it's for research, finding out some cases related to data conversion that they don't work exactly as programming reference explains; the results have been useful to me to create a topic in my blog about PL/I development.
-
MAGDA01
-
by MAGDA01 » Fri 06 Dec 2013, 09:58
prino wrote:And to add one last post to this thread, why would anyone named PEDRO apply for a userid MAGDA01?
In the region catalonia of my country Spain, one is the affectionate form of the other
-
MAGDA01
-
by prino » Fri 06 Dec 2013, 10:01
MAGDA01 wrote:steve-myers wrote:Unlikely: the ID appears to be used for training, which is prohibited.
Hi, it is not for training purposes, it's for research, finding out some cases related to data conversion that they don't work exactly as programming reference explains; the results have been useful to me to create a topic in my blog about PL/I development.
So why haven't you entered the URL of your blog in your profile?
-
prino
-
- Posts: 479
- Joined: Sat 06 Jun 2009, 21:41
- Location: Vilnius, Lithuania
-
by steve-myers » Fri 06 Dec 2013, 11:07
This "blog" appears to be used to prepare examples for trainees to use on the system. Sorry: this is training activity.
-
steve-myers
-
- Posts: 452
- Joined: Tue 04 May 2010, 15:43
by steve-myers » Fri 06 Dec 2013, 12:16
A "blog" is for public consumption, where you are sharing your "wisdom" with the world: for example
This is a small Assembler program to copy data from one storage area to another storage area.
- Code: Select all
* CALL COPYLONG,(SOURCE,TARGET,LENGTH)
COPYLONG CSECT DEFINE PROGRAM CSECT
USING *,15 ESTABLISH PROGRAM ADDRESSABILITY
SAVE (14,2),,* SAVE REGISTERS
LA 0,256 SET REG 0 = 256
L 14,0(,1) LOAD ADDRESS OF THE SOURCE
L 2,8(,1) LOAD ADDRESS OF THE LENGTH
L 1,4(,1) LOAD ADDRESS OF THE TARGET
L 2,0(,2) LOAD THE LENGTH
LTR 2,2 TEST THE LENGTH
BNP QUIT BR IF LENGTH VALUE IS BAD
LOOP CR 2,0 TEST REMAINING LENGTH
BNH LAST BR IF REMAINING LENGTH <= 256
MVC 0(256,1),0(14) COPY 256 BYTES
SR 2,0 UPDATE THE REMAINING LENGTH
AR 14,0 UPDATE THE SOURCE ADDRESS
AR 1,0 UPDATE THE TARGET ADDRESS
B LOOP DO IT AGAIN
LAST BCTR 2,0 SUBTRACT 1 FROM THE REMAINING LNGTH
EX 2,MVC COPY 1 TO 256 BYTES
QUIT RETURN (14,2),T RESTORE REGISTERS & RETURN
MVC MVC 0(*-*,1),0(14) ** EXECUTE ONLY **
DROP , KILL PROGRAM ADDRESSABILITY
END ,
This example uses only instructions provided in the original System/360. The SAVE and RETURN macros save and restore
only the registers actually used by the program. This is more important than is immediately apparent; the STM and LM instructions in the SAVE and RETURN macro expansions are not all that quick. One of the major points of XPLINK, which is an attempt to improve the performance of the "Language Environment" piece of IBM's high level languages attacks this piece of program linkage. Preparing the registers in this example is relatively slow, partly because one goal in this example is to minimize the number of registers actually used by the program.
The use of register 0 as a fixed data area turns one limitation of the instruction set into an asset: once the register is set there is no need to use storage for the data later in the program. Since the contents of register 0 cannot be used as a storage address, or to provide a substitution value in the EX instruction, this use becomes an asset in an instruction sequence that seeks to minimize register usage.
One common complaint about the System/360 instruction set is instructions like MVC are limited to 256 bytes; COPYLONG is a simple example of overcoming this limitation. There are two reasons why the engineers that defined the instruction set imposed this limit. Execution of an instruction was seen as an atomic event; execution of an instruction could not be interrupted, so part of the reason for this limit was to impose a maximum time when the system could not accept an interruption. The other reason was to limit the size of the instruction. The length value for the instruction occupies space in the instruction. The length value is reduced by 1 in the instruction; so decimal 256, which requires 9 bits, is changed to 255, which requires 8 bits, in the instruction. The engineers correctly deduced that most of the time MVC would actually be used the length value would be quite low, though I suspect they would be distressed to find out how often the length is 1!
Now your little PL/I example in your "blog" is hardly an outstanding example of the language, though it is a good example of how to use PL/I language elements to minimize total coding space, though possibly at the cost of self documenting the code.
-
steve-myers
-
- Posts: 452
- Joined: Tue 04 May 2010, 15:43
Return to Dezhi systems: Mainframe
Who is online
Users browsing this forum: No registered users and 0 guests