So far, the most pleasantly malleable interpreter I’ve used is Windows Frotz 1.17, and I’m wondering if that’s the slickest I’m going to find.
I’m also wondering if there are any interpreters that don’t scroll text the way it was done in the DOS days; what I mean to say is that I’m looking for a screen refresh any time a new location is entered (or maybe after every command). I’m not sure if that’s even a practical idea, but I always have a hard time re-finding my place when large bodies of text bump up the previous bits halfway up the screen.
Gargoyle is slick, although possibly not in a way that suits you.
IF is typically written with the presumption of some visible scrollback. This is subtle but I wouldn’t ignore it. When you’re looking over a parser error, for example, you want to see all the commands you’ve tried recently – that’s the context in which you can figure out what the parser expects.
If the screen is only cleared for a new location, that isn’t an issue. (When I, as an IF player, move to a new room, I don’t typically look back over previous moves – although sometimes I do.) So this would be a reasonable idea. Unfortunately, it’s hard to implement as an interpreter option, because the interpreter in general doesn’t know what location you’re in or when you’ve moved! That’s implemented in the game code. It would be possible to write a game that behaved this way, but not an interpreter.
If it’s specifically the old-schoolness of the scrolling that bothers you, you might be able to find an interpreter that offers smooth scrolling. Although I don’t know if there is such a thing. It’s a common UI affordance in these days of fast graphics hardware, anyhow.
Gargoyle is lovely and customizable, but you have to dig into the garglk.ini file to do the customizing, which is a bit of extra work if you’re fond of quickly swapping in different fonts and colors for different games based on genre and so on. I do, and I use Gargoyle heavily when I’m playing on a PC … so what I do is I have lots of different versions of garglk.ini that I store in ZIP archives directly within the Gargoyle folder, so I can (reasonably) quickly drop them into the directory to overwrite each other at need.
For Z-machine version 1 to 3 interpreters it may be possible to make it clear the screen when the first global variable is changed, since that is used for updating the status bar, which usually tells you the name of the location you are at.