Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 14 additions & 10 deletions COBOL/DOGEDEET
Original file line number Diff line number Diff line change
Expand Up @@ -11,14 +11,17 @@
*
* 08/30/2020
* License GPL v3
*///////////////////////////////////////////////////////////////
*///////////////////////////////////////////////////////////////

IDENTIFICATION DIVISION.
PROGRAM-ID. DOGEDEET.
AUTHOR. SOLDIER OF FORTRAN.
INSTALLATION. DOGE BANK.
DATE-WRITTEN. 08/30/20.
SECURITY. CONFIDENTIAL.

ENVIRONMENT DIVISION.

DATA DIVISION.
WORKING-STORAGE SECTION.
* VSAM Record Layout
Expand Down Expand Up @@ -77,9 +80,10 @@
*
LINKAGE SECTION.
01 DFHCOMMAREA PIC X(10).

PROCEDURE DIVISION.
DOGE-MAIN.
*

IF EIBCALEN > ZERO THEN
MOVE DFHCOMMAREA TO DOGECOMMS-AREA.

Expand Down Expand Up @@ -133,18 +137,19 @@
RETURN TRANSID('DEET')
COMMAREA(DOGECOMMS-AREA)
END-EXEC.
DOGE-EXIT.

DOGE-EXIT.
GOBACK.
*

DOGE-WTO.
EXEC CICS WRITE OPERATOR
TEXT(WTO-MESSAGE)
END-EXEC.
MOVE SPACES TO WTO-MESSAGE.

* Start by checking where we are or if we have a valid key
DOGE-START-BROWSE.

DOGE-START-BROWSE.
* Start by checking where we are or if we have a valid key
EXEC CICS
STARTBR FILE('DOGEVSAM')
RIDFLD(RECORD-ID)
Expand Down Expand Up @@ -209,6 +214,7 @@
MOVE SPACES TO WTO-MESSAGE.

FILL-SCREEN-DATA.

MOVE TDATE TO KEYO.
MOVE DDATE TO DATEO.
IF TAMT-SIGN-NEGATIVE THEN
Expand All @@ -231,10 +237,8 @@
MOVE TAMT-SIGN TO DSIGN.
*
CONVERT-DATE.
*
* Converts Linux EPOCH to CICS Absolute Time
* and places it in DISPLAY-TRAN:DDATE as MM/DD/YYYY
*
MOVE NUM-DATE TO TEMP-DATE.
MULTIPLY 1000 BY TEMP-DATE.
ADD SINCE-EPOCH TO TEMP-DATE.
Expand All @@ -255,8 +259,9 @@
INTO(DOGEDT1I)
ASIS
END-EXEC.

PARSE-KEY.
* Do we want to leave this screen?
* Do we want to leave this screen?
IF OPTIONI EQUAL TO 'T' OR OPTIONI EQUAL TO 't'
- OR OPTIONI EQUAL TO 'M' OR OPTIONI EQUAL TO 'm'
MOVE 'Opening Transaction History' TO WTO-MESSAGE
Expand Down Expand Up @@ -291,4 +296,3 @@
MOVE SPACES TO WTO-MESSAGE.
* Shush compiler warnings
MOVE SPACES TO WTO-MESSAGE.

46 changes: 24 additions & 22 deletions COBOL/DOGEMAIN
Original file line number Diff line number Diff line change
Expand Up @@ -9,13 +9,16 @@
* 08/30/2020
* License GPL v3
*///////////////////////////////////////////////////////////////

IDENTIFICATION DIVISION.
PROGRAM-ID. DOGECOIN.
AUTHOR. SOLDIER OF FORTRAN.
INSTALLATION. DOGE BANK.
DATE-WRITTEN. 08/30/20.
SECURITY. CONFIDENTIAL.

ENVIRONMENT DIVISION.

DATA DIVISION.
WORKING-STORAGE SECTION.
* To Create outgoing commands
Expand Down Expand Up @@ -77,16 +80,16 @@
COPY DOGEMN.
COPY DFHAID.
COPY DFHBMSCA.
*
LINKAGE SECTION.
*
01 DFHCOMMAREA PIC X(10).
*

PROCEDURE DIVISION.
00000-MAIN.
*

IF EIBCALEN > ZERO THEN
MOVE DFHCOMMAREA TO DOGECOMMS-AREA.
*

IF EIBCALEN EQUAL TO ZERO OR SUCH-DOGE

MOVE 'STARTING DOGE CICS.' TO WTO-MESSAGE
Expand Down Expand Up @@ -121,9 +124,10 @@
RETURN TRANSID('DOGE')
COMMAREA(DOGECOMMS-AREA)
END-EXEC.

DOGE-EXIT.
GOBACK.
*

RECEIVE-OPTION.
* Get the option the user enters

Expand All @@ -136,7 +140,7 @@
END-EXEC.

PARSE-OPTION.
* Parse the user entry
* Parse the user entry
IF OPTIONI EQUAL TO 'T' OR OPTIONI EQUAL TO 'M'
MOVE 'Opening Transaction History' TO WTO-MESSAGE
PERFORM DOGE-WTO
Expand Down Expand Up @@ -167,18 +171,18 @@
MOVE SPACES TO WTO-MESSAGE.

DOGE-MAIN-SCREEN.
* Show the main doge screen
* Show the main doge screen
MOVE 'Sending Doge CICS Main Screen.' TO WTO-MESSAGE.
PERFORM DOGE-WTO.
EXEC CICS STARTBR FILE('DOGEVSAM')
RIDFLD(START-RECORD-ID)
END-EXEC.
* First is our dummy 'eyecatcher' records at the bottom
* First is our dummy 'eyecatcher' records at the bottom
EXEC CICS READPREV FILE('DOGEVSAM')
RIDFLD(START-RECORD-ID)
INTO(TRANSACTION)
END-EXEC.
* Next is our last record
* Next is our last record
EXEC CICS READPREV FILE('DOGEVSAM')
RIDFLD(START-RECORD-ID)
INTO(TRANSACTION)
Expand All @@ -188,7 +192,7 @@
PERFORM CONVERT-AMOUNT-TO-DISPLAY.
MOVE RECENT-COLOR TO RECNT2C.
MOVE DISPLAY-TRAN TO RECNT2O.
* Then our second to last record
* Then our second to last record
EXEC CICS READPREV FILE('DOGEVSAM')
RIDFLD(START-RECORD-ID)
INTO(TRANSACTION)
Expand All @@ -197,28 +201,28 @@
MOVE TLABEL TO DLABEL.
PERFORM CONVERT-AMOUNT-TO-DISPLAY.
MOVE RECENT-COLOR TO RECNT1C.
* If theres only one historical record move it up
* If theres only one historical record move it up
IF TDATE = 0000000002
MOVE RECNT2O TO RECNT1O
MOVE SPACES TO RECNT1O
ELSE
MOVE DISPLAY-TRAN TO RECNT1O.
* Now we get the current ammount
* First we get reset the browse
* Now we get the current ammount
* First we get reset the browse
MOVE 0000000001 TO START-RECORD-ID.
EXEC CICS RESETBR FILE('DOGEVSAM')
RIDFLD(START-RECORD-ID)
END-EXEC.
* Then read the record
* Then read the record
EXEC CICS READNEXT FILE('DOGEVSAM')
RIDFLD(START-RECORD-ID)
INTO(TRANSACTION)
END-EXEC.
* Convert it and put on the map
* Convert it and put on the map
PERFORM CONVERT-AMOUNT-TO-DISPLAY.
MOVE THE-AMOUNT TO AVAILABLE-AMOUNT.
MOVE THE-AMOUNT TO AVAILO.
* Get the next record
* Get the next record
EXEC CICS READNEXT FILE('DOGEVSAM')
RIDFLD(START-RECORD-ID)
INTO(TRANSACTION)
Expand All @@ -227,7 +231,7 @@
MOVE THE-AMOUNT TO PENDNGO.
ADD AVAILABLE-AMOUNT TO THE-AMOUNT.
MOVE THE-AMOUNT TO TOTALO.
* Aaaaaand were done show the map now
* And were done show the map now

EXEC CICS ENDBR
FILE('DOGEVSAM')
Expand All @@ -238,7 +242,7 @@
MAPSET('DOGEMN')
ERASE
END-EXEC.
*

CONVERT-AMOUNT-TO-DISPLAY.
* Converts the number from VSAM to ##,###,###.########
MOVE DFHGREEN TO RECENT-COLOR.
Expand All @@ -249,20 +253,18 @@
SUBTRACT THE-AMOUNT FROM ZERO GIVING THE-AMOUNT.
MOVE THE-AMOUNT TO DAMOUNT.
MOVE TAMT-SIGN TO DSIGN.
*

CONVERT-DATE.
*
* Converts Linux EPOCH to CICS Absolute Time
* and places it in DISPLAY-TRAN:DDATE as MM/DD/YYYY
*
MOVE NUM-DATE TO TEMP-DATE.
MULTIPLY 1000 BY TEMP-DATE.
ADD SINCE-EPOCH TO TEMP-DATE.
EXEC CICS FORMATTIME ABSTIME(TEMP-DATE)
DATESEP('/')
MMDDYYYY(DDATE)
END-EXEC.
*

DOGE-WTO.
EXEC CICS WRITE OPERATOR
TEXT(WTO-MESSAGE)
Expand Down
14 changes: 10 additions & 4 deletions COBOL/DOGEQUIT
Original file line number Diff line number Diff line change
Expand Up @@ -9,13 +9,16 @@
* 08/30/2020
* License GPL v3
*///////////////////////////////////////////////////////////////

IDENTIFICATION DIVISION.
PROGRAM-ID. DOGEQUIT.
AUTHOR. SOLDIER OF FORTRAN.
INSTALLATION. DOGE BANK.
DATE-WRITTEN. 08/30/20.
SECURITY. CONFIDENTIAL.

ENVIRONMENT DIVISION.

DATA DIVISION.
WORKING-STORAGE SECTION.
01 WTO-MESSAGE PIC X(38) VALUE SPACES.
Expand All @@ -32,7 +35,7 @@
10 FACE09 PIC X(5) VALUE '(*_*)'.
10 FACE10 PIC X(5) VALUE '(^-^)'.
05 FACE-ARRAY REDEFINES FACES-LIST OCCURS 10 PIC X(05).
*

01 EXIT-MSG.
10 COMMAND PIC X VALUE X'F5'.
10 WRITE-CONTROL PIC X VALUE X'C3'.
Expand Down Expand Up @@ -67,6 +70,7 @@
01 ISEED PIC S9(8) COMP.
01 FACE PIC S9(8) COMP.
01 GARBAGE PIC S9(8) COMP.

PROCEDURE DIVISION.
* Preseed the random number generator
MOVE EIBTIME TO ISEED.
Expand All @@ -81,9 +85,10 @@
END-EXEC.

EXEC CICS RETURN END-EXEC.

RANDOM-NUMBER SECTION.
* simple LCG algorithm (lifted from Boillot fortran book)
* Source: KICKS Kookbook
* simple LCG algorithm (lifted from Boillot fortran book)
* Source: KICKS Kookbook
MULTIPLY ISEED BY IA GIVING ISEED.
IF ISEED < 0 COMPUTE ISEED = -1 * ISEED.
ADD IC, ISEED GIVING ISEED.
Expand All @@ -93,9 +98,10 @@
DIVIDE FSEED BY FIM GIVING FIM.
COMPUTE FSEED = 1000.0 * FIM.
MOVE FSEED TO IRNDM.

RANDOM-NUMBER-EXIT.
EXIT.
*

DOGE-WTO.
EXEC CICS WRITE OPERATOR
TEXT(WTO-MESSAGE)
Expand Down
Loading