Zitat Zitat von Fuerchau Beitrag anzeigen
Eine Rekursion einer Subroutine ist nicht möglich !

Ein EXSR ist keine echte Unterroutine sondern wird von RPG(LE) als GOTO behandelt.
Beim ENDSR wird ein variabler GOTO verwendet, der beim EXSR gesetzt wird.
Bei der Rekursion zerstört also ein EXSR das Setzen der Rücksprungadresse eines vorherigen EXSR, so dasss nicht mehr korrekt zurückgesprungen werden kann.

Wenn du Free verwendest, bieten sich hier eben eher Funktionen/Prozeduren an.
Diese können rekursiv arbeiten, besitzen lokale Variablen und können auch (eher unschönes Design) auf globale Variablen/Dateien zugreifen.
genau das macht er auch im DEBUG er springt zum falschen EXSR.

Vielen Dank für die Erklärung.
Habs im Programm jetzt anders gelöst