Rocksolid Light

Welcome to RetroBBS

mail  files  register  newsreader  groups  login

Message-ID:  

The memory management on the PowerPC can be used to frighten small children. -- Linus Torvalds


computers / comp.sys.unisys / Old Computer

SubjectAuthor
o Old Computerjgt

1
Old Computer

<b5915bbe-de36-4fff-812b-0fd4dbfd9ac0n@googlegroups.com>

  copy mid

https://www.rocksolidbbs.com/computers/article-flat.php?id=408&group=comp.sys.unisys#408

  copy link   Newsgroups: comp.sys.unisys
X-Received: by 2002:a05:620a:1925:b0:76d:8460:5bd0 with SMTP id bj37-20020a05620a192500b0076d84605bd0mr221822qkb.5.1693766282847;
Sun, 03 Sep 2023 11:38:02 -0700 (PDT)
X-Received: by 2002:a17:902:fb50:b0:1bf:702b:f208 with SMTP id
lf16-20020a170902fb5000b001bf702bf208mr2442353plb.11.1693766282550; Sun, 03
Sep 2023 11:38:02 -0700 (PDT)
Path: i2pn2.org!i2pn.org!usenet.blueworldhosting.com!diablo1.usenet.blueworldhosting.com!peer03.iad!feed-me.highwinds-media.com!news.highwinds-media.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.sys.unisys
Date: Sun, 3 Sep 2023 11:38:01 -0700 (PDT)
Injection-Info: google-groups.googlegroups.com; posting-host=72.142.15.78; posting-account=GhtnuwoAAAAuwVG5o-i6Wa6P-LjHEzkU
NNTP-Posting-Host: 72.142.15.78
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <b5915bbe-de36-4fff-812b-0fd4dbfd9ac0n@googlegroups.com>
Subject: Old Computer
From: jack@qbol.com (jgt)
Injection-Date: Sun, 03 Sep 2023 18:38:02 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-Received-Bytes: 22771
 by: jgt - Sun, 3 Sep 2023 18:38 UTC

I was cleaning up an old computer, before sending it for recycling and found this:
IDENTIFICATION DIVISION.
PROGRAM-ID. ISAM-TIP.
AUTHOR. J TEARLE.
DATE-WRITTEN. DEC 1983.
*REMARKS. COPY ISAM FROM SDF TO TIP AND RECREATE TIP INDEX.
ENVIRONMENT DIVISION.
CONFIGURATION SECTION.
SOURCE-COMPUTER. UNIVAC-1100-60.
OBJECT-COMPUTER. UNIVAC-1100-60.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT SDF-FILE ASSIGN TO DISC CUSTFIL
ACCESS IS SEQUENTIAL
ORGANIZATION IS INDEXED
RECORD KEY IS SDF-KEY.
SELECT DATA-SORT ASSIGN TO DISC.
DATA DIVISION.
FILE SECTION.
SD DATA-SORT
DATA RECORD IS SORT-REC.
01 SORT-REC.
03 SORT-NAME-NUMB.
05 SORT-NAME PIC X(19).
05 SORT-NUMB PIC 9(12) COMP.
03 SORT-RRN PIC 9(10) COMP.
FD SDF-FILE LABEL RECORDS ARE STANDARD.
01 SDF-RECORD2.
03 SDF-KEY PIC X(12).
03 FILLER PIC X(548).
WORKING-STORAGE SECTION.
COPY CUSTFIL-DEF.
COPY FCSS-BUFFER.
COPY INDEX-DEF.
COPY TIPFILE-DEF.
01 SDF-RECORD.
02 SDF-DATA.
03 SDF-WORD PIC X(4) OCCURS 140 TIMES.
01 CUSTFIL-DATA REDEFINES SDF-RECORD.
COPY TMW140.
01 X0 PIC S9(10) COMP.
01 X1 PIC S9(10) COMP.
01 X2 PIC S9(10) COMP.
01 PC PIC 9(10) COMP.
01 XX PIC 9.
01 EOF PIC X VALUE 'N'.
01 EOF2 PIC X VALUE 'N'.
01 TODAY-DATE PIC 9(6).
01 DAY-OF-CENTURY PIC 9(10).
COPY ASYSDF IN TIPLIB.
01 CUSTOMER-KEY.
03 CUSTOMER-KEY-R PIC 9(12).
03 CUST-N REDEFINES CUSTOMER-KEY-R.
05 FILLER PIC X(6).
05 CUSTOMER-NUMBER PIC 9(6).
PROCEDURE DIVISION.
SOJ.
SORT DATA-SORT ON ASCENDING KEY SORT-NAME-NUMB
INPUT PROCEDURE IS PRE-SORT
OUTPUT PROCEDURE IS POST-SORT.
EOJ.
STOP RUN.
PRE-SORT SECTION.
BEGIN.
OPEN INPUT SDF-FILE.
CALL 'CCONET' USING 0 0 1.
MOVE CUSTFIL TO TIPFILE.
MOVE CUSTFIL-INDEX TO TIPFILE-INDEX.
PERFORM TIPFILE-LOCK.
PERFORM OPEN-TIPFILE.
MOVE ZERO TO X1 X2.
MOVE TIPFILE-INDEX TO INDEX-FILE-NUMBER.
* DISPLAY 'ENTER PERCENT FILL'. ACCEPT PC FROM CARD-READER.
MOVE ZERO TO TIPFILE-RRN WORK-RRN.
MOVE 1 TO INDEX-RRN.
CALL 'CFCSS' USING RR FCDONE INDEX-RECORD INDEX-FILE-NUMBER
INDEX-RECORD-LENGTH, INDEX-RRN, INDEX-BUFFER-LENGTH.
MOVE LEVEL-2-INDEX TO LEVEL-1-INDEX.
COMPUTE PC = PERCENT-FILL * 256 / 100
PERFORM INIT-INDEX-1 255 TIMES.
MOVE ZERO TO X1.
PERFORM LOAD-INDEX-1 THRU INDEX-1-EXIT UNTIL EOF2 EQUAL 'Y'.
MOVE 1 TO INDEX-RRN.
ACCEPT TODAY-DATE FROM DATE.
CALL 'DYCENT' USING TODAY-DATE DAY-OF-CENTURY.
MOVE DAY-OF-CENTURY TO DATE-LAST-REORGANIZATION.
MOVE X1 TO CURRENT-LEVEL2-RECORDS.
MOVE LEVEL-1-INDEX TO LEVEL-2-INDEX.
PERFORM WRITE-LEVEL-2.
PERFORM FCSS-CHECK.
* CALL 'CDISCN'.
CLOSE SDF-FILE.
GO TO PRE-SORT-EXIT.
LOAD-INDEX-1.
ADD 1 TO X1.
ADD 1 TO INDEX-RRN.
MOVE ZERO TO X2.
PERFORM LOAD-INDEX-2 THRU LOAD-INDEX-2-EXIT 256 TIMES.
MOVE LEVEL-2-KEY (1) TO LEVEL-1-KEY (X1).
MOVE LEVEL-2-RRN (1) TO LEVEL-1-RRN (X1).
IF LEVEL-1-KEY (X1) EQUAL HIGH-VALUES
CALL 'CFCSS' USING CK FCDONE TIPFILE-RECORD
MOVE 'Y' TO EOF2.
PERFORM WRITE-LEVEL-2.
INDEX-1-EXIT.
EXIT.
LOAD-INDEX-2.
ADD 1 TO X2 WORK-RRN.
MOVE HIGH-VALUES TO LEVEL-2-KEY (X2).
MOVE WORK-RRN TO LEVEL-2-RRN (X2).
IF X2 LESS THAN PC
PERFORM READ-SDF THRU READ-SDF-EXIT.
PERFORM WRITE-TIPFILE.
LOAD-INDEX-2-EXIT.
EXIT.
READ-SDF.
IF EOF NOT EQUAL 'Y'
READ SDF-FILE AT END MOVE 'Y' TO EOF.
IF EOF NOT EQUAL 'Y'
MOVE SDF-KEY TO LEVEL-2-KEY (X2)
MOVE SDF-RECORD2 TO SDF-RECORD
MOVE W140-NAME TO SORT-NAME W140-NAME-KEY
MOVE W140-CUSTOMER-KEY TO CUSTOMER-KEY
MOVE CUSTOMER-KEY-R TO SORT-NUMB W140-NUMB-KEY
MOVE WORK-RRN TO SORT-RRN
RELEASE SORT-REC
ELSE MOVE LOW-VALUES TO SDF-RECORD.
READ-SDF-EXIT.
EXIT.
R010-EXIT. EXIT.
COPY FCSS-CHECK-BATCH.
WRITE-LEVEL-2.
CALL 'CFCSS' USING WW FCDONE INDEX-RECORD INDEX-FILE-NUMBER
INDEX-RECORD-LENGTH, INDEX-RRN, INDEX-BUFFER-LENGTH.
MOVE INDEX-BUFFER TO FCSS-BUFFER.
PERFORM FCSS-CHECK.
INIT-INDEX-1.
ADD 1 TO X1.
MOVE HIGH-VALUES TO LEVEL-1-KEY (X1).
MOVE 9999999999 TO LEVEL-1-RRN (X1).
COPY OPEN-TIPFILE.
COPY TIPFILE-LOCK.
COPY WRITE-TIPFILE.
PRE-SORT-EXIT. EXIT.
POST-SORT SECTION.
BEGIN.
MOVE 'N' TO EOF2 EOF.
MOVE ZERO TO X1 X2.
MOVE ALPHA-INDEX TO INDEX-FILE-NUMBER.
MOVE 1 TO INDEX-RRN.
CALL 'CFCSS' USING RR FCDONE INDEX-RECORD INDEX-FILE-NUMBER
INDEX-RECORD-LENGTH, INDEX-RRN, INDEX-BUFFER-LENGTH.
MOVE LEVEL-2-INDEX TO LEVEL-1-INDEX.
PERFORM INIT-INDEX-1 255 TIMES.
MOVE ZERO TO X1.
PERFORM LOAD-INDEX-1 THRU INDEX-1-EXIT UNTIL EOF2 EQUAL 'Y'.
MOVE 1 TO INDEX-RRN.
CALL 'DYCENT' USING TODAY-DATE DAY-OF-CENTURY.
MOVE DAY-OF-CENTURY TO DATE-LAST-REORGANIZATION.
MOVE X1 TO CURRENT-LEVEL2-RECORDS.
MOVE LEVEL-1-INDEX TO LEVEL-2-INDEX.
PERFORM WRITE-LEVEL-2.
PERFORM FCSS-CHECK.
CALL 'CDISCN'.
GO TO POST-SORT-EXIT.
LOAD-INDEX-1.
ADD 1 TO X1.
ADD 1 TO INDEX-RRN.
MOVE ZERO TO X2.
PERFORM LOAD-INDEX-2 THRU LOAD-INDEX-2-EXIT 256 TIMES.
MOVE LEVEL-2-KEY (1) TO LEVEL-1-KEY (X1).
MOVE LEVEL-2-RRN (1) TO LEVEL-1-RRN (X1).
IF LEVEL-1-KEY (X1) EQUAL HIGH-VALUES
MOVE 'Y' TO EOF2.
PERFORM WRITE-LEVEL-2.
INDEX-1-EXIT.
EXIT.
LOAD-INDEX-2.
ADD 1 TO X2 .
MOVE HIGH-VALUES TO LEVEL-2-KEY (X2).
MOVE 9999999999 TO LEVEL-2-RRN (X2).
IF X2 LESS THAN PC
PERFORM RETURN-SORT THRU RETURN-SORT-EXIT.
LOAD-INDEX-2-EXIT.
EXIT.
RETURN-SORT.
IF EOF NOT EQUAL 'Y'
RETURN DATA-SORT AT END MOVE 'Y' TO EOF.
IF EOF NOT EQUAL 'Y'
MOVE SORT-NUMB TO CUSTOMER-KEY-R
IF CUSTOMER-NUMBER EQUAL 999999 GO TO RETURN-SORT.
IF EOF NOT EQUAL 'Y'
MOVE SORT-RRN TO LEVEL-2-RRN (X2)
MOVE SORT-NAME-NUMB TO LEVEL-2-KEY (X2).
RETURN-SORT-EXIT.
EXIT.
COPY FCSS-CHECK-BATCH.
WRITE-LEVEL-2.
PERFORM LOCK-INDEX-RECORD.
CALL 'CFCSS' USING WR FCDONE INDEX-RECORD INDEX-FILE-NUMBER
INDEX-RECORD-LENGTH, INDEX-RRN, INDEX-BUFFER-LENGTH.
MOVE INDEX-BUFFER TO FCSS-BUFFER.
PERFORM FCSS-CHECK.
LOCK-INDEX-RECORD.
CALL 'CFCSS' USING LK FCDONE INDEX-RECORD INDEX-FILE-NUMBER
INDEX-RECORD-LENGTH INDEX-RRN INDEX-BUFFER-LENGTH.
MOVE INDEX-BUFFER TO FCSS-BUFFER.
PERFORM FCSS-CHECK.
INIT-INDEX-1.
ADD 1 TO X1.
MOVE HIGH-VALUES TO LEVEL-1-KEY (X1).
MOVE 9999999999 TO LEVEL-1-RRN (X1).
POST-SORT-EXIT. EXIT.
 IDENTIFICATION DIVISION.
PROGRAM-ID. TIP-ISAM.
AUTHOR. J TEARLE.
DATE-WRITTEN. DEC 1983.
*REMARKS. COPY ISAM FROM TIP TO SDF.
ENVIRONMENT DIVISION.
CONFIGURATION SECTION.
SOURCE-COMPUTER. UNIVAC-1100-60.
OBJECT-COMPUTER. UNIVAC-1100-60.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT SDF-FILE ASSIGN TO DISC CUSTFIL
ORGANIZATION IS INDEXED
ACCESS MODE IS SEQUENTIAL
RECORD KEY IS SDF-KEY.
DATA DIVISION.
FILE SECTION.
FD SDF-FILE LABEL RECORDS ARE STANDARD.
01 SDF-RECORD.
03 SDF-KEY PIC X(12).
03 FILLER PIC X(2).
03 SDF-NAME PIC X(30).
03 FILLER PIC X(380).
03 SDF-NAME-NUMB-KEY PIC X(42).
03 FILLER PIC X(94).
WORKING-STORAGE SECTION.
COPY ASYSDF IN TIPLIB.
COPY CUSTFIL-DEF.
COPY FCSS-BUFFER.
COPY INDEX-DEF.
COPY TIPFILE-DEF.
01 X0 PIC S9(10) COMP.
01 WK-NAME-KEY.
03 WK-NAME PIC X(30).
03 WK-NUMB PIC 9(12).
01 RECORD-COUNT PIC 9(5) VALUE ZERO.
01 REC-COUNT-R REDEFINES RECORD-COUNT.
03 FILLER PIC XX.
03 RECORD-THOU PIC 999.
PROCEDURE DIVISION.
BEGIN.
OPEN OUTPUT SDF-FILE.
CALL 'CCONET' USING 0 0 1.
MOVE CUSTFIL-INDEX TO TIPFILE-INDEX.
MOVE CUSTFIL TO TIPFILE.
PERFORM TIPFILE-LOCK.
PERFORM OPEN-TIPFILE.
READ-LOOP.
IF TIPFILE-STATUS EQUAL -2 GO TO EOJ.
PERFORM READ-TIPFILE-FAST THRU READ-TIPFILE-FAST-EXIT.
ADD 1 TO RECORD-COUNT.
IF RECORD-THOU EQUAL ZERO DISPLAY RECORD-COUNT.
MOVE WORK-DATA TO SDF-RECORD.
WRITE SDF-RECORD INVALID DISPLAY ' INVALID'
DISPLAY SDF-KEY '*' SDF-NAME-NUMB-KEY
'*' TIPFILE-STATUS '*' TIPFILE-RRN '*' GOT-RECORD.
GO TO READ-LOOP.
EOJ.
CLOSE SDF-FILE.
CALL 'CDISCN'.
STOP RUN.
COPY FCSS-CHECK-BATCH.
COPY TIPFILE-LOCK.
COPY OPEN-TIPFILE.
COPY READ-TIPFILE-FAST.
READ-CUSTFIL* PROC
READ-CUSTFIL.
CALL 'CFCSS' USING RR, FCDONE, CUSTFIL-RECORD, CUSTFIL,
CUSTFIL-REC-LEN, CUSTFIL-RRN, CUSTFIL-BUF-LEN.
MOVE CUSTFIL-BUFFER TO FCSS-BUFFER.
MOVE CUSTFIL TO FCSS-FILE-NUMBER.
MOVE CUSTFIL-RRN TO FCSS-RECORD-NUMBER.
PERFORM FCSS-CHECK.
END
READ-CUSTFIL-NO-CHECK* PROC
READ-CUSTFIL-NO-CHECK.
CALL 'CFCSS' USING RR, FCDONE, CUSTFIL-RECORD, CUSTFIL,
CUSTFIL-REC-LEN, CUSTFIL-RRN, CUSTFIL-BUF-LEN.
MOVE CUSTFIL-BUFFER TO FCSS-BUFFER.
MOVE CUSTFIL-RRN TO FCSS-RECORD-NUMBER.
MOVE CUSTFIL TO FCSS-FILE-NUMBER.
IF FCSSCD NOT = FCSS-NO-RECORD-STATUS
PERFORM FCSS-CHECK.
END
READLOCK-CUSTFIL* PROC
READLOCK-CUSTFIL.
CALL 'CFCSS' USING RL, FCDONE, CUSTFIL-RECORD, CUSTFIL,
CUSTFIL-REC-LEN, CUSTFIL-RRN, CUSTFIL-BUF-LEN.
MOVE CUSTFIL-BUFFER TO FCSS-BUFFER.
MOVE CUSTFIL TO FCSS-FILE-NUMBER.
MOVE CUSTFIL-RRN TO FCSS-RECORD-NUMBER.
PERFORM FCSS-CHECK.
END
READ-CUSTFIL-FAST* PROC
READ-CUSTFIL-FAST.
MOVE ZERO TO CUSTFIL-STATUS.
ADD 1 TO CUSTFIL-RECORD-COUNT.
DIVIDE CUSTFIL-RECORD-COUNT BY 256 GIVING INDEX-RRN
REMAINDER X0.
IF X0 EQUAL ZERO MOVE 256 TO X0.
IF X0 EQUAL 1 PERFORM READ-CUSTFIL-INDEX.
IF CUSTFIL-STATUS EQUAL ZERO
IF LEVEL-2-KEY (X0) EQUAL HIGH-VALUES
IF X0 EQUAL 1 MOVE -2 TO CUSTFIL-STATUS
ELSE
GO TO READ-CUSTFIL-FAST
ELSE
MOVE LEVEL-2-RRN (X0) TO CUSTFIL-RRN
PERFORM READ-CUSTFIL-NO-CHECK
IF FCSS-STATUS LESS THAN ZERO
MOVE -2 TO CUSTFIL-STATUS.
READ-CUSTFIL-FAST-EXIT. EXIT.
READ-CUSTFIL-INDEX.
ADD 2 TO INDEX-RRN.
CALL 'CFCSS' USING RR FCDONE INDEX-RECORD CUSTFIL-INDEX
INDEX-RECORD-LENGTH INDEX-RRN INDEX-BUFFER-LENGTH.
MOVE INDEX-BUFFER TO FCSS-BUFFER.
IF FCSS-STATUS LESS THAN ZERO MOVE -2 TO CUSTFIL-STATUS.
END
WRITE-CUSTFIL* PROC
WRITE-CUSTFIL.
CALL 'CFCSS' USING WR, FCDONE, CUSTFIL-RECORD, CUSTFIL,
CUSTFIL-REC-LEN, CUSTFIL-RRN, CUSTFIL-BUF-LEN.
MOVE CUSTFIL-BUFFER TO FCSS-BUFFER.
MOVE CUSTFIL-RRN TO FCSS-RECORD-NUMBER.
MOVE CUSTFIL TO FCSS-FILE-NUMBER.
PERFORM FCSS-CHECK.
END
READ-CUSTFIL-INVALID* PROC
READ-CUSTFIL-INVALID.
MOVE CUSTFIL-INDEX TO INDEX-FILE-NUMBER.
MOVE W140-CUSTOMER-KEY TO SEARCH-KEY.
PERFORM FIND-KEY THRU FIND-KEY-EXIT.
IF SEARCH-RRN EQUAL ZERO MOVE -1 TO RETURN-STATUS.
IF RETURN-STATUS EQUAL ZERO
MOVE SEARCH-RRN TO CUSTFIL-RRN
PERFORM READ-CUSTFIL
IF W140-CUSTOMER-KEY NOT EQUAL SEARCH-KEY
PERFORM SEARCH-ERROR.
END
READLOCK-CUSTFIL-INVALID* PROC
READLOCK-CUSTFIL-INVALID.
MOVE CUSTFIL-INDEX TO INDEX-FILE-NUMBER.
MOVE W140-CUSTOMER-KEY TO SEARCH-KEY.
PERFORM FIND-KEY THRU FIND-KEY-EXIT.
IF SEARCH-RRN EQUAL ZERO MOVE -1 TO RETURN-STATUS.
IF RETURN-STATUS EQUAL ZERO
MOVE SEARCH-RRN TO CUSTFIL-RRN
PERFORM READLOCK-CUSTFIL
IF W140-CUSTOMER-KEY NOT EQUAL SEARCH-KEY
PERFORM SEARCH-ERROR.
END
READ-CUSTFIL-NEXT* PROC
READ-CUSTFIL-NEXT.
MOVE CUSTFIL-INDEX TO INDEX-FILE-NUMBER.
MOVE CUSTFIL-KEY TO SEARCH-KEY.
IF SEARCH-KEY EQUAL HIGH-VALUES
MOVE 9999999999 TO SEARCH-RRN
MOVE -2 TO RETURN-STATUS
ELSE
PERFORM FIND-KEY THRU FIND-KEY-EXIT.
IF SEARCH-RRN EQUAL ZERO OR RETURN-STATUS EQUAL -1
IF NEXT-KEY NOT EQUAL HIGH-VALUES
MOVE NEXT-KEY TO SEARCH-KEY
PERFORM FIND-KEY THRU FIND-KEY-EXIT
ELSE
MOVE NEXT-KEY TO SEARCH-KEY
MOVE 9999999999 TO SEARCH-RRN.
IF SEARCH-RRN GREATER THAN 999999
MOVE -2 TO RETURN-STATUS
ELSE
MOVE SEARCH-RRN TO CUSTFIL-RRN
PERFORM READ-CUSTFIL
IF W140-CUSTOMER-KEY NOT EQUAL SEARCH-KEY
PERFORM SEARCH-ERROR.
MOVE NEXT-KEY TO CUSTFIL-KEY.
END
READLOCK-CUSTFIL-NEXT* PROC
READLOCK-CUSTFIL-NEXT.
MOVE CUSTFIL-INDEX TO INDEX-FILE-NUMBER.
MOVE CUSTFIL-KEY TO SEARCH-KEY.
IF SEARCH-KEY EQUAL HIGH-VALUES
MOVE 9999999999 TO SEARCH-RRN
MOVE -2 TO RETURN-STATUS
ELSE
PERFORM FIND-KEY THRU FIND-KEY-EXIT.
IF SEARCH-RRN EQUAL ZERO OR RETURN-STATUS EQUAL -1
IF NEXT-KEY NOT EQUAL HIGH-VALUES
MOVE NEXT-KEY TO SEARCH-KEY
PERFORM FIND-KEY THRU FIND-KEY-EXIT
ELSE
MOVE NEXT-KEY TO SEARCH-KEY
MOVE 9999999999 TO SEARCH-RRN.
IF SEARCH-RRN GREATER THAN 999999
MOVE -2 TO RETURN-STATUS
ELSE
MOVE SEARCH-RRN TO CUSTFIL-RRN
PERFORM READLOCK-CUSTFIL
IF W140-CUSTOMER-KEY NOT EQUAL SEARCH-KEY
PERFORM SEARCH-ERROR.
MOVE NEXT-KEY TO CUSTFIL-KEY.
END
INSERT-CUSTFIL* PROC
INSERT-CUSTFIL.
MOVE W140-CUSTOMER-KEY TO SEARCH-KEY.
MOVE CUSTFIL-INDEX TO INDEX-FILE-NUMBER.
PERFORM INSERT-KEY THRU INSERT-KEY-EXIT.
IF RETURN-STATUS EQUAL ZERO
MOVE SEARCH-RRN TO CUSTFIL-RRN
PERFORM LOCK-CUSTFIL
PERFORM WRITE-CUSTFIL.
END
DELETE-CUSTFIL* PROC
DELETE-CUSTFIL.
MOVE W140-CUSTOMER-KEY TO SEARCH-KEY.
MOVE CUSTFIL-INDEX TO INDEX-FILE-NUMBER.
PERFORM DELETE-KEY THRU DELETE-KEY-EXIT.
IF RETURN-STATUS EQUAL ZERO
MOVE LOW-VALUES TO CUSTFIL-DATA
PERFORM WRITE-CUSTFIL.
END
READ-ALPHA-INVALID* PROC
READ-ALPHA-INVALID.
MOVE ALPHA-INDEX TO INDEX-FILE-NUMBER.
MOVE W140-NAME-NUMB-KEY TO SEARCH-KEY.
PERFORM FIND-KEY THRU FIND-KEY-EXIT.
IF SEARCH-RRN EQUAL ZERO MOVE -1 TO RETURN-STATUS.
IF RETURN-STATUS EQUAL ZERO
MOVE SEARCH-RRN TO CUSTFIL-RRN
PERFORM READ-CUSTFIL
IF W140-NAME-NUMB-KEY NOT EQUAL SEARCH-KEY
PERFORM SEARCH-ERROR.
END
READLOCK-ALPHA-INVALID* PROC
READLOCK-ALPHA-INVALID.
MOVE ALPHA-INDEX TO INDEX-FILE-NUMBER.
MOVE W140-NAME-NUMB-KEY TO SEARCH-KEY.
PERFORM FIND-KEY THRU FIND-KEY-EXIT.
IF SEARCH-RRN EQUAL ZERO MOVE -1 TO RETURN-STATUS.
IF RETURN-STATUS EQUAL ZERO
MOVE SEARCH-RRN TO CUSTFIL-RRN
PERFORM READLOCK-CUSTFIL
IF W140-NAME-NUMB-KEY NOT EQUAL SEARCH-KEY
PERFORM SEARCH-ERROR.
END
READ-ALPHA-NEXT* PROC
READ-ALPHA-NEXT.
MOVE ALPHA-INDEX TO INDEX-FILE-NUMBER.
MOVE ALPHA-KEY TO SEARCH-KEY.
IF SEARCH-KEY EQUAL HIGH-VALUES
MOVE 9999999999 TO SEARCH-RRN
MOVE -2 TO RETURN-STATUS
ELSE
PERFORM FIND-KEY THRU FIND-KEY-EXIT.
IF SEARCH-RRN EQUAL ZERO OR RETURN-STATUS EQUAL -1
IF NEXT-KEY NOT EQUAL HIGH-VALUES
MOVE NEXT-KEY TO SEARCH-KEY
PERFORM FIND-KEY THRU FIND-KEY-EXIT
ELSE
MOVE NEXT-KEY TO SEARCH-KEY
MOVE 9999999999 TO SEARCH-RRN.
IF SEARCH-RRN GREATER THAN 999999
MOVE -2 TO RETURN-STATUS
ELSE
MOVE SEARCH-RRN TO CUSTFIL-RRN
PERFORM READ-CUSTFIL
IF W140-NAME-NUMB-KEY NOT EQUAL SEARCH-KEY
PERFORM SEARCH-ERROR.
MOVE NEXT-KEY TO ALPHA-KEY.
END
READLOCK-ALPHA-NEXT* PROC
READLOCK-ALPHA-NEXT.
MOVE ALPHA-INDEX TO INDEX-FILE-NUMBER.
MOVE ALPHA-KEY TO SEARCH-KEY.
IF SEARCH-KEY EQUAL HIGH-VALUES
MOVE 9999999999 TO SEARCH-RRN
MOVE -2 TO RETURN-STATUS
ELSE
PERFORM FIND-KEY THRU FIND-KEY-EXIT.
IF SEARCH-RRN EQUAL ZERO OR RETURN-STATUS EQUAL -1
IF NEXT-KEY NOT EQUAL HIGH-VALUES
MOVE NEXT-KEY TO SEARCH-KEY
PERFORM FIND-KEY THRU FIND-KEY-EXIT
ELSE
MOVE NEXT-KEY TO SEARCH-KEY
MOVE 9999999999 TO SEARCH-RRN.
IF SEARCH-RRN GREATER THAN 999999
MOVE -2 TO RETURN-STATUS
ELSE
MOVE SEARCH-RRN TO CUSTFIL-RRN
PERFORM READLOCK-CUSTFIL
IF W140-NAME-NUMB-KEY NOT EQUAL SEARCH-KEY
PERFORM SEARCH-ERROR.
MOVE NEXT-KEY TO ALPHA-KEY.
END
INSERT-ALPHA* PROC
INSERT-ALPHA.
MOVE W140-NAME-NUMB-KEY TO SEARCH-KEY.
MOVE CUSTFIL-RRN TO SEARCH-RRN.
MOVE ALPHA-INDEX TO INDEX-FILE-NUMBER.
PERFORM ALTERNATE-INSERT-KEY THRU ALTERNATE-INSERT-KEY-EXIT.
END
DELETE-ALPHA* PROC
DELETE-ALPHA.
MOVE W140-NAME-NUMB-KEY TO SEARCH-KEY.
MOVE ALPHA-INDEX TO INDEX-FILE-NUMBER.
PERFORM DELETE-KEY THRU DELETE-KEY-EXIT.
END
UNLOCK-CUSTFIL* PROC
UNLOCK-CUSTFIL.
CALL 'CFCSS' USING UN FCDONE CUSTFIL-RECORD.
MOVE CUSTFIL-BUFFER TO FCSS-BUFFER.
MOVE CUSTFIL-RRN TO FCSS-RECORD-NUMBER.
MOVE CUSTFIL TO FCSS-FILE-NUMBER.
PERFORM FCSS-CHECK.
END
LOCK-CUSTFIL* PROC
LOCK-CUSTFIL.
CALL 'CFCSS' USING LK FCDONE CUSTFIL-RECORD CUSTFIL
CUSTFIL-REC-LEN CUSTFIL-RRN CUSTFIL-BUF-LEN.
MOVE CUSTFIL-BUFFER TO FCSS-BUFFER.
MOVE CUSTFIL TO FCSS-FILE-NUMBER.
MOVE CUSTFIL-RRN TO FCSS-RECORD-NUMBER.
PERFORM FCSS-CHECK.
END
CUSTFIL-DEF* PROC
01 CUSTFIL-INDEX PIC 9(10) COMP VALUE 34.
01 ALPHA-INDEX PIC 9(10) COMP VALUE 30.
01 CUSTFIL PIC 9(10) COMP VALUE 33.
01 CUSTFIL-REC-LEN PIC 9(10) COMP VALUE 140.
01 CUSTFIL-BUF-LEN PIC 9(10) COMP VALUE 143.
01 CUSTFIL-RRN PIC 9(10) COMP.
01 CUSTFIL-RECORD-COUNT PIC 9(5) COMP.
01 CUSTFIL-STATUS PIC S99.
01 CUSTFIL-KEY PIC X(12).
01 ALPHA-KEY PIC X(24).
END


Click here to read the complete article
1
server_pubkey.txt

rocksolid light 0.9.81
clearnet tor