C -+-+-+-+-+  H A E D E C . F T  -+-+-+-+-+ C C COMMAND INPUT AND DECODING C * UP 11-MAY-83 C * UP 26-JAN-84 C SUBROUTINE DECODE INCLUDE HAEPTI.FI INCLUDE HABRK.FI INCLUDE HAETTY.FI C C INTEGER CMD(30),MAXCMD @ MAXCMD = DIM(CMD) * ,SUBCMD(13),MAXSUB, @ MAXSUB=DIM(SUBCMD) * I,J,K,LINE(26),SUBLIN(26) DATA SUBCMD,MAXSUB * /1H0,1H1,1H2,1H3,1H4,1H5,1H6,1H7,1H8,1H9,1H-,1H*,1H+, 13/ DATA CMD,MAXCMD * /2H ,2HRD,2HAD,2HTV,2HPL,2HLP, * 2HCH,2HCO,2HEX,2HTO,2HSC,2HSP,2HSZ,2HPA,2HPR,2HFS,2HF3,2HF1, * 2HPF,2HCF,2HEO,2HID,2HCL,2HYS,2HNY,2HEI,2HFR,3*2H ,30/ C C 10 IF BREAK(11) WRITE (TTO,5) @ SWITCH 11 ABORTS ONE TASK ONLY 11 IF BREAK(11) GOTO 11 IF BREAK(10) WRITE (TTO,6) @ SWITCH 10 ABORTS ALL COMMANDS 12 IF BREAK(10) GOTO 12 WRITE (TTO,4) @ $ DRUCKEN READ (TTI,1) (LINE(I),SUBLIN(I),I=1,26) DO 40 I=1,26 @ TEST IF THERE IS AN EMPTY INPUT IF (LINE(27-I).NE.1H ) GOTO 41 40 CONTINUE RETURN @ NO INPUT, EXECUTE LAST COMMANDS AGAIN 41 CONTINUE ACTNUM=27-I @ DELETE TRAILING WORDS WITH SPACES DO 20 I=1,ACTNUM DO 15 J=1,MAXCMD,1 @ LOOK FOR A CMD IF (LINE(I).EQ.CMD(J)) GOTO 16 @ AHH, WE FOUND 15 CONTINUE J=0 @ INPUT DIDN'T MATCH ANY CMD, SET THE ERROR FLAG 16 COMD(I)=J @ NUMMER DES BEFEHLS EINSETZEN IF (COMD(I).EQ.0) GOTO 35 @ IF THERE IS NO VALID CMD THEN ERROR OFF DO 30 J=1,MAXSUB,1 30 IF (SUBLIN(I).EQ.SUBCMD(J)) COMD(I)=J*100+COMD(I) GOTO 20 @ EXAMINE THE NEXT CMD'S C C 35 CONTINUE @ HERE IS THE ERROR ROUTINE WRITE (TTO,2) LINE @ IM FEHLERFALL EINGABEZEILE MIT STERNCHEN DARUNTER AUSDRUCKEN CALL MOVE (-13,1H ,LINE) K=I*3-2 @ SPALTE AUSRECHNEN CALL CPUT (LINE,K,42) @ FEHLERHAFTE * IN AUSGABEZEILE SETZEN K=K/6+1 @ WORTE AUSRECHNEN UM KEINE WRITE (TTO,3) (LINE(J),J=1,K) @ LEERZEICHEN ZUVIEL ZU DRUCKEN GOTO 10 @ NEUE EINGABE ERWARTEN 20 CONTINUE RETURN @ NACH ESUP UM DIE ZEILE AUSZUWERTEN 1 FORMAT (26(A2,A1)) 2 FORMAT (2X,26A3) 3 FORMAT (2X,13A6) 4 FORMAT (2H $,$) 5 FORMAT (' SCHALTER 11 AUSSCHALTEN.') 6 FORMAT (' SCHALTER 10 AUSSCHALTEN.') END