PROGRAM MENU DIMENSION IMPURE(4000) C C Menueverwaltung Datalogger+RZGEHS C DIMENSION IBUF(8),iosb(2) BYTE GDATE(9),cmd(80),wahl(6),MENUE(6),MENU0(6) BYTE BUFF(83) DATA WAHL /0,0,0,0,0,0/ DATA MENU0 /'M','E','N','U',0,0/ DATA MENUE /'M','E','N','U','1',' '/ INTEGER CMDL,TAKTNR integer*4 mcr data mcr/6RMCR.../ data cmdl/79/ CALL COMMAN(IQ,BUFF,TAKTNR) !TAKTNR HIER NUR AUS KOMPATIB.GRUENDEN IF (IQ)5000,5000,5005 !ZU AKTUELL,STAT,GRENZ USW. 5005 CALL SWAP(6,BUFF,MENU0) CALL SUBST(6,' ',0,MENU0) CALL SWAP(6,BUFF,MENUE) CALL SUBST(6,' ',0,MENUE) C 5000 CALL ASTEND call finit(impure,4000) call flchan(1) 6 call error(flopen(MENU0)) 1 call wtqio("1400,5,5) !ATTACH TERMINAL C call error(fclrsh(MENUE,1)) C call error(fshow('MENU ',1)) call gettim(ibuf) encode(2,1000,gdate(1))ibuf(3) encode(2,1000,gdate(3))ibuf(2) if(gdate(1).eq.' ')gdate(1)='0' if(gdate(3).eq.' ')gdate(3)='0' gdate(5)='1' gdate(6)='9' encode(2,1000,gdate(7))ibuf(1) 1000 format(i2) 1001 format(o6) 1002 format(i6) 1003 FORMAT(I3) DO 50 I=1,80 50 CMD(I)=0 call error(fput(gdate,'GDATE')) 2 call error(FPUT(wahl,'WAHL')) call error(fget(wahl,iterm,'WAHL')) call fndata(wahl,cmd) call fstat(istat) if(istat.lt.1) then call fputl(' Falsche Auswahl. Bitte neuer Versuch.') goto 2 endif 5 IF(CMD(1).EQ.'X') THEN CMD(1)='A' CMD(2)=0 CALL POS(1,21,23,'Welche Station? ',L) CALL POS(0,21,40,CMD, 1 'Es sind moeglich: A, B, C oder D') CMD(1)=CMD(1).AND..NOT."40 IF(CMD(1).LT.'A'.OR.CMD(1).GT.'D') THEN CMD(1)='X' CALL FPUTL(' Ungueltige Station. Bitte neue Eingabe.') GOTO 5 ENDIF CALL FLCLOS MENUE(5)=CMD(1)-"20 GOTO 6 ENDIF DO 105 I=77,3,-1 IF(CMD(I).NE.' '.AND.CMD(I).NE.0) THEN cmd(I+1)="15 C cmd(I+2)="12 GOTO 106 ENDIF 105 CONTINUE 106 call wtqio("2000,5,5) !detach terminal call spawn(mcr,,,1,,,,cmd,cmdl,TI,0) CALL STOPFR(1,IOSB) !Warten auf Event-Flag goto 1 110 call exit end c subroutine error(result) integer result if(result.gt.0)return call fputl(' Fehler beim Maskenaufruf.') stop end