The Common Business Oriented Goldilocks IDENTIFICATION DIVISION. PROGRAM-ID. ACOBOLFABLE. DATE WRITTEN. ONCE UPON A TIME. REMARKS. AN EXERCISE IN COBOL VERSATILITY. ENVIRONMENT DIVISION. CONFIGURATION SECTION. OBJECT COMPUTER ANY MUSIC BOX, MEMORY SIZE 2048 BYTES, 19 TAPE DRIVES, 11 DISC DRIVES, 1 GOLDILOCKS, 3 BEARS. INPUT-OUTPUT SECTION FILE-CONTROL. SELECT TAPE DRIVES, ASSIGN THEM TO THE FOREST. SELECT DISC DRIVES SELECT GOLDILOCKS, SELECT BEARS, ASSIGN TO ONE COTTAGE. I-O-CONTROL, APPLY RED TAPE TO TAPE DRIVES, APPLY HOFFNUNG RECORD TO DISC DRIVE, APPLY GOLDILOCKS, BEARS TO COTTAGE. DATA DIVISION. FD GOLDI. LABEL RECORDS ARE STANDARD, VALUE OF IDENTIFICATION IS "GOLDILOCKS" DATA RECORD IS GOLDILOCKS 01 GOLDILOCKS 02 HGT SIZE IS 62 INS. 02 WGT SIZE IS 110 LBS. 02 VITAL-STATS. 05 B 38. 05 W 24 05 H 36 02 RATING 100% FD 3-BEARS. LABEL RECORDS ARE STANDARD, VALUE OF IDENTIFICATION IS "BEARS" DATA RECORDS ARE DADDY-BEAR, MUMMY-BEAR, BABY-BEAR. 01 DADDY-BEAR. 02 HGT 70 INS 02 WGT 750 LBS 02 COLOUR-OF-EYES BLOODSHOT. 02 DISPOSITION UNBEARABLE. 01 MUMMY-BEAR. 02 HGT 65 INS 02 WGT 700 LBS 02 COLOUR-OF-EYES BLUE. 02 DISPOSITION BEARABLE. 01 BABY-BEAR. 02 HGT 40 INS 02 WGT 200 LBS 02 COLOUR-OF-EYES BLUE. 02 DISPOSITION INFANTILE. WORKING STORAGE SECTION. 01 COTTAGE. PICTURE IS COZY. 02 KITCHEN. 05 TABLE SIZE IS LARGE, VALUE IS 1. 05 CHAIRS SIZE IS MEDIUM, VALUE IS 3 02 PORRIDGE. 05 KING-SIZE OCCURS 1 TIME. 05 QUEEN-SIZE OCCURS 1 TIME. 05 PRINCE-SIZE OCCURS 1 TIME. 02 DOOR SIZE IS USUAL, VALUE IS OPEN. 02 BEDROOM. 05 BED 07 LARGE OCCURS 1 TIME. 07 MEDIUM OCCURS 1 TIME. 07 SMALL OCCURS 1 TIME. 05 WINDOW SIZE IS SMALL, VALUE IS OPEN. 01 RIGHT-COTTAGE REDEFINES COTTAGE, VALUE IS SAME. 01 KING-SIZE-BED-SLEPT-IN SIZE IS BIG, VALUE IS ROCK BOTTOM. 01 QUEEN-SIZE-BED-SLEPT-IN SIZE IS MEDIUM, VALUE IS DEPRESSED. 01 NO-PORRIDGE SIZE IS SMALL, VALUE IS ZERO. 01 SIP-SIZE IS LITTLE, VALUE IS "SSSLUP". 01 SLUMBERLAND SIZE IS UNLIMITED, VALUE IS "ZZZZZZZZ" CONSTANT SECTION. 01 COMMENT1. SIZE IS A (36) VALUE IS "SOMEBODY HAS BEEN EATING MY PORRIDGE". 01 COMMENT2. SIZE IS A (36) VALUE IS "SOMEBODY HAS BEEN SLEEPING IN MY BED". PROCEDURE DIVISION. FOREST SECTION. START-OF-TALE. OPEN STORY. READ FOLLOWING. FIRST-MOVE. MOVE GOLDILOCKS TO COTTAGE. IF DOOR IS CLOSED OR BEARS ARE GREATER THAN 0 ALTER ENTER-GOLDILOCKS TO PROCEED TO HASTY-RETREAT. ENTER-GOLDILOCKS. GO TO KITCHEN-SCENE. KITCHEN-SCENE. IF PORRIDGE IS KING-SIZE. PERFORM TASTE-ROUTINE VARYING PORRIDGE FROM KING-SIZE BY -1 UNTIL PORRIDGE = PRINCE-SIZE OTHERWISE COMPUTE IF COTTAGE - RIGHT-COTTAGE GO TO BEDROOM-SCENE. TASTE-ROUTINE. SUBTRACT SIP FROM PORRIDGE GIVING NO PORRIDGE. BEDROOM-SCENE. MOVE GOLDILOCKS TO BEDROOM. ADD GOLDILOCKS TO BED (LARGE). DISPLAY "IT IS TOO HARD". SUBTRACT GOLDILOCKS FROM BED(LARGE) GIVING KING-SIZE-BED-SLEPT-IN. ADD GOLDILOCKS TO BED (MEDIUM). DISPLAY "IT IS TOO SOFT". SUBTRACT GOLDILOCKS FROM BED(MEDIUM) GIVING QUEEN-SIZE-BED-SLEPT-IN. ADD GOLDILOCKS TO BED (SMALL). DISPLAY "IT IS JUST RIGHT". ADD GOLDILOCKS TO SLUMBERLAND. BEARS-RETURN. MOVE DADDY-BEAR, MUMMY-BEAR, BABY-BEAR TO KITCHEN. MOVE CORRESPONDING BEARS TO PORRIDGE. DISPLAY DADDY-BEAR COMMENT1. DISPLAY MUMMY-BEAR COMMENT2. DISPLAY BABY-BEAR "AND HERE SHE IS". HASTY-RETREAT. IF WINDOW IS OPEN EXIT GOLDILOCKS OTHERWISE MOVE GOLDILOCKS TO DOOR. EXIT. END. CLOSE STORY,