C JUMBLY MH-ICD.MN 07/16/75. C C HELP UNJUMBLE JUMBLED UP WORDS. C C INPUT FILE DSK:JUMBL.DA C C IN FORM: N ABCDEF ; WHERE N=NUMBER OF CHARACTERS C AND ABCDEF=JUMBLED WORD. WHEN N=0, PROGRAM ENDS NORMALLY. C C OUTPUT FILE SYS:WORDS.DA C C .FORT C *JUMBLY(LIO)$ C C COMMON IUSE,IPERM,IJMP,IWORD,IW DIMENSION IUSE(15),IPRM(15),IJMP(15),IWORD(15),IW(15) C CALL IOPEN('DSK','JUMBL') CALL OOPEN('SYS','WORDS') C 500 READ(4,100) N,IWORD IF(N)509,509,510 C 510 DO 502 I=1,30 502 IUSE(I)=0 IW(N+1)=0 LEVEL=1 S JMS PERM C WRITE(4,102) GOTO 500 C 509 CALL OCLOSE STOP C SPERM, 0 L=LEVEL LEVEL=L+1 S TAD PERM ; DCA \IT IJMP(LEVEL)=IT IT=IPRM(L) IUSE(IT)=0 IT=IT+1 WRITE(3,4) L,IT 4 FORMAT(' IPRM= '2I3) DO 503 I=IT,N IF(IUSE(I))503,501,503 501 IUSE(I)=L IPRM(L)=I GOTO 504 503 CONTINUE S JMP RETURN C 504 IF(N-LEVEL)505,511,511 S\511, JMS PERM ; JMP \511 505 DO 514 I=1,N 514 IW(I)=IWORD(IPRM(I)) WRITE(4,101) (IW(I),I=1,N) IT=IRDSW(0) IF(IT)515,515,506 506 DO 508 I=1,IT 507 CALL DISP9(0,0,IW) IF(ISENS(0))507,508,507 508 CONTINUE S\515, JMP RETURN C SRETURN, NOP WRITE(3,3) LEVEL,IPRM,IUSE 3 FORMAT(I4,X,15I1,X,15I1) LEVEL=LEVEL-1 IUSE(IPRM(LEVEL))=0 IT=IJMP(LEVEL) S JMP I \IT C 100 FORMAT(I1,X,15A1) 101 FORMAT(15A1) 102 FORMAT(20('*')) END