SUBROUTINE GBOARD COMMON/SIZE/INUM,IMAX,ITRY CALL TTPOS(1,1,IE) WRITE(5,100) 100 FORMAT(//,(45X,(4H!---),1H!,/,45X,(4H! ),1H!,/), + 45X,(4H!---),1H!) RETURN END SUBROUTINE GETGES(IROW,IGUESS,ICON) COMMON/SIZE/INUM,IMAX,ITRY,ITYPE BYTE A DIMENSION IGUESS(5),MAX(3) DATA MAX/'4','6','8'/ NUMGES=0 ICON=0 IX=43 IY=(IROW-1)*2+5 10 IX=IX+4 20 CALL TTPOS(IX,IY,IE) CALL RPALL(5,A,1) 1010 FORMAT(1X,A1) IF(A.EQ.'S') CALL EXIT IF(A.EQ.'C') GO TO 60 IF(A.NE.'D') GO TO 40 A=1H CALL TTPOS(IX,IY-1,IE) WRITE(5,1010) A IF(NUMGES.EQ.0) GO TO 20 IX=IX-4 NUMGES=NUMGES-1 30 CALL TTPOS(IX,IY-1,IE) A=1H WRITE(5,1010) A GO TO 20 40 IF(A.LT.'1'.OR.A.GT.MAX(ITYPE)) GO TO 30 NUMGES=NUMGES+1 IGUESS(NUMGES)=A-"60 IF(NUMGES.LT.INUM) GO TO 10 RETURN 60 ICON=1 RETURN END SUBROUTINE ANSWER(IROW,NUMX,NUMO) BYTE A(2) DATA A/'X','O'/ IX=70 IY=(IROW-1)*2+4 IF(NUMX.EQ.0) GO TO 15 DO 10 I=1,NUMX IX=IX+2 CALL TTPOS(IX,IY) WRITE(5,1000) A(1) 1000 FORMAT(1X,A1) 10 CONTINUE 15 IF(NUMO.EQ.0) RETURN DO 20 I=1,NUMO IX=IX+2 CALL TTPOS(IX,IY) WRITE(5,1000) A(2) 20 CONTINUE RETURN END SUBROUTINE WPALL(L,A,N) DIMENSION IPRM(2),ISTAT(2) BYTE A(1) IPRM(2)=N CALL GETADR(IPRM,A) CALL WTQIO("410,L,1,,ISTAT,IPRM,ISW) RETURN END SUBROUTINE RPALL(L,A,N) DIMENSION IPRM(6),ISTAT(2) BYTE A(1) IPRM(2)=N CALL GETADR(IPRM,A) CALL WTQIO("1010,L,1,,ISTAT,IPRM,ISW) RETURN END SUBROUTINE TTPOS(IX,IY,IE) DIMENSION IPRM(6),ISTAT(2) BYTE A(4),STATUS(4) EQUIVALENCE (ISTAT,STATUS) DATA A/"33,1HF,32,32/ A(3)=IY+31 A(4)=IX+31 IF(A(3).LT.32.OR.A(3).GT.55) GO TO 20 IF(A(4).LT.32.OR.A(4).GT.111) GO TO 20 10 IPRM(2)=4 CALL GETADR(IPRM,A) CALL WTQIO("410,5,1,,ISTAT,IPRM,ISW) RETURN 20 IE=1 A(3)=32 A(4)=32 GO TO 10 END