1
0
mirror of https://github.com/retro-software/B5500-software.git synced 2026-03-02 17:44:40 +00:00
Files
Paul Kimpel 2c72f7fd1d Commit CUBE Library version 13 of February 1972.
1. Commit library tape images, directories, and extracted text files.
2. Commit additional utilities under Unisys-Emode-Tools.
2018-05-27 11:24:23 -07:00

537 lines
42 KiB
COBOL

000100DIRECTORY 000119CA 00
000200 00
000300************************************************************************00
000400 PLEASE NOTE THAT THE BURROUGHS CORPORATION ASSUMES 00
000500 NO RESPONSIBILITY FOR THE USE OR MAINTENANCE OF THIS PROGRAM. 00
000600************************************************************************00
000700 00
000800 00
001000 ***** LINE 00915 SHOULD CONTAIN THE HIGHEST ADDRESS WHICH DIRECT00
001100 OVERLAY DISK MAY OCCUPY AS STATED IN THE "BACKUP" CARD DIRECT00
001200 OF THE COLD START DECK. DIRECT00
001300 DIRECT00
001400 ***** LINES 01003 THRU 01022 SHOULD SHOW THE NUMBER OF DIRECT00
001500 SEGMENTS OF DISK INSTALLED ON EACH OF THE EU-S ATTACHED DIRECT00
001600 TO THE SYSTEM IF AVAILABLE DISK IS TO BE CORRECTLY STATED. DIRECT00
001700 DIRECT00
001800 ***** THE COLD START DECK MUST CONTAIN A FILE CARD GROUP DIRECT00
001900 FOR THE FILE DIRCTRY/DISK. DIRECT00
002000 DIRECT00
002100 ***** DISKTOG MUST BE OFF WHEN THIS PROGRAM IS EXECUTING DIRECT00
002200 ITS INPUT PHASE. DIRECT00
002300 DIRECT00
002400 ***** MAX-LINES (SEE LINE 00712) SPECIFIES THE MAXIMUM DIRECT00
002500 NUMBER OF LINES PER PAGE. DIRECT00
002600 DIRECT00
002700 IDENTIFICATION DIVISION. DIRECT00
002800 PROGRAM-ID. LIST DIRECTORY. DIRECT00
002900 AUTHOR. C CODDINGTON BURROUGHS OAKLAND, CALIF. DIRECT00
003000 DATE-WRITTEN. MARCH 1968. DIRECT00
003100 DATE-COMPILED. DIRECT00
003200 REMARKS. CREATES FROM THE DISK DIRECTORY A FILE DIRECT00
003300 WHICH CONTAINS ALPHA KEY RECORDS WITH A CODE DIRECT00
003400 OF 1 AND ADDRESS KEY RECORDS WITH A CODE OF 2. DIRECT00
003500 SORTS THE ABOVE RECORDS. DIRECT00
003600 LISTS DISK USAGE BY IDENTIFICATION. DIRECT00
003700 LISTS DISK USAGE AND AVAILABLE DISK DIRECT00
003800 AREAS BY ADDRESS. DIRECT00
003900 DIRECT00
004000 ENVIRONMENT DIVISION. DIRECT00
004100 CONFIGURATION SECTION. DIRECT00
004200 SOURCE-COMPUTER. B-5500. DIRECT00
004300 OBJECT-COMPUTER. B-5500 MEMORY SIZE 6800 WORDS. DIRECT00
004400 INPUT-OUTPUT SECTION. DIRECT00
004500 FILE-CONTROL. SELECT SORTER ASSIGN TO SORT DISK. DIRECT00
004600 SELECT DIRECTORY ASSIGN TO DISK. DIRECT00
004700 SELECT LISTING ASSIGN TO PRINTER DISK. DIRECT00
004800 I-O-CONTROL. MULTIPLE FILE CONTAINS DIRECTORY DIRECT00
004900 VALUE OF MFID IS "DIRCTRY". DIRECT00
005000 DIRECT00
005100 DATA DIVISION. DIRECT00
005200 FILE SECTION. DIRECT00
005300 SD SORTER DATA RECORD SORT-REC. DIRECT00
005400 01 SORT-REC SZ 72. DIRECT00
005500 05 SORT-KEY. DIRECT00
005600 10 TYPE PC 9. DIRECT00
005700 10 PREFIX PC X(7). DIRECT00
005800 10 SUFFIX PC X(7). DIRECT00
005900 10 ROW-NUM PC 99. DIRECT00
006000 10 MAX-ROWS PC 99. DIRECT00
006100 10 RL PC 9(4). DIRECT00
006200 10 FILLER SZ 1. DIRECT00
006300 05 BFACTOR PC 9(4). DIRECT00
006400 05 PURGE-FACTOR PC 999. DIRECT00
006500 05 CREATIONXDATE PC 9(5). DIRECT00
006600 05 LAST-ACCESS-DATE PC 9(5). DIRECT00
006700 05 NO-OF-RECORDS PC 9(9). DIRECT00
006800 05 SEGMENTS-IN-ROW PC 9(7). DIRECT00
006900 05 ROW-ADDRESS PC 9(7). DIRECT00
007000 05 PREFIX-IN-ROW-ADDRESS DIRECT00
007100 REDEFINES ROW-ADDRESS PC X(7). DIRECT00
007200 05 USER-NUMBER. DIRECT00
007300 10 FILLER SZ 1. DIRECT00
007400 10 USERS-NO PC X(7). DIRECT00
007500 DIRECT00
007600 MD DIRECTORY DIRECT00
007700 FILE CONTAINS 1410 RECORDS DIRECT00
007800 ACCESS MODE SEQUENTIAL DIRECT00
007900 VALUE OF ID "DISK" DIRECT00
008000 DATA RECORD DIRECTORY-RECORD. DIRECT00
008100 01 DIRECTORY-RECORD SZ 3840. DIRECT00
008200 05 FILE-RECORD OC 15 SZ 240. DIRECT00
008300 10 WORD-ZERO CMP PC 9(8). DIRECT00
008400 10 WORD-1 CMP PC 9(8). DIRECT00
008500 10 WORD-2 PC X(8). DIRECT00
008600 10 WORD-3 (SAVE-CREAT). DIRECT00
008700 15 PURGE-FACTOR PC XXX. DIRECT00
008800 15 CREATIONXDATE PC 9(5). DIRECT00
008900 10 CMP-3 REDEFINES WORD-3 PC 9(8) CMP. 7-5-6800
009000 10 WORD-4. DIRECT00
009100 15 FILLER SZ 2. DIRECT00
009200 15 LAST-ACCESS-DATE PC 9(5). DIRECT00
009300 15 FILLER SZ 1. DIRECT00
009400 10 CMP-4 REDEFINES WORD-4 PC 9(8) CMP. 7-5-6800
009500 10 WORD-5 PC 9(8). DIRECT00
009600 10 WORD-6 PC 9(8). DIRECT00
009700 10 NO-OF-RECORDS (WORD-7) PC 9(8) CMP. DIRECT00
009800 10 SEGMENTS-IN-ROW (WORD-8) PC 9(7) CMP. DIRECT00
009900 10 WORD-9 (ACT-ROW) PC 9(8) CMP. DIRECT00
010000 10 ROW-ADDRESS OC 20 PC 9(8) CMP. DIRECT00
010100 05 FILE-INDEX OC 15. DIRECT00
010200 10 FILLER SZ 1. DIRECT00
010300 10 PREFIX PC X(7). DIRECT00
010400 10 FILLER SZ 1. DIRECT00
010500 10 SUFFIX PC 9(7). DIRECT00
010600 DIRECT00
010700 FD LISTING DIRECT00
010800 VALUE OF ID "DIRECTY" DIRECT00
010900 DATA RECORD DIRECTORY-LISTING-RECORD. DIRECT00
011000 01 DIRECTORY-LISTING-RECORD SZ 132. DIRECT00
011100 05 FILLER SZ 1. DIRECT00
011200 05 PREFIX PC X(7). DIRECT00
011300 05 B-SLASH-B PC X(3). DIRECT00
011400 05 SUFFIX PC X(7). DIRECT00
011500 05 FILLER SZ 6. DIRECT00
011600 05 RL PC Z(4). DIRECT00
011700 05 FILLER SZ 7. DIRECT00
011800 05 BFACTOR PC Z(4). DIRECT00
011900 05 FILLER SZ 5. DIRECT00
012000 05 PURGE-FACTOR PC ZZZ. DIRECT00
012100 05 FILLER SZ 6. DIRECT00
012200 05 CREATIONXDATE PC 9(5). DIRECT00
012300 05 FILLER SZ 4. DIRECT00
012400 05 LAST-ACCESS-DATE PC 9(5). DIRECT00
012500 05 NO-OF-RECORDS PC Z(5),ZZZ,ZZZ. DIRECT00
012600 05 FILLER SZ 9. DIRECT00
012700 05 MAX-ROWS PC Z9. DIRECT00
012800 05 SEGMENTS-IN-ROW PC ZZZ,ZZZ,ZZZ. DIRECT00
012900 05 FILLER SZ 6. DIRECT00
013000 05 ROW-NUM PC 99. DIRECT00
013100 05 FILLER SZ 2. DIRECT00
013200 05 ROW-ADDRESS PC 9B9(6). DIRECT00
013300 05 FILLER SZ 5. DIRECT00
013400 05 PRINT-USER SZ 7. DIRECT00
013500 DIRECT00
013600 WORKING-STORAGE SECTION. DIRECT00
013700 77 DE-BLOCK CMP-1 PC 9(8). DIRECT00
013800 77 REC-MAKE CMP-1 PC 9(8). DIRECT00
013900 77 MAX-LINES VA 50 CMP-1 PC 9(8). DIRECT00
014000 77 LINE-COUNT CMP-1 PC 9(8). DIRECT00
014100 77 PAGE-COUNT CMP-1 PC 9(3). DIRECT00
014200 77 STOP-DIRECTORY CMP-1 PC 9(8). DIRECT00
014300 77 TIME-HOLD CMP-1 PC 9(8). DIRECT00
014400 77 WORD-0 CMP-1 PC 9(8). DIRECT00
014500 77 NUMBER-OF-AVAILABLE-AREAS PC 9999 CMP-1. DIRECT00
014600 77 TOTAL-AVAILABLE-DISK CMP-1 PC 9(11). DIRECT00
014700 77 AVAIL-SEGS CMP-1 PC 9(9). DIRECT00
014800 77 TOTAL-NO-OF-FILES CMP-1 PC 9999. DIRECT00
014900 77 TEST-WORD-3 CMP-1 PC 9(8). 7-5-6800
015000 77 TEST-WORD-4 CMP-1 PC 9(8). 7-5-6800
015100 77 FORMAT-TEST VA 0 CMP-1 PC 9(8). 7-5-6800
015200 88 NEW-FORMAT VA 2. 7-5-6800
015300 77 CONVERT-CMP CMP-1 PC 9(8). 7-5-6800
015400 DIRECT00
015500 01 FIRST-HEADER SZ 132. DIRECT00
015600 05 REPORT-TITLE SZ 75 DIRECT00
015700 VA "DISK DIRECTORY BY FILE IDENTIFICATIONS". DIRECT00
015800 05 FILLER VA "TIME" SZ 5. DIRECT00
015900 05 HEAD-HOUR PC 99. DIRECT00
016000 05 FILLER VA ":" SZ 1. DIRECT00
016100 05 HEAD-MINUTE PC 99. DIRECT00
016200 05 FILLER VA " DATE" SZ 8. DIRECT00
016300 05 FILL-DATE PC 99/99/99. DIRECT00
016400 05 FILLER VA " PAGE NO." SZ 15. DIRECT00
016500 05 HEAD-PAGE-NO PC ZZZ. DIRECT00
016600 05 FILLER VA SPACES SZ 13. DIRECT00
016700 DIRECT00
016800 01 SECOND-HEADER SZ 132. DIRECT00
016900 05 FILLER SZ 128 VA DIRECT00
017000 " IDENTIFICATION RECORD RECORDS SAVE CREATION LDIRECT00
017100-"AST NUMBER OF # OF ROWS SEGMENTS ROW ADDRESS". DIRECT00
017200 05 FILLER VA "USER" SZ 4. DIRECT00
017300 DIRECT00
017400 01 THIRD-HEADER SZ 132. DIRECT00
017500 05 FILLER SZ 132 VA DIRECT00
017600 " PREFIX SUFFIX LENGTH PER BLOCK FACTOR DATE ACCDIRECT00
017700-"ESS RECORDS DECLARED PER ROW NUMBER OF ROW". DIRECT00
017800 DIRECT00
017900 01 HOLD64 SZ 64. DIRECT00
018000 01 OTHER-AREAS. DIRECT00
018100 05 TEST-14. DIRECT00
018200 10 FILLER SZ 1. DIRECT00
018300 10 TEST-OCTAL-14 PC X(7). DIRECT00
018400 05 CMP-OCTAL-14 REDEFINES TEST-14 PC 9(8) CMP. DIRECT00
018500 05 TEST-ADDRESS. DIRECT00
018600 10 T-EU-NO PC 99. DIRECT00
018700 10 T-ADDRS PC 9(6). DIRECT00
018800 05 TEST-1 REDEFINES TEST-ADDRESS PC 9(8). DIRECT00
018900 05 PREV-ADDRESS. DIRECT00
019000 10 P-EU-NO VA 00 PC 99. DIRECT00
019100 10 P-ADDRS VA 25000 PC 9(6). DIRECT00
019200 05 PREV-1 REDEFINES PREV-ADDRESS PC 9(8). DIRECT00
019300 05 PURGE-DSPLY. DIRECT00
019400 10 FILLER VA 0 PC 9(5). DIRECT00
019500 10 PURGE-HOLD PC XXX. DIRECT00
019600 05 PURGE-CMP REDEFINES PURGE-DSPLY DIRECT00
019700 CMP PC 9(8). DIRECT00
019800 DIRECT00
019900 01 TOTAL-LINE SZ 132. DIRECT00
020000 05 FILLER VA "THERE ARE" SZ 10. DIRECT00
020100 05 TOTAL-AREAS PC ZZ,ZZZ. DIRECT00
020200 05 FILLER VA " UNUSED AREAS OF DISK WHICH CONTAIN A TOTDIRECT00
020300* "AL OF " SZ 47. DIRECT00
020400 05 AVAILABLE-SEGMENTS PC ZZ,ZZZ,ZZZ,ZZZ. DIRECT00
020500 05 FILLER VA " SEGMENTS OF AVAILABLE DISK." SZ 55. DIRECT00
020600 DIRECT00
020700 01 MAXIMUM-DISK-PER-EU. DIRECT00
020800 05 MAX-1. DIRECT00
020900 10 EU1 VA 80000 CMP PC 9(8). DIRECT00
021000 10 EU2 VA 400000 CMP PC 9(8). DIRECT00
021100 10 EU3 VA 400000 CMP PC 9(8). DIRECT00
021200 10 EU4 CMP PC 9(8). DIRECT00
021300 10 EU5 CMP PC 9(8). DIRECT00
021400 10 EU6 CMP PC 9(8). DIRECT00
021500 10 EU7 CMP PC 9(8). DIRECT00
021600 10 EU8 CMP PC 9(8). DIRECT00
021700 10 EU9 CMP PC 9(8). DIRECT00
021800 10 EU10 CMP PC 9(8). DIRECT00
021900 10 EU11 CMP PC 9(8). DIRECT00
022000 10 EU12 CMP PC 9(8). DIRECT00
022100 10 EU13 CMP PC 9(8). DIRECT00
022200 10 EU14 CMP PC 9(8). DIRECT00
022300 10 EU15 CMP PC 9(8). DIRECT00
022400 10 EU16 CMP PC 9(8). DIRECT00
022500 10 EU17 CMP PC 9(8). DIRECT00
022600 10 EU18 CMP PC 9(8). DIRECT00
022700 10 EU19 CMP PC 9(8). DIRECT00
022800 10 EU20 CMP PC 9(8). DIRECT00
022900 05 MAXIMUM-ADDRESS DIRECT00
023000 REDEFINES MAX-1 OC 20 CMP PC 9(8). DIRECT00
023100 DIRECT00
023200 PROCEDURE DIVISION. DIRECT00
023300 SORT-PARAGRAPH. DIRECT00
023400 SORT SORTER ON ASCENDING SORT-KEY DIRECT00
023500 INPUT PROCEDURE IS INPUTTER DIRECT00
023600 OUTPUT PROCEDURE IS OUTPUTTER. DIRECT00
023700 DIRECT00
023800 TURN-IT-OFF. DIRECT00
023900 STOP RUN. DIRECT00
024000 DIRECT00
024100 INPUTTER SECTION. DIRECT00
024200 IN-001. DIRECT00
024300 OPEN INPUT DIRECTORY. DIRECT00
024400 COMPUTE TIME-HOLD = DATA (1). DIRECT00
024500 MOVE TODAYS-DATE TO FILL-DATE. DIRECT00
024600 DIRECT00
024700 IN-002. DIRECT00
024800 READ DIRECTORY AT END GO TO INPUT-END. DIRECT00
024900 NOTE AT END SHOULD NOT OCCUR. DIRECT00
025000 MOVE 16 TO DE-BLOCK. DIRECT00
025100 DIRECT00
025200 IN-003-DEBLOCKER. DIRECT00
025300 SUBTRACT 1 FROM DE-BLOCK. DIRECT00
025400 IF DE-BLOCK = 0 GO TO IN-002. DIRECT00
025500 DIRECT00
025600 NOTE CHECK FOR END OF DIRECTORY OCTAL 114. DIRECT00
025700 MOVE PREFIX OF DIRECTORY (DE-BLOCK) TO TEST-OCTAL-14.DIRECT00
025800 IF CMP-OCTAL-14 = 76 GO TO INPUT-END. DIRECT00
025900 DIRECT00
026000 NOTE CHECK FOR UNUSED LOCATION OCTAL 14. DIRECT00
026100 IF CMP-OCTAL-14 = 12 GO TO IN-003-DEBLOCKER. DIRECT00
026200 DIRECT00
026300 IN-004-NOTE. NOTE THE FOLLOWING FORMATS DATA FROM THE DISK DIRECT00
026400 DIRECTORY INTO RECORDS FOR THE SORT. DIRECT00
026500 IN-004-DEBLOCKER. 7-5-6800
026600 MOVE CMP-3(DE-BLOCK) TO TEST-WORD-3. 7-5-6800
026700 MOVE CMP-4(DE-BLOCK) TO TEST-WORD-4. 7-5-6800
026800 MOVE TEST-WORD-3 TO FORMAT-TEST[1:46:1]. 7-5-6800
026900 IF NEW-FORMAT 7-5-6800
027000 MOVE ZEROS TO CONVERT-CMP 7-5-6800
027100 MOVE TEST-WORD-3 TO CONVERT-CMP[12:30:18] 7-5-6800
027200 MOVE CONVERT-CMP TO LAST-ACCESS-DATE 7-5-6800
027300 OF DIRECTORY (DE-BLOCK) 7-5-6800
027400 MOVE TEST-WORD-3 TO CONVERT-CMP[30:30:18] 7-5-6800
027500 MOVE CONVERT-CMP TO CREATIONXDATE 7-5-6800
027600 OF DIRECTORY (DE-BLOCK) 7-5-6800
027700 MOVE ZEROS TO CONVERT-CMP 7-5-6800
027800 MOVE CMP-3(DE-BLOCK) TO TEST-WORD-3 7-5-6800
027900 MOVE TEST-WORD-3 TO CONVERT-CMP[2:38:10] 7-5-6800
028000 MOVE CONVERT-CMP TO TEST-WORD-3[31:1:17] 7-5-6800
028100 MOVE TEST-WORD-3 TO CMP-3(DE-BLOCK). 7-5-6800
028200 MOVE PREFIX OF DIRECTORY (DE-BLOCK) TO DIRECT00
028300 PREFIX OF SORTER. DIRECT00
028400 MOVE SUFFIX OF DIRECTORY (DE-BLOCK) TO DIRECT00
028500 SUFFIX OF SORTER. DIRECT00
028600 MOVE 1 TO TYPE. DIRECT00
028700 MOVE 00 TO ROW-NUM OF SORTER. DIRECT00
028800 MOVE WORD-9 (DE-BLOCK) TO MAX-ROWS OF SORTER. DIRECT00
028900 MOVE WORD-ZERO(DE-BLOCK) TO WORD-0. DIRECT00
029000 MOVE ZEROS TO CMP-OCTAL-14. DIRECT00
029100 MOVE WORD-0 TO CMP-OCTAL-14[1:34:14]. DIRECT00
029200 MOVE CMP-OCTAL-14 TO RL OF SORTER. DIRECT00
029300 MOVE ZEROS TO CMP-OCTAL-14. DIRECT00
029400 MOVE WORD-0 TO CMP-OCTAL-14 [30:36:12]. DIRECT00
029500 MOVE WORD-2(DE-BLOCK) TO USER-NUMBER. DIRECT00
029600 MOVE CMP-OCTAL-14 TO BFACTOR OF SORTER. DIRECT00
029700 MOVE PURGE-FACTOR OF WORD-3(DE-BLOCK) TO PURGE-HOLD. DIRECT00
029800 MOVE PURGE-CMP TO PURGE-FACTOR OF SORTER. DIRECT00
029900 MOVE CREATIONXDATE OF WORD-3(DE-BLOCK) DIRECT00
030000 TO CREATIONXDATE OF SORT-REC. DIRECT00
030100 MOVE LAST-ACCESS-DATE OF DIRECTORY (DE-BLOCK) DIRECT00
030200 TO LAST-ACCESS-DATE OF SORTER. DIRECT00
030300 ADD 1 TO WORD-7(DE-BLOCK). DIRECT00
030400 MOVE WORD-7 (DE-BLOCK) TO NO-OF-RECORDS OF SORTER. DIRECT00
030500 MOVE WORD-8 (DE-BLOCK) TO SEGMENTS-IN-ROW OF SORTER. DIRECT00
030600 DIRECT00
030700 MOVE ZERO TO REC-MAKE. DIRECT00
030800 IN-005-NOTE. NOTE THE FOLLOWING CHECKS ROW ADDRESS DIRECT00
030900 A ROW ADDRESS OF 0 INDICATES THAT NO FURTHER DIRECT00
031000 ROWS EXIST FOR THAT FILE AND AN ORGANIZED DIRECT00
031100 EXIT IS PROVIDED DIRECT00
031200 A ROW ADDRESS OF OTHER THAN 0 WILL ALLOW DIRECT00
031300 2 RECORDS TO BE RELEASED TO THE SORT DIRECT00
031400 THE FIRST OR TYPE 1 WILL BE SORTED BY DIRECT00
031500 MFID-ID DIRECT00
031600 THE SECOND OR TYPE 2 WILL BE SORTED BY DIRECT00
031700 ADDRESS FOR MAP OF DISK UTILIZATION. DIRECT00
031800 IN-005-RECORD-MAKER. DIRECT00
031900 ADD 1 TO REC-MAKE. DIRECT00
032000 IF REC-MAKE EXCEEDS 20 GO TO IN-003-DEBLOCKER. DIRECT00
032100 IF ROW-ADDRESS OF DIRECTORY(DE-BLOCK, REC-MAKE) DIRECT00
032200 EQUALS 0 GO TO IN-003-DEBLOCKER. DIRECT00
032300 ADD 1 TO ROW-NUM OF SORTER. DIRECT00
032400 MOVE ROW-ADDRESS OF DIRECTORY(DE-BLOCK, REC-MAKE) TO DIRECT00
032500 ROW-ADDRESS OF SORTER. DIRECT00
032600 MOVE SORT-REC TO HOLD64. DIRECT00
032700 RELEASE SORT-REC. DIRECT00
032800 MOVE HOLD64 TO SORT-REC. DIRECT00
032900 MOVE 2 TO TYPE. DIRECT00
033000 MOVE ROW-ADDRESS OF SORTER TO PREFIX OF SORTER. DIRECT00
033100 MOVE PREFIX OF DIRECTORY(DE-BLOCK) TO DIRECT00
033200 PREFIX-IN-ROW-ADDRESS OF SORTER. DIRECT00
033300 RELEASE SORT-REC. DIRECT00
033400 MOVE HOLD64 TO SORT-REC. DIRECT00
033500 GO TO IN-005-RECORD-MAKER. DIRECT00
033600 DIRECT00
033700 INPUT-END. DIRECT00
033800 CLOSE DIRECTORY WITH RELEASE. DIRECT00
033900 DIRECT00
034000 OUTPUTTER SECTION. DIRECT00
034100 OUT-001. DIRECT00
034200 OPEN OUTPUT LISTING. DIRECT00
034300 WRITE DIRECTORY-LISTING-RECORD DIRECT00
034400 BEFORE ADVANCING TO CHANNEL 1. DIRECT00
034500 COMPUTE HEAD-HOUR = TIME-HOLD DIV 216000. DIRECT00
034600 COMPUTE HEAD-MINUTE = TIME-HOLD MOD DIRECT00
034700 216000 DIV 3600. DIRECT00
034800 PERFORM OVERFLOW-HEADING. DIRECT00
034900 DIRECT00
035000 OUT-002-NOTE. NOTE THE FOLLOWING RETRIEVES SORTED TYPE 1 DIRECT00
035100 RECORDS, FORMATS THEM AND PRINTS THEM. DIRECT00
035200 THE FIRST TYPE 2 RECORD TERMINATES DIRECT00
035300 THE PROCEDURE. DIRECT00
035400 OUT-002. DIRECT00
035500 RETURN SORTER AT END GO TO END-OUTPUT. DIRECT00
035600 IF TYPE = 2 GO TO OUT-003-PROCESS-TYPE-2. DIRECT00
035700 IF ROW-NUM OF SORTER EXCEEDS 01 DIRECT00
035800 MOVE SPACES TO DIRECTORY-LISTING-RECORD DIRECT00
035900 MOVE ROW-ADDRESS OF SORTER TO ROW-ADDRESS DIRECT00
036000 OF DIRECTORY-LISTING-RECORD DIRECT00
036100 MOVE ROW-NUM OF SORTER TO ROW-NUM DIRECT00
036200 OF DIRECTORY-LISTING-RECORD ELSE DIRECT00
036300 ADD 1 TO TOTAL-NO-OF-FILES DIRECT00
036400 MOVE CORRESPONDING SORT-REC DIRECT00
036500 TO DIRECTORY-LISTING-RECORD DIRECT00
036600 MOVE CORRESPONDING SORT-KEY DIRECT00
036700 TO DIRECTORY-LISTING-RECORD DIRECT00
036800 MOVE " / " TO B-SLASH-B DIRECT00
036900 IF USER-NUMBER ! "00000000" DIRECT00
037000 MOVE USERS-NO TO PRINT-USER DIRECT00
037100 ELSE MOVE SPACES TO PRINT-USER. DIRECT00
037200 ADD 1 TO LINE-COUNT. DIRECT00
037300 IF LINE-COUNT EXCEEDS MAX-LINES DIRECT00
037400 WRITE DIRECTORY-LISTING-RECORD DIRECT00
037500 BEFORE ADVANCING TO CHANNEL 1 DIRECT00
037600 PERFORM OVERFLOW-HEADING DIRECT00
037700 ELSE DIRECT00
037800 WRITE DIRECTORY-LISTING-RECORD. DIRECT00
037900 GO TO OUT-002. DIRECT00
038000 DIRECT00
038100 OVERFLOW-HEADING. DIRECT00
038200 ADD 1 TO PAGE-COUNT. DIRECT00
038300 MOVE PAGE-COUNT TO HEAD-PAGE-NO. DIRECT00
038400 WRITE DIRECTORY-LISTING-RECORD FROM DIRECT00
038500 FIRST-HEADER BEFORE ADVANCING 2 LINES. DIRECT00
038600 WRITE DIRECTORY-LISTING-RECORD FROM SECOND-HEADER. DIRECT00
038700 WRITE DIRECTORY-LISTING-RECORD FROM DIRECT00
038800 THIRD-HEADER BEFORE ADVANCING 2 LINES. DIRECT00
038900 MOVE 0 TO LINE-COUNT. DIRECT00
039000 MOVE SPACES TO DIRECTORY-LISTING-RECORD. DIRECT00
039100 DIRECT00
039200 OUT-003-PROCESS-TYPE-2. DIRECT00
039300 MOVE SPACES TO DIRECTORY-LISTING-RECORD. DIRECT00
039400 MOVE 0 TO PAGE-COUNT. DIRECT00
039500 WRITE DIRECTORY-LISTING-RECORD BEFORE DIRECT00
039600 ADVANCING TO CHANNEL 1. DIRECT00
039700 MOVE "MAP OF DISK UTILIZATION" TO REPORT-TITLE. DIRECT00
039800 PERFORM OVERFLOW-HEADING. DIRECT00
039900 DIRECT00
040000 OUT-004-NOTE. NOTE THE FOLLOWING CREATES THE AVAILABLE DIRECT00
040100 DISK AREA LINES. DIRECT00
040200 OUT-004. DIRECT00
040300 MOVE PREFIX OF SORTER TO TEST-1. DIRECT00
040400 DIRECT00
040500 OUT-004-RECYCLE. DIRECT00
040600 IF PREV-ADDRESS > TEST-ADDRESS DIRECT00
040700 GO TO OUT-005-PRINT-IN-USE-LINES. DIRECT00
040800 IF PREV-ADDRESS = TEST-ADDRESS DIRECT00
040900 COMPUTE PREV-1 = TEST-1 DIRECT00
041000 PLUS SEGMENTS-IN-ROW OF SORTER DIRECT00
041100 GO TO OUT-005-PRINT-IN-USE-LINES. DIRECT00
041200 DIRECT00
041300 IF P-EU-NO = T-EU-NO DIRECT00
041400 MOVE " ------- ------- ---- ----DIRECT00
041500* " --- ----- ----- AVAILABLE DISK AREA" DIRECT00
041600 TO DIRECTORY-LISTING-RECORD DIRECT00
041700 COMPUTE TOTAL-AVAILABLE-DISK = DIRECT00
041800 TOTAL-AVAILABLE-DISK + TEST-1 - PREV-1 DIRECT00
041900 ADD 1 TO NUMBER-OF-AVAILABLE-AREAS DIRECT00
042000 MOVE "--" TO ROW-NUM DIRECT00
042100 OF DIRECTORY-LISTING-RECORD DIRECT00
042200 COMPUTE SEGMENTS-IN-ROW DIRECT00
042300 OF DIRECTORY-LISTING-RECORD FROM DIRECT00
042400 TEST-1 - PREV-1 DIRECT00
042500 MOVE PREV-1 TO ROW-ADDRESS DIRECT00
042600 OF DIRECTORY-LISTING-RECORD DIRECT00
042700 ADD 1 TO LINE-COUNT DIRECT00
042800 COMPUTE PREV-1 = TEST-1 DIRECT00
042900 PLUS SEGMENTS-IN-ROW OF SORTER DIRECT00
043000 IF LINE-COUNT EXCEEDS MAX-LINES DIRECT00
043100 WRITE DIRECTORY-LISTING-RECORD DIRECT00
043200 BEFORE ADVANCING TO CHANNEL 1 DIRECT00
043300 PERFORM OVERFLOW-HEADING DIRECT00
043400 GO TO OUT-005-PRINT-IN-USE-LINES DIRECT00
043500 ELSE DIRECT00
043600 WRITE DIRECTORY-LISTING-RECORD DIRECT00
043700 MOVE SPACES TO DIRECTORY-LISTING-RECORD DIRECT00
043800 GO TO OUT-005-PRINT-IN-USE-LINES. DIRECT00
043900 DIRECT00
044000 NOTE THE NEXT IN USE AREA OF DISK IS NOT DIRECT00
044100 IN THE SAME DFEU. DIRECT00
044200 MOVE " ------- ------- ---- ---- ---DIRECT00
044300* " ----- ----- AVAILABLE DISK AREA" DIRECT00
044400 TO DIRECTORY-LISTING-RECORD. DIRECT00
044500 MOVE "--" TO ROW-NUM OF DIRECTORY-LISTING-RECORD. DIRECT00
044600 COMPUTE AVAIL-SEGS DIRECT00
044700 FROM MAXIMUM-ADDRESS(P-EU-NO + 1) - P-ADDRS. DIRECT00
044800 IF AVAIL-SEGS = 0 DIRECT00
044900 MOVE ZEROS TO P-ADDRS DIRECT00
045000 MOVE SPACES TO DIRECTORY-LISTING-RECORD DIRECT00
045100 GO TO OUT-004-RECYCLE. DIRECT00
045200 MOVE AVAIL-SEGS TO SEGMENTS-IN-ROW DIRECT00
045300 OF DIRECTORY-LISTING-RECORD. DIRECT00
045400 COMPUTE TOTAL-AVAILABLE-DISK = TOTAL-AVAILABLE-DISK DIRECT00
045500 + AVAIL-SEGS. DIRECT00
045600 ADD 1 TO NUMBER-OF-AVAILABLE-AREAS. DIRECT00
045700 MOVE PREV-1 TO ROW-ADDRESS OF LISTING. DIRECT00
045800 ADD 1 TO P-EU-NO. DIRECT00
045900 MOVE ZEROS TO P-ADDRS. DIRECT00
046000 ADD 1 TO LINE-COUNT. DIRECT00
046100 IF LINE-COUNT EXCEEDS MAX-LINES DIRECT00
046200 WRITE DIRECTORY-LISTING-RECORD DIRECT00
046300 BEFORE ADVANCING TO CHANNEL 1 DIRECT00
046400 PERFORM OVERFLOW-HEADING DIRECT00
046500 ELSE DIRECT00
046600 WRITE DIRECTORY-LISTING-RECORD. DIRECT00
046700 MOVE SPACES TO DIRECTORY-LISTING-RECORD. DIRECT00
046800 GO TO OUT-004-RECYCLE. DIRECT00
046900 DIRECT00
047000 OUT-005-PRINT-IN-USE-LINES. DIRECT00
047100 MOVE CORRESPONDING SORT-REC DIRECT00
047200 TO DIRECTORY-LISTING-RECORD. DIRECT00
047300 MOVE CORRESPONDING SORT-KEY DIRECT00
047400 TO DIRECTORY-LISTING-RECORD. DIRECT00
047500 MOVE PREFIX OF SORTER DIRECT00
047600 TO ROW-ADDRESS OF DIRECTORY-LISTING-RECORD. DIRECT00
047700 MOVE ROW-ADDRESS OF SORTER DIRECT00
047800 TO PREFIX OF DIRECTORY-LISTING-RECORD. DIRECT00
047900 MOVE " / " TO B-SLASH-B. DIRECT00
048000 ADD 1 TO LINE-COUNT. DIRECT00
048100 IF LINE-COUNT EXCEEDS MAX-LINES DIRECT00
048200 WRITE DIRECTORY-LISTING-RECORD DIRECT00
048300 BEFORE ADVANCING TO CHANNEL 1 DIRECT00
048400 PERFORM OVERFLOW-HEADING DIRECT00
048500 ELSE DIRECT00
048600 WRITE DIRECTORY-LISTING-RECORD. DIRECT00
048700 MOVE SPACES TO DIRECTORY-LISTING-RECORD. DIRECT00
048800 DIRECT00
048900 NOTE GET THE NEXT RECORD FROM THE SORT. DIRECT00
049000 RETURN SORTER AT END GO TO END-OUTPUT. DIRECT00
049100 GO TO OUT-004. DIRECT00
049200 DIRECT00
049300 END-OUTPUT-NOTE. DIRECT00
049400 NOTE FIRST PRINT OUT AVAILABLE DISK STATISTICS DIRECT00
049500 FOR DISK AREAS PAST THE LAST USER AREA. DIRECT00
049600 END-OUTPUT. DIRECT00
049700 IF P-ADDRS + 1 EXCEEDS MAXIMUM-ADDRESS(P-EU-NO + 1) DIRECT00
049800 ADD 1 TO P-EU-NO DIRECT00
049900 MOVE ZEROS TO P-ADDRS DIRECT00
050000 IF P-EU-NO = 20 DIRECT00
050100 GO TO TURN-OFF-THE-PROGRAM DIRECT00
050200 ELSE GO TO END-OUTPUT. DIRECT00
050300 DIRECT00
050400 MOVE " ------- ------- ---- ---- ---DIRECT00
050500* " ----- ----- AVAILABLE DISK AREA" DIRECT00
050600 TO DIRECTORY-LISTING-RECORD. DIRECT00
050700 MOVE "--" TO ROW-NUM OF DIRECTORY-LISTING-RECORD. DIRECT00
050800 COMPUTE SEGMENTS-IN-ROW OF DIRECTORY-LISTING-RECORD DIRECT00
050900 FROM MAXIMUM-ADDRESS(P-EU-NO + 1) - P-ADDRS. DIRECT00
051000 COMPUTE TOTAL-AVAILABLE-DISK = TOTAL-AVAILABLE-DISK DIRECT00
051100 + MAXIMUM-ADDRESS(P-EU-NO + 1) - P-ADDRS. DIRECT00
051200 ADD 1 TO NUMBER-OF-AVAILABLE-AREAS. DIRECT00
051300 MOVE PREV-1 TO ROW-ADDRESS OF LISTING. DIRECT00
051400 ADD 1 TO P-EU-NO. DIRECT00
051500 MOVE ZEROS TO P-ADDRS. DIRECT00
051600 ADD 1 TO LINE-COUNT. DIRECT00
051700 IF LINE-COUNT EXCEEDS MAX-LINES DIRECT00
051800 WRITE DIRECTORY-LISTING-RECORD DIRECT00
051900 BEFORE ADVANCING TO CHANNEL 1 DIRECT00
052000 PERFORM OVERFLOW-HEADING DIRECT00
052100 ELSE DIRECT00
052200 WRITE DIRECTORY-LISTING-RECORD. DIRECT00
052300 GO TO END-OUTPUT. DIRECT00
052400 DIRECT00
052500 TURN-OFF-THE-PROGRAM. DIRECT00
052600 MOVE NUMBER-OF-AVAILABLE-AREAS TO TOTAL-AREAS. DIRECT00
052700 MOVE TOTAL-AVAILABLE-DISK TO AVAILABLE-SEGMENTS. DIRECT00
052800 WRITE DIRECTORY-LISTING-RECORD FROM TOTAL-LINE. DIRECT00
052900 MOVE "THERE ARE FILES ON DISK" TO TOTAL-LINE. DIRECT00
053000 MOVE TOTAL-NO-OF-FILES TO TOTAL-AREAS. DIRECT00
053100 WRITE DIRECTORY-LISTING-RECORD FROM TOTAL-LINE. DIRECT00
053200 CLOSE LISTING. DIRECT00
053300 DIRECT00
053400 END-OF-PROGRAM SECTION. DIRECT00
053500 LAST-PARAGRAPH. DIRECT00
053600 STOP RUN. DIRECT00
053700 END-OF-JOB. DIRECT00