MVSFORUMS.com Forum Index MVSFORUMS.com
A Community of and for MVS Professionals
 
 FAQFAQ   SearchSearch   Quick Manuals   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

how to create a welcome Banner message while logon?

 
Post new topic   Reply to topic   printer-friendly view    MVSFORUMS.com Forum Index -> TSO and ISPF
View previous topic :: View next topic  
Author Message
vjkumk
Beginner


Joined: 28 Sep 2005
Posts: 98
Topics: 33

PostPosted: Wed Dec 28, 2005 10:03 am    Post subject: how to create a welcome Banner message while logon? Reply with quote

hi,
just i want to display a welcome message while i logon to the mainframe system.To be appropriate like BANNER msg in UNIX.I tried with the rexx command SAY "welcome msg".But how to increase the Font size?i tried adding the SAY command in a PS which will be executed when i logon to the system.the ps consists of tso and rexx commands.
Back to top
View user's profile Send private message
Bill Dennis
Advanced


Joined: 03 Dec 2002
Posts: 579
Topics: 1
Location: Iowa, USA

PostPosted: Wed Dec 28, 2005 1:56 pm    Post subject: Reply with quote

All lines have the same size characters on 3270 displays.

You can use multiple line displays and create larger block letters:
Code:

WW         WW    EEEEEEE
WW         WW    EE
WW         WW    EE
WW    W    WW    EEEEEE
WW   W  W  WW    EE
 WWW     WWW     EE
  WW      WW     EEEEEEE


Somewhat crude, but you get the idea...
_________________
Regards,
Bill Dennis

Disclaimer: My comments on this foorum are my own and do not represent the opinions or suggestions of any other person or business entity.
Back to top
View user's profile Send private message
superk
Advanced


Joined: 19 Dec 2002
Posts: 684
Topics: 5

PostPosted: Wed Dec 28, 2005 2:44 pm    Post subject: Reply with quote

Code:

/* REXX    BLOX   create block letters from an input string.
                for each of eight lines
                   for each letter in string
                      get pattern for letter
                      get sub-pattern for this line
                      build slug
                      attach to line
                   write the line
 
                Written by Frank Clarke, Oldsmar, FL
 
*/
address TSO
signal on syntax
 
tv="" ; odsn=""                        /* ensure values              */
sav = ""
parse upper arg instr "((" parms       /* get parameters             */
if instr="" & parms="" then call HELP  /* no parms at all            */
parms = Strip(parms,T,")")             /* clip trailing paren        */
 
parse value  KEYWD("TRACE")  "O"  with  tv  .
odsn       = KEYWD("OUTPUT")           /* output to file ?           */
if Pos("(",odsn) > 0 then,             /* has a left banana          */
if Pos(")",odsn) = 0 then,             /* but no right banana        */
   odsn = Space(odsn")",0)             /* add one                    */
 
prompt     = \SWITCH("NOPROMPT")
diagnose   = SWITCH("DIAGNOSE")
instr      = Strip(instr)              /* clean the input            */
rc = Trace(tv)
 
if odsn <> "" then do                  /* was a value                */
   "ALLOC FI(BLOXDD) DA("odsn") SHR REU"
   if rc > 0 then do                   /* doesn't exist ?            */
      "ALLOC FI(BLOXDD) DA("odsn") NEW REU SPACE(1) TRACKS",
           " RECFM(V B) LRECL(121) BLKSIZE(1210) UNIT(SYSDA)"
      if rc > 0 then do                /* ...and couldn't create it! */
         say "Allocation failed for "odsn"."
         exit
         end                           /* alloc NEW                  */
      end                              /* alloc SHR                  */
   end                                 /* alloc dataset              */
else "ALLOC FI(BLOXDD) DA(*) SHR REU"  /* to the terminal            */
 
call SET_PATN                          /*                           -*/
if tv = "O" then "CLEAR"               /* clear screen               */
 
if instr = "" then do                  /* no input ?                 */
   say ":"                             /* initial prompt             */
   "NEWSTACK"
   pull instr
   "DELSTACK"
   end
 
do forever
   do while instr <> ""
      if length(instr) > 8 then do     /* too long                   */
         parse var instr instr 9 sav   /* save the excess            */
         end
 
      do i = 1 to 7                    /* for 7 lines                */
         outline=""                    /* clear it                   */
         do j = 1 to Length(instr)     /* for each letter            */
            ltr = Substr(instr,j,1)    /* isolate it                 */
            ltrpos = Pos(ltr,choices)  /* where in the array ?       */
            if ltrpos = 0 then ltrpos = 47 /* set to blank           */
            byte = Substr(patn.ltrpos,i*2-1,2)
            if diagnose then say ltr byte X2B(byte)
            slug = X2B(byte)           /* character-to-binary        */
            slug = Translate(slug," ","0") /* off -> blank           */
            slug = Translate(slug,ltr,"1") /* on -> letter           */
            outline = outline slug     /* splice to the line         */
         end                           /* j for length(instr)        */
         queue outline                 /* into the queue             */
      end                              /* i for 7 lines              */
      instr = ""
      queue " "                        /* blank line                 */
      queue " "                        /* blank line                 */
 
      rc = Trace("O")
      rc = Trace(tv)
      if sav <> "" then do             /* was there excess ?         */
         instr = sav                   /* restore it                 */
         sav = ""                      /* indicate "no excess"       */
         end
   end                                 /* while instr filled         */
 
   if prompt then,
   if instr = "" then do               /* no more input ?            */
      say ":"                          /* prompt for more            */
      "NEWSTACK"
      pull instr
      "DELSTACK"
      end
   if instr = "" then leave            /* prompt was refused         */
end                                    /* forever                    */
 
rc = Trace("O") ; rc = Trace(tv)
"EXECIO" queued() "DISKW BLOXDD (FINIS"  /* flush to output          */
"FREE  FI(BLOXDD)"
 
exit
/*
.  ----------------------------------------------------------------- */
SET_PATN:                              /*@                           */
   patn.=""                               /* storage for patterns       */
   patn.1  = "081422417F4141"   /*  A   */
   patn.2  = "7E41417E41417E"   /*  B   */
   patn.3  = "3E41404040413E"   /*  C   */
   patn.4  = "7C42414141427C"   /*  D   */
   patn.5  = "7F40407C40407F"   /*  E   */
   patn.6  = "7F40407C404040"   /*  F   */
   patn.7  = "7E41404047417E"   /*  G   */
   patn.8  = "4141417F414141"   /*  H   */
   patn.9  = "1C08080808081C"   /*  I   */
   patn.10 = "7F02020202423C"   /*  J   */
   patn.11 = "41424478444241"   /*  K   */
   patn.12 = "4040404040407F"   /*  L   */
   patn.13 = "41635549414141"   /*  M   */
   patn.14 = "41615149454341"   /*  N   */
   patn.15 = "3E41414141413E"   /*  O   */
   patn.16 = "7E41417E404040"   /*  P   */
   patn.17 = "3E41414145423D"   /*  Q   */
   patn.18 = "7E41417E444241"   /*  R   */
   patn.19 = "3E41403E01413E"   /*  S   */
   patn.20 = "7F080808080808"   /*  T   */
   patn.21 = "4141414141413E"   /*  U   */
   patn.22 = "41414141221408"   /*  V   */
   patn.23 = "41414141494936"   /*  W   */
   patn.24 = "41221408142241"   /*  X   */
   patn.25 = "41221408080808"   /*  Y   */
   patn.26 = "7F02040810207F"   /*  Z   */
   patn.27 = "3E43454951613E"   /*  0   */
   patn.28 = "0818080808083E"   /*  1   */
   patn.29 = "3E41020408103E"   /*  2   */
   patn.30 = "7F020C0201413E"   /*  3   */
   patn.31 = "2040487F080808"   /*  4   */
   patn.32 = "7F40407E01017E"   /*  5   */
   patn.33 = "0408103E41413E"   /*  6   */
   patn.34 = "7F020408080808"   /*  7   */
   patn.35 = "3E41413E41413E"   /*  8   */
   patn.36 = "3E41413E040810"   /*  9   */
   patn.37 = "22227F227F2222"   /*  #   */
   patn.38 = "143E403E013E14"   /*  $   */
   patn.39 = "21522408122542"   /*  %   */
   patn.40 = "0018241825423D"   /*  &   */
   patn.41 = "0022143E142200"   /*  *   */
   patn.42 = "04081010100804"   /*  (   */
   patn.43 = "10080404040810"   /*  )   */
   patn.44 = "0000003E000000"   /*  -   */
   patn.45 = "00181800181800"   /*  :   */
   patn.46 = "00000000000000"   /*blank */
   patn.47 = "00181800181808"   /*  ;   */
   patn.48 = "3E410104080008"   /*  ?   */
   choices ="ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789#$%&*()-: ;?"
return                                 /*@ SET_PATN                  */
/*
.  ----------------------------------------------------------------- */
HELP:                                  /*@                           */
"CLEAR"                                /* clear screen               */
say "                                                                 "
say " BLOX is a REXX routine which will build 8x7 block letters       "
say "   from text you specify.                                        "
say "                                                                 "
say " BLOX can handle strings to length=8 and will write either to    "
say "   the screen-face or to a file you name.  Syntax for BLOX is:   "
say "      BLOX <string>  <options>                                   "
say "                                                                 "
say "      <options>:  OUTPUT output-dsname                           "
say "                                                                 "
exit                                   /*@ HELP                      */
 
/*-------------------------------------------------------------------*/
KEYWD: Procedure expose,               /*@                           */
       kw parms
arg kw .
if Wordpos(kw,parms) = 0 then,
   kw_val = ""
else,
if Wordpos(kw,parms) = 1 then,
   kwa = kw" "
else kwa = " "kw" "
parse var parms . value(kwa)  kw_val .
if kw_val <> "" then parms = Delword(parms,Wordpos(value(kw),parms),2)
return kw_val                          /*@ KEYWD                     */
 
/*-------------------------------------------------------------------*/
SWITCH:                                /*@                           */
arg kw .
sw_val  = Wordpos(value(kw),parms) > 0
if sw_val  then parms = Delword(parms,Wordpos(value(kw),parms),1)
return sw_val                          /*@ SWITCH                    */
 
/*-------------------------------------------------------------------*/
SYNTAX:                                /*@                           */
   errormsg = "REXX error" rc "in line" sigl":" errortext(rc)
   say errormsg
   say sourceline(sigl)
   Trace "?R"
   nop
exit                                   /*@ SYNTAX                    */
 
/*    Work area for creating new patterns:                           */
 
/*      .......                                                      */
/*      .......                                                      */
/*      .......                                                      */
/*      .......                                                      */
/*      .......                                                      */
/*      .......                                                      */
/*      .......                                                      */
/*      .......                                                      */
/*      .......                                                      */


Edited by ADMIN : removed the URL which contains some personal info


Last edited by superk on Wed Dec 28, 2005 7:34 pm; edited 4 times in total
Back to top
View user's profile Send private message
vjkumk
Beginner


Joined: 28 Sep 2005
Posts: 98
Topics: 33

PostPosted: Thu Dec 29, 2005 8:19 am    Post subject: Reply with quote

thanks bill and superk,
i tried what bill dennis has said.It worked fine.
I created a ps and i typed the welcome msg as bill said and save it.
and our shop contains a rexx ps which will be executed when we login.

so i added the below code to that ps which contains the rexx code and it worked fine.

"alloc da('ps which contains welcome msg') f(infile) old reuse"
"execio diskr * infile(finis stem myvar."
do i = 1 to myvar.0
say myvar.i
end
"free f(infile)"


i will also try with the superk solution.



thanks
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic   printer-friendly view    MVSFORUMS.com Forum Index -> TSO and ISPF All times are GMT - 5 Hours
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


MVSFORUMS
Powered by phpBB © 2001, 2005 phpBB Group