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