* CRTOPT GENopt(*optimize) ********************************************************************* * * * UMGLIGHT - Turn the Msg Waiting light on or off * * * * Copyright - Application Engineering Software R&D Foundation * * * * Author - AESRDF/Robert Clark May '93 * * * * Logic Description: * * This program uses the User Defined Data Stream to send * * the control code to a 5250 device to turn the msg wait * * indicator on or off * * * ********************************************************************* * Maintenance History: * * Ref Date By Description * * * * * ********************************************************************* F/SPACE FUMGLITE O F 100 WORKSTN F KPASS *NOIND F KINFDS @WSDS F KINFSR *PSSR ************************************************************************** E EV 27 1 ************************************************************************** * Redefine input field as an array IEDSP DS I 1 27 EV * User Defined Data Stream output Info structure ISUDDS DS I B 1 20ADSPO# I I 27 B 3 40ADSPI# I 5 5 CUDDS * Binary and work fields for Message Handelling API interface ISAPIMH DS I B 1 40@MG#DT I B 5 80@MGPSC I B 5 80@MGPSK I 11 30 @MGF I 11 20 @MSGF I 21 30 @MSGFL I B 31 340@MG#TP I B 35 380@MG#RT * I@MGDTA DS 128 I 1 10 @M9191 I@RPGDS SDS I *PROGRAM @PGM I *STATUS @PGSTS I 21 28 @#RPG I *PARMS @#PARM I 40 46 @PGMSG I 51 51 @PGMD1 I 209 213 @PGFS I 244 253 @JOB I 254 263 @USER I 264 2690@JNBR * GENERAL API ERROR DATA STRUCTURE IAPIERR DS I I 0 B 1 40APIERI I I 0 B 5 80APIERO I 9 15 APIERM I 16 16 APIER£ * Workstation Information/Status Data Structure I@WSDS DS I B 283 2860@WSRCL * I 'UAEMSG *LIBL 'C @AEMSG I 'QUSRMSG *LIBL 'C @USRMG I 'QCPFMSG *LIBL 'C @CPFMG ************************************************************************** C *ENTRY PLIST C PARM AIND 1 ************************************************************************** * Determine what to do based on the Parameter CAS+ C AIND CASEQ'1' INDON MSG ON CAS+ C AIND CASEQ'0' INDOFF MSG OFF CAS+ C AIND CASEQ'A' INDALM ALARM ONLY CAS- C ENDCS C MOVE *ON *INLR C RETRN ************************************************************************** ** TURN ON MSG WAIT C INDON BEGSR C MOVE X'04' EV,1 ESC C MOVE X'11' EV,2 WRT C MOVEAX'0005' EV,3 MSGWAIT *ON C Z-ADD4 ADSPO# UDDS OUT LNG C MOVE X'71' CUDDS WRT C EXCPT@SCRN C ENDSR ************************************************************************** ** TURN OFF MSG WAIT C INDOFF BEGSR C MOVE X'04' EV,1 ESC C MOVE X'11' EV,2 WRT C MOVEAX'0002' EV,3 MSGWAIT *OFF C Z-ADD4 ADSPO# UDDS OUT LNG C MOVE X'71' CUDDS WRT C EXCPT@SCRN C ENDSR ************************************************************************** ** ALARM ONLY C INDALM BEGSR C MOVE X'04' EV,1 ESC C MOVE X'11' EV,2 WRT C MOVEAX'0004' EV,3 SOUND ALARM C Z-ADD4 ADSPO# UDDS OUT LNG C MOVE X'71' CUDDS WRT C EXCPT@SCRN C ENDSR ************************************************************************** ** DEFAULT RPG ERROR PROCESSING FOR DEVELOPMENT C *PSSR BEGSR * If not an error within this routine - proceed B001 C CPSSR IFEQ *BLANKS * MOVE MESSAGES TO SPECIFIED PGM Q C CALL 'QMHMOVPM' 90 C PARM *BLANKS @MGKEY 4 MSG KEY C PARM '*DIAG' @MGTYP 10 MSG TYPES C PARM 1 @MG#TP NBR MSG TYPES C PARM '*' @MGPQ 10 PGM MSG Q C PARM 1 @MGPSK PGM STACK COUNT C PARM APIERR ERROR STRUCTURE * RESEND ESCAPE MESSAGES C CALL 'QMHRSNEM' 90 C PARM *BLANKS @MGKEY 4 MSG KEY C PARM APIERR ERROR STRUCTURE E001 C ENDIF C MOVE '*CANCL' CPSSR 6 *dft action C ENDSRCPSSR ************************************************************************** * Output Usr Defn Dta Stream to device OUMGLITE E @SCRN O K7 'UDDSFMT' O SUDDS 5 O EDSP 32 **************************************************************************