Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- IDENTIFICATION DIVISION.
- PROGRAM-ID. CHANGE-LIGHT-BULB.
- AUTHOR. MAINFRAME-VETERAN.
- DATE-WRITTEN. 1972-01-01.
- DATE-COMPILED. 2023-12-14.
- *
- ENVIRONMENT DIVISION.
- CONFIGURATION SECTION.
- SOURCE-COMPUTER. IBM-370.
- OBJECT-COMPUTER. IBM-370.
- *
- INPUT-OUTPUT SECTION.
- FILE-CONTROL.
- SELECT BULB-MASTER-FILE
- ASSIGN TO 'BULBMAST'
- ORGANIZATION IS INDEXED
- ACCESS MODE IS RANDOM
- RECORD KEY IS BULB-ID
- FILE STATUS IS WS-FILE-STATUS.
- *
- DATA DIVISION.
- FILE SECTION.
- FD BULB-MASTER-FILE
- LABEL RECORDS ARE STANDARD
- BLOCK CONTAINS 0 RECORDS.
- 01 BULB-RECORD.
- 05 BULB-ID PIC X(6).
- 05 BULB-STATUS PIC X(1).
- 05 BULB-WATTAGE PIC 9(3).
- 05 BULB-INSTALL-DATE PIC 9(8).
- 05 BULB-CHANGE-COUNT PIC 9(4).
- 05 FILLER PIC X(58).
- *
- WORKING-STORAGE SECTION.
- 01 WS-FILE-STATUS PIC XX.
- 01 WS-CURRENT-DATE.
- 05 WS-YEAR PIC 9(4).
- 05 WS-MONTH PIC 99.
- 05 WS-DAY PIC 99.
- *
- PROCEDURE DIVISION.
- MAIN-LOGIC.
- PERFORM 100-INITIALIZE
- PERFORM 200-PROCESS-BULB
- PERFORM 900-TERMINATE
- GOBACK.
- *
- 100-INITIALIZE.
- OPEN I-O BULB-MASTER-FILE
- IF WS-FILE-STATUS NOT = "00"
- DISPLAY "ERROR OPENING FILE: " WS-FILE-STATUS
- PERFORM 900-TERMINATE
- STOP RUN
- END-IF.
- *
- 200-PROCESS-BULB.
- MOVE "000001" TO BULB-ID
- READ BULB-MASTER-FILE
- INVALID KEY
- DISPLAY "BULB NOT FOUND IN MASTER FILE"
- PERFORM 900-TERMINATE
- STOP RUN
- END-READ
- *
- IF BULB-STATUS = "W"
- PERFORM 300-CHANGE-BULB
- ELSE
- DISPLAY "BULB STATUS IS NOT WARRANTING CHANGE"
- END-IF.
- *
- 300-CHANGE-BULB.
- ACCEPT WS-CURRENT-DATE FROM DATE YYYYMMDD
- MOVE "A" TO BULB-STATUS
- ADD 1 TO BULB-CHANGE-COUNT
- MOVE WS-CURRENT-DATE TO BULB-INSTALL-DATE
- REWRITE BULB-RECORD
- INVALID KEY
- DISPLAY "ERROR UPDATING BULB RECORD"
- END-REWRITE.
- *
- 900-TERMINATE.
- CLOSE BULB-MASTER-FILE.
Advertisement
Add Comment
Please, Sign In to add comment