000100 ID DIVISION. 000200 PROGRAM-ID. PRICE. 000300*============================================================== 000400* Demonstrates use of SCREEN SECTION adapting CALC3 to this 000500* technique. Adapted to RM/COBOL-85 Version 5.24. Uses 000600* modular, structured logic and functionality can readily 000700* be expanded. 000800*============================================================== 000900 001000 DATA DIVISION. 001100 WORKING-STORAGE SECTION. 001200 01 WS-QUANTITY PIC 9(5). 001300 01 WS-PRICE PIC S99V99. 001400 01 WS-TOTAL PIC S9(7)V99. 001500 01 WS-TAX-AMOUNT PIC S9(7)V99. 001600 01 WS-GRAND-TOTAL PIC S9(8)V99. 001700 01 WS-RESPONSE PIC X VALUE 'C'. 001800* 001900 SCREEN SECTION. 002000*-------------------------------------------------------------- 002100 01 CALC5-LABEL-SCREEN BACKGROUND IS BLUE 002200 FOREGROUND IS WHITE. 002300 05 BLANK SCREEN. 002400 05 'Quantity Price Total' 002500 LINE 5 COLUMN 20 HIGHLIGHT. 002600 002700 05 '6% Tax' 002800 LINE 10 COLUMN 35 HIGHLIGHT. 002900 003000 05 '=============' 003100 LINE 12 COLUMN 43 HIGHLIGHT. 003200 003300 05 'Grand Total' 003400 LINE 14 COLUMN 30 HIGHLIGHT. 003500*-------------------------------------------------------------- 003600 01 CALC5-CLEAR-OFF-SCREEN. 003700 05 LINE 7 COLUMN 21 VALUE ' ' REVERSED. 003800 05 LINE 7 COLUMN 33 VALUE ' ' REVERSED. 003900 05 LINE 7 COLUMN 43 VALUE ' ' REVERSED. 004000 05 LINE 10 COLUMN 43 VALUE ' ' REVERSED. 004100 05 LINE 14 COLUMN 43 VALUE ' ' REVERSED. 004200 05 LINE 24 COLUMN 1 VALUE 004300 'Enter data and press or ' BLANK LINE. 004400*-------------------------------------------------------------- 004500 01 CALC5-INPUT-SCREEN. 004600 004700 05 LINE 7 COLUMN 21 PIC ZZ,ZZ9 TO WS-QUANTITY 004800 REVERSED NO HIGHLIGHT REQUIRED AUTO. 004900 005000 05 LINE 7 COLUMN 33 PIC Z9.99- TO WS-PRICE 005100 REVERSED NO HIGHLIGHT REQUIRED. 005200*-------------------------------------------------------------- 005300 01 CALC5-OUTPUT-SCREEN. 005400 005500 05 LINE 7 COLUMN 21 PIC ZZ,ZZ9 FROM WS-QUANTITY 005600 REVERSED. 005700 005800 05 LINE 7 COLUMN 33 PIC ZZ.99- FROM WS-PRICE 005900 REVERSED. 006000 006100 05 LINE 7 COLUMN 43 PIC ZZ,ZZZ,ZZ9.99- FROM WS-TOTAL 006200 REVERSED. 006300 006400 05 LINE 10 COLUMN 43 PIC ZZ,ZZZ,ZZ9.99- FROM WS-TAX-AMOUNT 006500 REVERSED. 006600 006700 05 LINE 14 COLUMN 43 PIC ZZ,ZZZ,ZZ9.99- 006800 FROM WS-GRAND-TOTAL REVERSED. 006900 007000 05 LINE 24 COLUMN 1 VALUE 007100 'Press to continue or "Q" to end' BLANK LINE. 007200*-------------------------------------------------------------- 007300 01 CALC5-ENDING-SCREEN BACKGROUND IS BLACK 007400 FOREGROUND IS BLUE. 007500 05 BLANK SCREEN. 007600 05 LINE 7 COLUMN 10 007700 VALUE '********************************'. 007800 05 LINE 8 COLUMN 10 007900 VALUE '* *'. 008000 05 LINE 9 COLUMN 10 008100 VALUE '* *'. 008200 05 LINE 10 COLUMN 10 008300 VALUE '* *'. 008400 05 LINE 11 COLUMN 10 008500 VALUE '********************************'. 008600*============================================================== 008700* 008800 PROCEDURE DIVISION. 008900 0000-MAINLINE. 009000 PERFORM 1000-BOJ. 009100 PERFORM 2000-PROCESS 009200 UNTIL WS-RESPONSE = 'Q' OR 'q'. 009300 PERFORM 3000-EOJ. 009400 STOP RUN. 009500 009600*============================================================== 009700 009800 1000-BOJ. 009900*--------------------------------------------- 010000* Clear screen and display labels highlighted 010100*--------------------------------------------- 010200 DISPLAY CALC5-LABEL-SCREEN. 010300 010400*============================================================== 010500 010600 2000-PROCESS. 010700*------------------------------------------------------ 010800* Blank out the data fields from any prior transaction 010900*------------------------------------------------------ 011000 DISPLAY CALC5-CLEAR-OFF-SCREEN. 011100 011200*--------------------------------------------------- 011300* Accept the data, do computations, present results 011400*--------------------------------------------------- 011500 ACCEPT CALC5-INPUT-SCREEN. 011600 COMPUTE WS-TOTAL = WS-QUANTITY * WS-PRICE. 011700 COMPUTE WS-TAX-AMOUNT = WS-TOTAL * .06. 011800 COMPUTE WS-GRAND-TOTAL = WS-TOTAL + WS-TAX-AMOUNT. 011900 DISPLAY CALC5-OUTPUT-SCREEN. 012000 012100*--------------------------------------- 012200* Ask if user wants to continue or quit 012300*--------------------------------------- 012400 ACCEPT WS-RESPONSE 012500 LINE 24 COLUMN 60 012600 PROMPT '_' REVERSED NO BEEP LOW. 012700 012800*============================================================== 012900 013000 3000-EOJ. 013100*------------------------------------------------- 013200* Clear the screen, display sign-off message, and 013300* leave the system set to normal screen colors 013400*------------------------------------------------- 013500 DISPLAY CALC5-ENDING-SCREEN. 013600 DISPLAY 'CALC5 ENDED AS REQUESTED' 013700 LINE 9 COLUMN 14 013800 BLINK 013900 CONTROL "FCOLOR=RED". 014000 DISPLAY ' ' 014100 LINE 1 COLUMN 1 014200 CONTROL "FCOLOR=WHITE".