Add README.md
[pdp8.git] / sw / rescue / lab8e_goettingen / disk2_11 / rkb / paroff / haedec.ft
CommitLineData
81e70d48
PH
1C -+-+-+-+-+ \ e H A E D E C . F T \ e -+-+-+-+-+\r
2C\r
3C COMMAND INPUT AND DECODING\r
4C * UP 11-MAY-83\r
5C * UP 26-JAN-84\r
6C\r
7 SUBROUTINE DECODE\r
8 INCLUDE HAEPTI.FI\r
9 INCLUDE HABRK.FI\r
10 INCLUDE HAETTY.FI\r
11C\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
22C\r
23C\r
2410 IF BREAK(11) WRITE (TTO,5) @ SWITCH 11 ABORTS ONE TASK ONLY\r
2511 IF BREAK(11) GOTO 11\r
26 IF BREAK(10) WRITE (TTO,6) @ SWITCH 10 ABORTS ALL COMMANDS\r
2712 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
3240 CONTINUE\r
33 RETURN @ NO INPUT, EXECUTE LAST COMMANDS AGAIN\r
3441 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
3915 CONTINUE\r
40 J=0 @ INPUT DIDN'T MATCH ANY CMD, SET THE ERROR FLAG\r
4116 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
4430 IF (SUBLIN(I).EQ.SUBCMD(J)) COMD(I)=J*100+COMD(I)\r
45 GOTO 20 @ EXAMINE THE NEXT CMD'S\r
46C\r
47C\r
4835 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
5620 CONTINUE\r
57 RETURN @ NACH ESUP UM DIE ZEILE AUSZUWERTEN\r
581 FORMAT (26(A2,A1))\r
592 FORMAT (2X,26A3)\r
603 FORMAT (2X,13A6)\r
614 FORMAT (2H $,$)\r
625 FORMAT (' SCHALTER 11 AUSSCHALTEN.')\r
636 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