1 REM Ins{nd av Bo Kullmar SYSOP <1789> 1987-03-27 19.16.27 (KERMIT) 000001/ 000002*------------------------------ 000003 AA-HOW-TO-WRITE-COBOL SECTION. 000004*------------------------------ 000005* 000006* FUNCTION: PUT BRIEF DESCRIPTION OF SECTION IN PROPER 000007* ENGLISH. THIS SHOULD BE UPDATED, IF NECESSARY. 000100* 000200* PERFORMED BY: IT'S AMAZING HOW USEFUL THIS CAN BE IF BUGS 000300* NEED TO BE FIXED! 000355* 000356* PERFORMS: IS SILLY. YOU CAN SEE WHAT THIS SECTION PERFORMS 000357* BY LOOKING AT THE CODE. 000358* 000360 AA-START. 000400 PARAGRAPH AND SECTION HEADERS START IN COLUMN 8. 002400 OTHER PROCEDURE DIVISION LINES BEGIN IN COLUMN 12, ONWARDS. 002500* 002600 AA-PARAGRAPH-HEADINGS. 002700 NEW PARAGRAPH HEADERS SHOULD HAVE A BLANK LINE ABOVE THEM. 002800 BUT NOT NECESSARILY BELOW THEM. 002900* 003000 AA-LINE-INDENTATIONS. 003100 AS MENTIONED BEFORE, MOST LINES BEGIN IN COLUMN 12. 003200 IF A CONDITION OCCURS 003300 INDENT SUBORDINATE LINES BY FOUR CHARACTERS 003500 MAKE SURE NO PREMATURE FULL STOPS EXIST 003600 IF A SUB-CONDITION OCCURS 003900 INDENT BY FOUR CHARACTERS FOR EACH ONE 004000 ELSE 004100 THESE LINES HAVE THE SAME INDENTATION 004500 END WITH A BLANK LINE 004550 AND DO NOT FORGET THE FULL STOP AT THE END. 004555* 004556 IF CONDITION-1 OCCURS 004700 I FIND THIS QUITE USEFUL 004750 ELSE 004760 IF CONDITION-2 OCCURS 004790 THESE PSEUDO ELSE-IF STATMENTS 004900 ARE QUITE EASY TO READ 005200 ELSE 005300 THIS SORT OF CODE COULD LOOK HORRIBLE AND UGLY. 007100* 007200 AA-COMMENTS. 007210* -IF- U MUST HAVE CMTS LIK THIS 007220* -WHY- BOTHR HAVBING THEM ATAL 007240 ESPECIALLY IF THEY ARE BARELY DISTINGUISHABLE FROM CODE. 007250* 007330* INSTEAD COMMENTS SHOULD BE WRITTEN IN SENSIBLE ENGLISH: 008110* 1) WITH EMPHATIC POINTS IF NECESSARY 008120* 2) WITHOUT BEING FACILE (BUT HUMOUR IS ALLOWED) 008300* 3) WITH BLANK LINES ABOVE AND BELOW THEM 008700* 4) WITH PROPER PUNCTUATION. 008900* 009000 SEE WHAT I MEAN? IT MAKES THINGS MUCH EASIER TO UNDERSTAND 009500 AND REALLY IS WORTH THE EXTRA TIME SPENT ON THEM. 010100* 010200 AA-LAYOUT. 010300 WHY DO PEOPLE WRITE 010350 MOVE 1 010500 TO WS-SUB 011000 WHEN THEY CAN WRITE 011100 MOVE 1 TO WS-SUB 011200 WHICH IS INFINITELY EASIER TO READ 011210 I MEAN WOULD YOU WRITE 011220 A LETTER LIKE 011230 THIS? 011300* 011400 AA-LOOP. 011550 IF YOU CALL A SPADE A SPADE 011600 WHY NOT CALL A LOOP A LOOP 011700 GO TO AA-LOOP. 011800* 011810 AA-COMPLEX-CONDITIONS. 011820 IF COMPLEX CONDITION REQUIRES THIS TO BE TRUE 011830 AND THAT TO BE TRUE 011840 AND THE OTHER TO BE TRUE 011850 IS THIS FORMAT NOT BETTER THAN 011860 LOTS OF NESTED IF-STATEMENTS? 011870* 011880 AND A COUPLE OF "GO TO" COMMANDS 011890 IS BETTER THAN AN IF-CONDITION AS LONG AS YOUR ARM. 011895* 012000 AA-HOW-TO-GIVE-DEBUGGERS-A-HARD-TIME 012100* 1. FACILE COMMENTS. 012200* 012210* PERFORM THE SECTION THAT CLEARS THE SCREEN 012220* 012230 PERFORM BB-CLEAR-SCREEN. 012300* 012400* 2. DIFFICULT SECTION/PARAGRAPH NAMES. 012550 PERFORM EXT-LNG-ABBR-DESC-SECTN-WHCH-IS-DIF-TO-RBR 012600* 012700 3. BADLY-WRITTEN/INACCURATE/UNCHECKED/NON-EXISTENT COMMENTS 012800* 013000* IF HAVE A VALUE OF THE DIGIT > 1 THEN 013100* PERFORM SECTIO AND INCREMENT TO VALUE OF WS-WHATSIT AT THE TIM 013200* 013210* 4. INCONSISTENT WORKING-STORAGE VALUES (PARTICULARLY 013220* AMOUNTS AND DATES) 013230* 013300 IF WS-01-AMOUNT > 1000000 013400 MOVE WS-01-AMOUNT TO WS-PRINT-AMT 013550 MOVE WS-PRINT-AMT TO WS-STORE-AMNT 013600 MOVE WS-STORE-AMNT TO WS-HOLD-AMONT 013700 ETC ETC. 013800*