Archive for June, 2012

Changing the logon screen on the mainframe (z/OS VTAM) in ADCD

Sunday, June 17th, 2012

That mainframe login screen can go by many names (VTAM screen, 3270 screen, Telnet screen) but whatever you call it its just the screen used to log on. As with everything in the mainframe world it is ludicrously, stupidly hard to get a straight answer. For example, look at this question in google groups to a really simple question: Manuals on modifying VTAM logon screen? How many pages do you think that is? It’s really not nearly as difficult as these idiots make it look like, but at least these folks where helpful compared to this forum post where a guy gets mocked for a simple question “How to change the logon screen?“.

Anyways, enough complaining about the lack of “community” in the mainframe community and lets get down to business. Changing the logon screen from this:


to this


The easiest way to explain this is that the screen you see is contained in a dataset in assembly, for exampled ADCD.Z111S.VTAMLIB(USSN):

and you need some JCL to generate this crap. The first think you’ll want to do is look at the proclibs for VTAM (ugh, just writing that sentence hurt, I mean, proclib? vtam? who named these things). So look at :


and you should see something like:

remember these settings. You’ll also want to look at:


where you hopefully see

so great, now we can make a JCL to change that horrible screen. Just take this JCL:

USSVTAM2 (also available here:

Now the easiest way to deal with this is like so:

  • You can edit the lines that begin with C’
  • Each line on the screen is equal to two lines in this JCL
  • At the very bottom is the dataset you want the compiled screen to go in to (around line 190) in this example its ADCD.Z111S.VTAMLIB(USSN). (ADCD.Z111S.VTAMLIB the the line below it has USSN(R)).

Once you’ve made the changes you want (and making sure you have the right permissions) you just submit the job (type ‘sub’ in the command line) and then you need to reset VTAM to load this screen. Easy peasy from the  master console:

F vtam_proc_name,TABLE,OPTION=LOAD,NEWTAB=table_name
Based on the JCL above it would be:

And you're done! No go check your awesome new logon screen!