Commit | Line | Data |
---|---|---|
81e70d48 PH |
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 |