There are 3 programs here, actually...the first one writes to whatever is designated on the SYSPRINT DD statement in the invoking JCL:
HELLOPRT START 0 IN THE BEGINNING...
PRINT NOGEN SPARE US THE MACRO EXPANSIONS
BEGIN SAVE (14,12) SAVE INPUT REGISTERS
LR 12,15 WHERE ARE WE?
USING HELLOPRT,12 RIGHT HERE
ST 13,SAVE+4 SAVE OLD SAVE AREA ADDRESS
LA 11,SAVE POINT TO NEW SAVE AREA
ST 11,8(13) IN OLD SAVE AREA
LR 13,11 MOVE SAVE AREA ADDRESS
*
* WRITE "HELLO, WORLD!" ON WHATEVER HAS BEEN SET UP AS SYSPRINT IN
* THE INVOKING JCL (NO, UNIX DOESN'T HAVE A MONOPOLY ON DEVICE-
* INDEPENDENT I/O!)
*
DOPUT EQU *
PUT SYSPRINT,HELLOMSG WRITE THE MESSAGE
B DOPUT FOREVER...
*
* THIS CODE WILL NEVER BE REACHED, BUT IS INCLUDED FOR COMPLETENESS
*
L 13,SAVE+4 GET OLD SAVE AREA BACK
RETURN (14,12),RC=0 TO THE OPERATING SYSTEM
*
* FILE AND WORK AREA DEFINITIONS
*
SAVE DS 18F LOCAL SAVE AREA
HELLOMSG DC C' HELLO, WORLD!'
SYSPRINT DCB DSORG=PS,MACRF=PM,DDNAME=SYSPRINT, X
RECFM=FA,LRECL=133,BLKSIZE=133
END BEGIN
The next is specifically for TSO, and will write the message to the user's TSO terminal:
HELLOTSO START 0 IN THE BEGINNING...
* PRINT NOGEN SPARE US THE MACRO EXPANSIONS
BEGIN SAVE (14,12) SAVE INPUT REGISTERS
LR 12,15 WHERE ARE WE?
USING TYPE,12 RIGHT HERE
ST 13,SAVE+4 SAVE OLD SAVE AREA ADDRESS
LA 11,SAVE POINT TO NEW SAVE AREA
ST 11,8(13) IN OLD SAVE AREA
LR 13,11 MOVE SAVE AREA ADDRESS
*
* WRITE 'HELLO, WORLD!' TO THE TSO SESSION
*
DOTPUT EQU *
TPUT HELLOMSG,L'HELLOMSG,EDIT SEND THE LINE
B DOTPUT AND DO IT AGAIN
*
* THIS CODE WILL NEVER BE REACHED, BUT IS INCLUDED FOR COMPLETENESS
*
EXIT L 13,SAVE+4 GET OLD SAVE AREA BACK
RETURN (14,12),RC=(15) QUIT
*
* FILE AND WORK AREA DEFINITIONS
*
SAVE DS 18F LOCAL SAVE AREA
HELLOMSG DC C'HELLO, WORLD!'
END BEGIN
Finally, a version that will send the greeting to the system console. Do not try this at home, kids, unmodified; flooding the system console is a Bad Idea...
HELLOWTO START 0 IN THE BEGINNING...
PRINT NOGEN SPARE US THE MACRO EXPANSIONS
BEGIN SAVE (14,12) SAVE INPUT REGISTERS
LR 12,15 WHERE ARE WE?
USING HELLOWTO,12 RIGHT HERE
ST 13,SAVE+4 SAVE OLD SAVE AREA ADDRESS
LA 11,SAVE POINT TO NEW SAVE AREA
ST 11,8(13) IN OLD SAVE AREA
LR 13,11 MOVE SAVE AREA ADDRESS
*
* NOW, WRITE "HELLO WORLD!" TO THE CONSOLE
*
DOWTO EQU *
WTO 'HELLO, WORLD!' WRITE THE MESSAGE
* COMMENT THE NEXT LINE IF YOU DON'T WANT THE OPERATOR TO COME AFTER
* YOU WITH AN AXE
B DOWTO AND DO IT AGAIN
*
* WE'RE DONE, EXIT CLEANLY
*
L 13,SAVE+4 GET OLD SAVE AREA BACK
RETURN (14,12),RC=0 TO THE OPERATING SYSTEM
*
* FILE AND WORK AREA DEFINITIONS
*
SAVE DS 18F LOCAL SAVE AREA
END BEGIN
submitted by: jmaynard@admin5.hsc.uth.tmc.edu (Jay Maynard)