home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Oakland CPM Archive
/
oakcpm.iso
/
sigm
/
sigmv013.ark
/
UTIL.FOR
< prev
Wrap
Text File
|
1984-04-29
|
1KB
|
43 lines
SUBROUTINE UTIL(IOPTN,ITEST,IDATA,LBLNK,
+ ISTRT,ISTOP,LMOVE,IMOVE,IGOTO)
DIMENSION LBLNK(32)
DIMENSION LMOVE(32)
C
C 1) ITEST AND I/P
C 2) INSERT DATA
C 3) MOVE DATA FROM ARRAYS
C 4) LOOK FOR MATCH DATA STATEMENTS
C 5) LOOK AND BLANK
C 6) CONVERT I5 TO 5I5 ARRAY
C 7) LOOK FOR GREATER
C 8) ARRAY ADD
C 9) SWAP ARRAYS
C 10) REVERSE ARRAYS
C
ITYPE = IOPTN
ISAVE = IMOVE
NDATA = IDATA
IDIVD = 10 ** (ISTOP-ISTRT)
DO 900 IGOTO = ISTRT,ISTOP
IF (LBLNK(IGOTO) -ITEST) 100,200,300
100 GOTO (999,800,400,900,900,700,900,500,400,400), ITYPE
C 1 2 3 4 5 6 7 8 9 10
200 GOTO (800,800,400,999,800,700,900,500,400,400), ITYPE
C 1 2 3 4 5 6 7 8 9 10
300 GOTO (999,800,400,900,900,700,999,500,400,400), ITYPE
C 1 2 3 4 5 6 7 8 9 10
400 NDATA = LMOVE(ISAVE)
IF (ITYPE - 9) 410,405,405
405 LMOVE(ISAVE) = LBLNK(IGOTO)
410 ISAVE = ISAVE + 1 - (2 * (ITYPE/10))
GOTO 800
500 NDATA = LBLNK(IGOTO) + LMOVE(ISAVE)
GOTO 410
700 NDATA = ISAVE/IDIVD
ISAVE = ISAVE - ISAVE/IDIVD * IDIVD
IDIVD = IDIVD/10
800 LBLNK(IGOTO) = NDATA
900 CONTINUE
999 RETURN
END