Action! is a cool language.

However, by design it did not support recursion, directly or indirectly: https://atariwiki.org/wiki/Wiki.jsp?page=Action Variables were assigned constant locations, which made things easier for the cpu, but that's a harsh limitation.

It was only available on Atari and for a while you had to have a cartridge to run its programs. For many, these were deal-breakers, as you couldn't release your programs to many.

As always, trade-offs, but pretty big ones.

I believe that static assignment is the default for Turbo as well. If you want re-entrant/recursive calls, they were selectively enabled through a directive.

But at least it was directly supported by Turbo.

6502 and stack frames don’t really get along. 65816 was a much better citizen in that regard.