Introduction to MVS 3 - Login and TSO
=====================================

OK, so we've had a bit of history, and a look at the console access
available to the high priests. What does the system look like to an
end-user?

Login Screen
------------

The first thing you see when you connect your TN3270 client to the
system. Almost all sites customise this to display company logos,
warnings, help info, etc. There's a (seemingly dormant) project
mapping all internet-accessible mainframe systems [1] you can check
out if you want to see some of the things other people come up with.

This is what I see (on a P390 system running OS/390):

SOURCE DATA SET = SYS1.VTAM.SOURCE(USSN)

                            W E L C O M E  T O


                  SSSSSS   //   3333333   9999999   0000000
                SS        //   33   33   99   99   00   00
               SS        //        33   99   99   00   00
                SSSS    //     33333   9999999   00   00
                   SS  //        33        99   00   00
                  SS  //   33   33   99   99   00   00
            SSSSSSS  //   3333333   9999999   0000000


TERMINAL NAME = SC0TCP01            NETWORK-QUALIFIED NAME =
SSCPNAME =                          NETWORK-ID =           192.168.168.23

          OS/390 APPLICATION SERVICES SYSTEM - RELEASE 2.10.0

===> ENTER "LOGON" FOLLOWED BY THE TSO USERID. EXAMPLE "LOGON IBMUSER" OR
===> ENTER L FOLLOWED BY THE APPLID
===> EXAMPLES: "L TSO", "L CICS", "L IMS3270

Logging In
----------

The cursor sits at the bottom of the screen waiting for me to input
something. I'll log in by entering

logon lee

and hitting enter. This sends me to the TSO logon screen:

------------------------------- TSO/E LOGON -----------------------------------


   Enter LOGON parameters below:                   RACF LOGON parameters:

   Userid    ===> LEE

   Password  ===>                                  New Password ===>

   Procedure ===> ISPFPROC                         Group Ident  ===>

   Acct Nmbr ===> 1337

   Size      ===> 40000

   Perform   ===>

   Command   ===> ispf

   Enter an 'S' before each option desired below:
           -Nomail         -Nonotice      S -Reconnect        -OIDcard

PF1/PF13 ==> Help    PF3/PF15 ==> Logoff    PA1 ==> Attention    PA2 ==> Reshow
You may request specific help information by entering a '?' in any entry field


Where I need to enter (at least) my password. A few things probably
need some explanation, right?

Userid                 : your username
Password/New Password  : current password, and new password if you wish to
                        change it
Procedure              : Kind of similar to .profile/.bashrc/.bash_profile/etc
                        you find in Unix, for setting up your environment
Group Ident            : RACF group id
Acct Nmbr              : system use can be charged to a particular account
                        number for billing purposes (eg. for cross-charge to
                        another department)
Size                   : the memory region size required in KiB
Perform                : performance group assignment (rarely used since the
                        introduction of Workload Manager)
Command                : an initial command to run once logged-in


For this demo, I'll blank out the 'Command' field so I get straight to
a TSO prompt, fill in the Password field, and hit enter:


ICH70001I LEE      LAST ACCESS AT 11:11:48 ON WEDNESDAY, OCTOBER 30, 2019
IKJ56455I LEE LOGON IN PROGRESS AT 12:42:12 ON OCTOBER 31, 2019
IKJ56951I NO BROADCAST MESSAGES
******************************************************************
*                                                                *
*                  WELCOME TO THE P390 SYSTEM!                   *
*                                                                *
*  THIS MESSAGE IS KEPT IN DATA SET SYS1.CLIST(ISPFCL), AND      *
*  CAN BE CHANGED TO READ AS YOU WISH.                           *
*                                                                *
*  USERIDS SUPPLIED ARE IBMUSER, P390, P390A THROUGH P390Z,      *
*  TESTER, AND OPEN1 THROUGH OPEN3.  IBMUSER AND P390 HAVE       *
*  AUTHORITY TO GRANT THEMSELVES ANY ADDITIONAL AUTHORIZATIONS   *
*  THEY WANT.  P390A THROUGH P390Z AND TESTER ARE RESTRICTED     *
*  FROM ALTERING SYSTEM DATA SETS, SUCH AS THOSE STARTING WITH   *
*  "SYS1."  OPEN1 THROUGH OPEN3 HAVE UID(0) AUTHORITY AND ARE    *
*  CONNECTED TO GROUP SYS1.  THEY CAN ALL BE LOGGED ON AT THE    *
*  SAME TIME.  OPEN1 THROUGH OPEN3 WILL BE AUTOMATICALLY PLACED  *
*  INTO AN OPENEDITION SHELL SESSION WHEN THEY LOG ON.           *
*                                                                *
*  THE PASSWORD CHANGE INTERVAL IS SET TO 180 DAYS, AND THERE    *
*  ARE NO PASSWORD RULES IN EFFECT.  THE INTERVAL CAN BE CHANGED *
*  WITH THE RACF "SETROPTS" COMMAND.  NEW USERIDS CAN BE ADDED   *
***


The three asterisks at the bottom is TSO informing you that there's
more information to follow, and I should hit enter to page down:


*  USING THE TSO ACCOUNT AND RACF AU COMMANDS, OR YOU CAN CHANGE *
*  TO RACF-ONLY ADMINISTRATION.                                  *
*                                                                *
*  THERE ARE TWO LOGON PROCS AUTHORIZED FOR ALL IDS.  IKJACCNT   *
*  IS TSO-ONLY (USEFUL FOR RECOVERY WHEN TESTING ISPF APPLICAT-  *
*  ONS), AND ISPFPROC PROVIDES ISPF FUNCTION.                    *
*                                                                *
******************************************************************

READY


'READY' is the TSO prompt.

Help
----

Besides the Users Guide [2], TSO also has some limited online
documentation, which is accessed via 'HELP' (my input is in
lower-case):

READY
help
LANGUAGE PROCESSING COMMANDS:

ASM        INVOKE ASSEMBLER PROMPTER AND ASSEMBLER F COMPILER.
CALC       INVOKE ITF:PL/1 PROCESSOR FOR DESK CALCULATOR MODE.
COBOL      INVOKE COBOL PROMPTER AND ANS COBOL COMPILER.
FORT       INVOKE FORTRAN PROMPTER AND FORTRAN IV G1 COMPILER.

PROGRAM CONTROL COMMANDS:

CALL       LOAD AND EXECUTE THE SPECIFIED LOAD MODULE.
LINK       INVOKE LINK PROMPTER AND LINKAGE EDITOR.
LOADGO     LOAD AND EXECUTE PROGRAM.
RUN        COMPILE, LOAD, AND EXECUTE PROGRAM.
TEST       TEST USER PROGRAM.
TESTAUTH   TEST APF AUTHORIZED PROGRAMS.

DATA MANAGEMENT COMMANDS:

ALLOCATE   ALLOCATE A DATA SET WITH OR WITHOUT AN ATTRIBUTE
           LIST OF DCB PARAMETERS.
ALTLIB     DEFINE OPTIONAL, USER-LEVEL OR APPLICATION-LEVEL SETS OF
***

(I'll only include the first page of output here)

Appending a command name to 'HELP' will give specific help for that
command:

READY
help allocate

FUNCTION -
  THE ALLOCATE COMMAND PERFORMS THE FOLLOWING FUNCTIONS:
        - DYNAMICALLY DEFINES AND ALLOCATES A DATA SET WITH OR
          WITHOUT AN ATTRIBUTE LIST OF DCB PARAMETERS.
        - ALLOCATES A NEW DATASET WITH ATTRIBUTES COPIED FROM AN
          EXISTING DATA SET.
        - CONCATENATES A LIST OF DATA SETS.
        - ALLOCATES AN HFS FILE.
  FOR SPECIAL CONSIDERATIONS WHEN USING SMS SEE THE "TSO/E COMMAND
     REFERENCE" MANUAL.

SYNTAX  -
         ALLOCATE   DATASET('DSNAME'/'LIST OF DSNAMES'/*)
                       OR
                    DUMMY
                    FILE('DDNAME') ALTFILE('DDNAME')
                    DEST('DESTINATION' OR 'NODE.USERID')
                    NEW/OLD/MOD/SHR/SYSOUT('CLASS')
                    VOLUME('SERIAL'/SERIAL LIST)/MSVGP('IDENTIFIER')
                    SPACE('QUANTITY','INCREMENT') DIR('INTEGER')
***

Easy. To start doing anything useful though, we need to know about how
data is stored and retrieved in an MVS system. On to part 4!


[1] https://mainframesproject.tumblr.com/
[2] https://www-01.ibm.com/servers/resourcelink/svc00100.nsf/pages/zOSV2R3sa320971/$file/ikjc200_v2r3.pdf