This makes box letters out of a text string of up to 6 words but width
of box letter is just 1 letter.
I tweaked it a little, Frank was the mastermind.

/* REXX ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ 
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ 
/*                                                                   */ 
/*                                                                   */ 
/* Name:        NAME OF REXX                                         */ 
/* Type:        TSO  exec                                            */ 
/* Author:      Frank Clarke, Oldsmar, FL.                           */ 
/* Requires:    -                                                    */ 
/* Description:                                                      */ 
/*                                                                   */ 
/* Invocation :  TSO BLOX 'what you want in box letters'             */

/* trace Ir                                                          */ 
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ 
                                                                        
   arg p1 p2 p3 p4 p5 p6 p7 p8                                          
                                                                        
   instr = p1 p2 p3 p4 p5 p6 p7 p8                                      
   Signal On Failure                                                    
   Signal On Syntax                                                     
   Signal On Novalue                                                    
   Signal On Error                                                      
   Signal On Halt                                                       
                                                                        
   Call Main_Routine                                                    
                                                                        
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ 
/*  Normal Finish                                                    */ 
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ 
   Signal Off Failure                                                   
   Signal Off Syntax                                                    
   Signal Off Novalue                                                   
   Signal Off Error                                                     
   Signal Off Halt                                                      
                                                                        
 "DELSTACK"                                                             
Exit RC                                                                 
                                                                        
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ 
/*  Error handling                                                   */ 
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ 
 Failure:  Say "Command failed on line"  Sigl; Call Cleanup; Exit(12);  
 Syntax:   Say "Syntax error on line"    Sigl; Call Cleanup; Exit(12);  
 Novalue:  Say "Novalue used on line"    Sigl; Call Cleanup; Exit(12);  
 Error:    Say "Command error on line"   Sigl; Call Cleanup; Exit(12);  
 Halt:     Say "User terminated on line" Sigl; Call Cleanup; Exit(12);  
 Cleanup: 
   Say '*** 'SYSVAR('SYSICMD')' failed'

 Return                                                                
                                                                       
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
/* Driver                                                            */
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
 Main_Routine:                                                         
                                                                       
If instr='' then Do                                                    
  Say 'enter TSO BLOX then up to 6 words(character strings) to box'    
  End                                                                  
                                                                       
DSN   = USERID()"."SYSVAR('SYSICMD')".FORMAT"                          
SC = LISTDSI("'"DSN"'")                                                
If SC = 0  Then                                                        
  "DELETE '"DSN"'"                                                     
   Address TSO "ALLOC F(BLOXDD) DA('"DSN"')                            
            NEW CATALOG UNIT(3390)                                     
            RECFM(F B) LRECL(480) BLKSIZE(24000)"                      
/* "ALLOC FI(BLOXDD) DA(*) SHR REU"         to the terminal     */     
/* "FREE FILE(BLOXDD)"      */                                         
If rc > 0 then do                                                      
   say "Allocation failed for "DSN"."                                  
   Signal Halt                                                         
               End                                                     
call SET_PATN                                                          
                                                                       
 "DELSTACK"                                                            
 "NEWSTACK"                                                            
                                                                       
  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)                         
            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                                                  
     end                                    /* i for 7 lines         */ 
/*"CLEAR"                         /* clear screen               */      
  SAY '::::::::::::::::::::::::::::::::::::::::::::::::::::::: '        
  SAY '::::::::::::::::::::::::::::::::::::::::::::::::::::::: '    */  
                                                                        
"EXECIO" queued() "DISKW BLOXDD (FINIS"                                 
"FREE  FI(BLOXDD)"                                                      
                                                                        
 Return                                                                 
                                                                        
 SET_PATN:                                                              
   patn.=""                                                             
   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                  */

 


 

-----Original Message-----
From: IBM Mainframe Discussion List [mailto:[EMAIL PROTECTED] On
Behalf Of John P Donnelly
Sent: Friday, May 09, 2008 8:17 AM
To: IBM-MAIN@BAMA.UA.EDU
Subject: Re: absurd programs that used to be everywhere ...

.got one... 

//GOTHIC   EXEC PGM=GOTHIC,PARM='X '                             
 //SYSPRINT DD SYSOUT=*                                           
 //*                                                              
 //*   PARM=FOREGROUND BLANK BACKGROUND                           
 //*   PARM='X ' OR PARM='. MW*'                                  
 //*   X CREATES WHITE BACKGROUND WITH PRINTED LETTERS.           
 //*   . MW CREATES DARK BACKGROUND WITH BLANK LETTERS.           
 //*                                                              
 //*   DATA CARDS                                                 
 //*   TWO BLANKS TERMINATE CARD                                  
 //*   DEFAULT IS LOWER CASE. USE _LETTER FOR UPPER CASE.         
 //*                                                              
 //SYSIN    DD *                                                  
 1970 _MOI                                                         
 /*      

...provide an address and preferred method of shipping...
...executes on our z/OS V1R7, but you gotta have the printers...

                                                

-----Original Message-----
From: F. J. Kelley [mailto:[EMAIL PROTECTED]
Sent: Friday, May 09, 2008 6:21 AM
To: IBM-MAIN@BAMA.UA.EDU
Subject: absurd programs that used to be everywhere ...

(Sincere apologies, I already hate myself for even asking this, but ...)
Our computer center is having its 50th anniversary and digging up all
kinds of stuff from the "old days".  The 3330 disk I had has already 
been grabbed.   

I am the last mf support person on the academic side (we still have a
robust administrative side that uses the mainframe), but it is thought I
have all sorts of programs from the 70's and 80's on hand.
(well, I do still have the startrek load module, but that's something of
an accident)

Anyway, I've been asked if I can provide banners ... sheesh ...
The kind printed on fanfold (ie greenbar) paper.
(I'd settle for giving them a snoopy calendar, though they really want
the banners)  I remember  SAS Proc GSLIDE was often used for this kind
of stuff, but not on an impact printer.  Anyone still have one of those
programs?
thanks and apologies for burdening the list with this silliness (but now
I can say "i asked").
-- Joe Kelley
   [EMAIL PROTECTED]

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions, send
email to [EMAIL PROTECTED] with the message: GET IBM-MAIN INFO Search
the archives at http://bama.ua.edu/archives/ibm-main.html

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions, send
email to [EMAIL PROTECTED] with the message: GET IBM-MAIN INFO Search
the archives at http://bama.ua.edu/archives/ibm-main.html

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [EMAIL PROTECTED] with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html

Reply via email to