C
	PROGRAM GAMKE1
C
C	RUECKUMWANDLUNG VON GAMMA-11-MACROS AUS DEM RT11-FORMAT
C	INS GAMMA-11-FORMAT
C
C	HEINEMANN JULI 1981
C	MODIFIED BY A. VIRJO
C	25-AUG-1982
C

	LOGICAL*1 MNAME(14),ZEILE(51,10),MBUFF(1024)
	LOGICAL*1 ARRAY(510)
	EQUIVALENCE (ARRAY,ZEILE)
C
	CALL ASSIGN (3,'SY0:GAMKEC.COM')
	READ (3,310) (MNAME(I),I=1,14)
 310	FORMAT(/1X,14A1)
	CALL CLOSE (3)
C
	CALL ASSIGN (2,'SY0:GAMKED.TMP',14,'OLD')
	DEFINE FILE 2(1,512,U,NREC)
	READ (2'1,END=40)MBUFF
 40	CALL CLOSE (2)
C
	DO 5 I=1,510	!SETZT ARRAY = "0
5	ARRAY(I)="0
C
	IZ=1		!NUMMER DER ZEILE
	M=1
 110	CONTINUE
	K=2		!K IST DIE NUMMER DER SPALTE
	DO 10 I=M,1024
	IF (MBUFF(I).EQ."15)GOTO 100
	IF (MBUFF(I).EQ."0) GOTO 200
	IF (IZ.GT.10) GOTO 401
	IF (K.GT.50) GOTO 301
	ZEILE(K,IZ)=MBUFF(I)
	K=K+1
 10	CONTINUE
	GOTO 200
C
C	UEBERSPRINGT BEIM LESEN <CR><LF>
C
 100	M=I+2
C
C	SCHREIBT ZEILENENDE ("200) UND -ANFANG ("1) IN GAMMA-MACRO
C
	ZEILE(K,IZ)="200
	ZEILE(1,IZ)="1
	IZ=IZ+1		!NAECHSTE ZEILE
C
C	UEBERSPRINGE BEIM SCHREIBEN DEN REST GROESSER 49 ZEICHEN
C	IN EINER ZEILE
C
 20	IF (MBUFF(I).EQ."15) GOTO 30
	I=I+1
	GOTO 20
 30	M=I+2
	GOTO 110
C
C*** FEHLERBEDINGUNGEN ***
C
 301	CALL ITTOUR("007)	!Ring the bell
	WRITE (5,2003) IZ
 2003	FORMAT ('0*** Error: More than 49 characters in row ',
	@I2,','/'     extra characters discarded'//)
	I=I+1
	GOTO 100
C
 401	CALL ITTOUR("007)	!Ring the bell
	WRITE (5,2002)
 2002	FORMAT ('0*** Error: More than 10 rows,'/
	@'     extra rows discarded'//)
C
C*** WEGSCHREIBEN DES GAMMA-MACROS ***
C
 200	CALL ASSIGN (1,MNAME,14)
	DEFINE FILE 1(1,256,U,IREC)
	WRITE (1'1) (ARRAY(I),I=1,510)
C
	CALL CLOSE(1)
	CALL EXIT	!BACK TO RT-11
	END
