SUBROUTINE DCMD C FILE DCMD.FR C C CODE TO TEST OUT TRANSFER MODE=3 C ABILITY TO WRITE/READ : C TRACKBALL TARGET C COMMAND BUFFER C DISPLAY BUFFER C INTEGER IDATA(256) C DATA LUN/2/ DATA IBLANK /2H / C CALL COMGO(ISTAT) IF ( ISTAT .EQ. 0 ) TYPE 8000 8000 FORMAT( ' NO COMTAL RESPONSE') TYPE 8001 8001 FORMAT(1H ,' ' ) TYPE 8002 8002 FORMAT(1H ,'CHOOSE THE TYPE OF TRANSFER TO / FROM THE COMTAL' ) TYPE 8003 8003 FORMAT(1H ,' ' ) TYPE 8004 8004 FORMAT(1H ,'0=WRITE X TARGET LOCATION TO COMTAL' ) TYPE 8005 8005 FORMAT(1H ,'1=WRITE Y TARGET LOCATION TO COMTAL' ) TYPE 8006 8006 FORMAT(1H ,'2=READ X,Y TARGET' ) TYPE 8007 8007 FORMAT(1H ,'3=WRITE MACRO CMD BLOCK TO COMTAL' ) TYPE 8008 8008 FORMAT(1H ,'4=READ MACRO CMD BLOCK FROM COMTAL' ) TYPE 8009 8009 FORMAT(1H ,'5=WRITE LSI-11 CODE BLK' ) TYPE 8010 8010 FORMAT(1H ,'6=READ LSI-11 CODE BLK' ) TYPE 8011 8011 FORMAT(1H ,'7=WRITE DATA BLK' ) TYPE 8012 8012 FORMAT(1H ,'8=READ DATA BLK' ) TYPE 8013 8013 FORMAT(1H ,'9=EXIT' ) TYPE 8014 8014 FORMAT(1H ,' ' ) C 10 CONTINUE 9001 TYPE 9002 9002 FORMAT(1H ,'ENTER CMD MODE (0-9) =' ) READ(5,9003,ERR=9001)IMODE 9003 FORMAT(I5) IF((IMODE .LT. 0) .OR. (IMODE .GT. 9 ))GOTO 10 IF( IMODE .GT. 8 )GOTO 100 C DO 11 I=1,256 11 IDATA(I)=IBLANK C IF( IMODE .LT. 2)GOTO 200 IF( IMODE .EQ. IAND("16,IMODE)) GOTO 29 C C open user named file on unit = LUN C C call OPNIO(LUN,ierr) C C the above opens a file and checks for errors C C C define file LUN (2,256,U,nrec) C 25 READ(LUN'nrec,ERR=27,END=27)(IDATA(I),I=1,256) 25 READ(LUN,ERR=27,END=27)(IDATA(I),I=1,255) 27 continue C call CLOSE(LUN) CLOSE(UNIT=LUN) IWORDS =256 IF(IMODE .EQ. 5)GOTO 229 GOTO 31 C C 29 CONTINUE 9004 TYPE 9005 9005 FORMAT(1H ,'ENTER NUMBER OF WORDS TO TRANSFER=' ) READ(5,9006,ERR=9004)IWORDS 9006 FORMAT(I5) C 229 IF((IMODE.GT.6).OR.(IMODE.LT.5))GOTO 31 C TYPE 9010 9010 FORMAT(' STARTING ADDR IN OCTAL=',O6) READ(5,50)IDATA(1) 50 FORMAT(O6) IDATA(1) = ISHFT(IDATA(1),-9) TYPE 9010,IDATA(1) C C 31 CALL COM3(IMODE,IDATA,-IWORDS) 30 CALL COMST(ISTAT) IF ( ISTAT .LT. 0 ) GOTO 30 IF( IMODE .NE. IAND("16,IMODE) ) GOTO 10 C WRITE(5,12)(IDATA(I),I=1,IWORDS) 12 FORMAT( 8(O6,2X) ) GOTO 10 C 200 CONTINUE 9007 TYPE 9008 9008 FORMAT(1H ,'ENTER COORDINATE VALUE TO BE SENT TO COMTAL=' ) READ(5,9009,ERR=9007)IDATA(1) 9009 FORMAT(I5) 300 CALL COM3(IMODE,IDATA,-2) 20 CALL COMST(ISTAT) IF ( ISTAT .LT. 0 ) GOTO 20 GOTO 10 C 100 CALL COMEX RETURN END