From 831943e18364911c2b06ca25965b174fa011accf Mon Sep 17 00:00:00 2001 From: Johan Fabry Date: Mon, 8 Sep 2025 09:31:29 -0400 Subject: [PATCH] Add RCSIGNON, its map SIGNON and the corresponding copybook and map xml to version control. --- CICS/RCSIGNON.cob | 148 ++++++++++++++++++++ Copybook/SIGNON.cpy | 36 +++++ Maps/SIGNON.bms | 62 +++++++++ Maps/SIGNON.xml | 329 ++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 575 insertions(+) create mode 100644 CICS/RCSIGNON.cob create mode 100644 Copybook/SIGNON.cpy create mode 100644 Maps/SIGNON.bms create mode 100644 Maps/SIGNON.xml diff --git a/CICS/RCSIGNON.cob b/CICS/RCSIGNON.cob new file mode 100644 index 0000000..bf04ec8 --- /dev/null +++ b/CICS/RCSIGNON.cob @@ -0,0 +1,148 @@ + IDENTIFICATION DIVISION. + PROGRAM-ID. RCSIGNON. + ENVIRONMENT DIVISION. + CONFIGURATION SECTION. + DATA DIVISION. + WORKING-STORAGE SECTION. + + 01 WS-RESP PIC S9(8) COMP. + 01 WS-RESP2 PIC S9(8) COMP. + 01 WS-USER PIC X(56) VALUE SPACES. + 01 WS-PASS PIC X(50). + 01 WS-USERID PIC X(8) VALUE SPACES. + + *To generate the xml and copybook of the logon screen + * rcbms -GenBasedSymbolicMap -Language=cobol SIGNON.bms + COPY SIGNON. + + * COPY DFHBMSCA. + * COPY DFHAID. + COPY DFHRESP. + + LINKAGE SECTION. + 01 DFHCOMMAREA. + 05 LK-DATA PIC X(1). + PROCEDURE DIVISION. + + DISPLAY '=== Hello!'. + + IF EIBCALEN = 0 + EXEC CICS + GETMAIN SET(ADDRESS OF DFHCOMMAREA) + FLENGTH(LENGTH OF DFHCOMMAREA) + END-EXEC + DISPLAY '=== Sending Map' + MOVE 0 TO LK-DATA + PERFORM SEND-MAP + END-IF. + + IF LK-DATA = 0 + DISPLAY '=== Receiving Map' + MOVE 1 TO LK-DATA + PERFORM REC-MAP + END-IF. + + IF LK-DATA = 1 + DISPLAY '=== New user logged on' + MOVE 2 TO LK-DATA + PERFORM SHOW-ID + END-IF. + + DISPLAY "=== You should never get here! (" LK-DATA ")". + GOBACK. + + SEND-MAP. + EXEC CICS + SEND MAP('LOGONM') MAPSET('SIGNON') + ERASE + RESP(WS-RESP) + RESP2(WS-RESP2) + END-EXEC + IF WS-RESP NOT = DFHRESP(NORMAL) + *Should be replaced with better error-handling + DISPLAY '=== SEND FAILED' + GOBACK + END-IF + EXEC CICS + RETURN TRANSID('logo') + COMMAREA(DFHCOMMAREA) + LENGTH(LENGTH OF DFHCOMMAREA) + END-EXEC. + + REC-MAP. + EXEC CICS + RECEIVE MAP('LOGONM') MAPSET('SIGNON') + RESP(WS-RESP) + RESP2(WS-RESP2) + END-EXEC + IF WS-RESP NOT = DFHRESP(NORMAL) + *Should be replaced with better error-handling + DISPLAY '=== RECEIVE FAILED' + EXEC CICS RETURN END-EXEC + END-IF + + MOVE USERNO TO WS-USER + MOVE PASSWO TO WS-PASS + * Remove from possible mem dumps + MOVE SPACES TO PASSWO + + DISPLAY '=== Signon' + + EXEC CICS SIGNON + * USERID('LETMEIN0') + USERID(' ') + OIDCARD(WS-USER) + PHRASE(WS-PASS) + PHRASELEN(50) + RESP(WS-RESP) + RESP2(WS-RESP2) + END-EXEC + + * Remove from possible mem dumps. + MOVE SPACES TO WS-PASS + + IF WS-RESP = DFHRESP(NORMAL) + DISPLAY "=== Signon success!" + ELSE + *Should be replaced with better error-handling + DISPLAY "=== Signon failed!" + MOVE ZERO TO LK-DATA + + MOVE 'Login unsuccessful, please try again.' + TO INFMSI + + EXEC CICS + SEND MAP('LOGONM') MAPSET('SIGNON') + ERASE + RESP(WS-RESP) + RESP2(WS-RESP2) + END-EXEC + + EXEC CICS + RETURN TRANSID('logo') + COMMAREA(DFHCOMMAREA) + LENGTH(LENGTH OF DFHCOMMAREA) + END-EXEC + END-IF + + DISPLAY "=== Switching user" + EXEC CICS + SEND MAP('SUXESS') MAPSET('SIGNON') + ERASE + RESP(WS-RESP) + RESP2(WS-RESP2) + END-EXEC + EXEC CICS + RETURN TRANSID('DTS') + * COMMAREA(DFHCOMMAREA) + * LENGTH(LENGTH OF DFHCOMMAREA) + END-EXEC. + + SHOW-ID. + EXEC CICS ASSIGN USERID(WS-USERID) END-EXEC + DISPLAY '=== CICS USERID:' WS-USERID + EXEC CICS LINK PROGRAM('DTSCDRV') END-EXEC + GOBACK. + + + diff --git a/Copybook/SIGNON.cpy b/Copybook/SIGNON.cpy new file mode 100644 index 0000000..986f514 --- /dev/null +++ b/Copybook/SIGNON.cpy @@ -0,0 +1,36 @@ + 01 LOGONMI . + 02 FILLER PIC X(12). + 02 USERNL PIC S9(4) COMP-5. + 02 USERNF PIC X(1). + 02 FILLER REDEFINES USERNF. + 04 USERNA PIC X. + 02 USERNI PIC X(50). + 02 PASSWL PIC S9(4) COMP-5. + 02 PASSWF PIC X(1). + 02 FILLER REDEFINES PASSWF. + 04 PASSWA PIC X. + 02 PASSWI PIC X(50). + 02 INFMSL PIC S9(4) COMP-5. + 02 INFMSF PIC X(1). + 02 FILLER REDEFINES INFMSF. + 04 INFMSA PIC X. + 02 INFMSI PIC X(40). + 01 LOGONMO REDEFINES LOGONMI. + 02 FILLER PIC X(12). + 02 FILLER PIC X(3). + 02 USERNO PIC X(50). + 02 FILLER PIC X(3). + 02 PASSWO PIC X(50). + 02 FILLER PIC X(3). + 02 INFMSO PIC X(40). + 01 SUXESSI . + 02 FILLER PIC X(12). + 02 BLANKL PIC S9(4) COMP-5. + 02 BLANKF PIC X(1). + 02 FILLER REDEFINES BLANKF. + 04 BLANKA PIC X. + 02 BLANKI PIC X(30). + 01 SUXESSO REDEFINES SUXESSI. + 02 FILLER PIC X(12). + 02 FILLER PIC X(3). + 02 BLANKO PIC X(30). diff --git a/Maps/SIGNON.bms b/Maps/SIGNON.bms new file mode 100644 index 0000000..0ccbf09 --- /dev/null +++ b/Maps/SIGNON.bms @@ -0,0 +1,62 @@ +SIGNON DFHMSD TYPE=&SYSPARM,MODE=INOUT,TERM=ALL, X + LANG=COBOL,TIOAPFX=YES,STORAGE=AUTO,CTRL=FREEKB +LOGONM DFHMDI SIZE=(024,080), X + LINE=1, X + COLUMN=1 + DFHMDF POS=(1,28),LENGTH=40,ATTRB=ASKIP,COLOR=NEUTRAL, X + INITIAL='Signon to DUTAS' + DFHMDF POS=(3,1),LENGTH=75,ATTRB=ASKIP,COLOR=NEUTRAL, X + INITIAL='WARNING! BY ACCESSING AND USING THIS GOVERNMENX + T COMPUTER SYSTEM, YOU ARE' + DFHMDF POS=(4,1),LENGTH=75,ATTRB=ASKIP,COLOR=NEUTRAL, X + INITIAL='CONSENTING TO SYSTEM MONITORING FOR LAW ENFORCEX + MENT AND OTHER PURPOSES.' + DFHMDF POS=(5,1),LENGTH=75,ATTRB=ASKIP,COLOR=NEUTRAL, X + INITIAL='UNAUTHORIZED USE OF, OR ACCESS TO, THIS COMPUTEX + R SYSTEM MAY SUBJECT YOU TO' + DFHMDF POS=(6,1),LENGTH=75,ATTRB=ASKIP,COLOR=NEUTRAL, X + INITIAL='CRIMINAL PROSECUTION.' + DFHMDF POS=(8,1),LENGTH=70,ATTRB=ASKIP,COLOR=GREEN, X + INITIAL='Type your DCGov email address and password, theX + n press ENTER:' + DFHMDF POS=(10,12),LENGTH=15,ATTRB=ASKIP,COLOR=GREEN, X + INITIAL='Userid . . . .:' +USERN DFHMDF POS=(10,28),LENGTH=50,ATTRB=(UNPROT,IC),COLOR=TURQUOISE,X + INITIAL=' ' + DFHMDF POS=(10,79),ATTRB=ASKIP + DFHMDF POS=(11,12),LENGTH=15,ATTRB=ASKIP,COLOR=GREEN, X + INITIAL='Password . . .:' +PASSW DFHMDF POS=(11,28),LENGTH=50,ATTRB=(UNPROT,DRK), X + INITIAL=' ' + DFHMDF POS=(11,79),ATTRB=ASKIP +INFMS DFHMDF POS=(15,20),LENGTH=40,COLOR=RED,INITIAL=' ' + DFHMDF POS=(15,60),ATTRB=ASKIP + + DFHMDF POS=(24,1),LENGTH=70,ATTRB=ASKIP,COLOR=NEUTRAL, X + INITIAL='F3=Exit' + +SUXESS DFHMDI SIZE=(024,080), X + LINE=1, X + COLUMN=1 + DFHMDF POS=(1,28),LENGTH=40,ATTRB=ASKIP,COLOR=NEUTRAL, X + INITIAL='Signon to DUTAS' + DFHMDF POS=(3,1),LENGTH=75,ATTRB=ASKIP,COLOR=NEUTRAL, X + INITIAL='WARNING! BY ACCESSING AND USING THIS GOVERNMENX + T COMPUTER SYSTEM, YOU ARE' + DFHMDF POS=(4,1),LENGTH=75,ATTRB=ASKIP,COLOR=NEUTRAL, X + INITIAL='CONSENTING TO SYSTEM MONITORING FOR LAW ENFORCEX + MENT AND OTHER PURPOSES.' + DFHMDF POS=(5,1),LENGTH=75,ATTRB=ASKIP,COLOR=NEUTRAL, X + INITIAL='UNAUTHORIZED USE OF, OR ACCESS TO, THIS COMPUTEX + R SYSTEM MAY SUBJECT YOU TO' + DFHMDF POS=(6,1),LENGTH=75,ATTRB=ASKIP,COLOR=NEUTRAL, X + INITIAL='CRIMINAL PROSECUTION.' + DFHMDF POS=(8,10),LENGTH=60,ATTRB=ASKIP,COLOR=BLUE, X + INITIAL='Logon Success! Please press ENTER:' +BLANK DFHMDF POS=(10,32),LENGTH=30,ATTRB=(UNPROT,IC,DRK), X + INITIAL=' ' + DFHMDF POS=(10,64),ATTRB=ASKIP + DFHMDF POS=(24,1),LENGTH=70,ATTRB=ASKIP,COLOR=NEUTRAL, X + INITIAL='F3=Exit' + DFHMSD TYPE=FINAL + END diff --git a/Maps/SIGNON.xml b/Maps/SIGNON.xml new file mode 100644 index 0000000..f76cd1e --- /dev/null +++ b/Maps/SIGNON.xml @@ -0,0 +1,329 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +