Dialog has (status bar $ with height $) next to the normal (status bar $) for the sake of Z-machine, which needs to define the height of its status bar before printing into it. On Å-machine, this extra height information is currently ignored, because the web interpreter can handle height: auto.
The 6502 interpreter, however, cannot. (Currently, at least.)
I can see a few ways of changing this. Probably the most elegant is to make the 6502 interpreter support height: auto; and increase the size of the status bar whenever a line break or div margin would fall off the bottom of it. But I'm not sure how feasible that is, implementation-wise.
(I'm looking into whether this is doable on Z-machine, in which case we could potentially retire (status bar $ with height $) entirely. We'll see.)
Alternately, we could add a new opcode that corresponds to (status bar $ with height $). This is such a specific purpose, though, that I would prefer to make the new opcode more general—"enter a status area with additional information specified". What would the format of that information be, though? A list?
Or, we could add a special case to the behavior of ENTER_STATUS that checks the value of a specific register in case of height: auto. This isn't very elegant, but neither is (status bar $ with height $).
What do people think?
Dialog has
(status bar $ with height $)next to the normal(status bar $)for the sake of Z-machine, which needs to define the height of its status bar before printing into it. On Å-machine, this extra height information is currently ignored, because the web interpreter can handleheight: auto.The 6502 interpreter, however, cannot. (Currently, at least.)
I can see a few ways of changing this. Probably the most elegant is to make the 6502 interpreter support
height: auto;and increase the size of the status bar whenever a line break or div margin would fall off the bottom of it. But I'm not sure how feasible that is, implementation-wise.(I'm looking into whether this is doable on Z-machine, in which case we could potentially retire
(status bar $ with height $)entirely. We'll see.)Alternately, we could add a new opcode that corresponds to
(status bar $ with height $). This is such a specific purpose, though, that I would prefer to make the new opcode more general—"enter a status area with additional information specified". What would the format of that information be, though? A list?Or, we could add a special case to the behavior of ENTER_STATUS that checks the value of a specific register in case of
height: auto. This isn't very elegant, but neither is(status bar $ with height $).What do people think?