Okay, here is Mark 3. It's like the second proposal except that the calculator won't have to remember the input and output forms, only the fields. Mark 3 relies on active code to regenerate each input or output page on demand.
If you only need a single input or output page, you would only have to do something like this:
"Departure latitude (DLAT) (ddd.mmss): "
FIELD 7, DLAT
"Departure longitude (DLONG) (ddd.mmss): "
FIELD 7, DLONG
By default, WAIT just pauses the program and doesn't splash the stack display on the screen. As with my second proposal, you would use a function key to choose a field. Once chosen, the field behaves like a one-line calculator (similar to the old-time HP-25) showing the current value of the variable attached to that field. You could operate on that value, which is in the X register, in the usual RPN fashion. After each operation, the result would be shown inside the field and also stored in the variable. At any time, you could press another function key to choose another field. Or you could press R/S to terminate your input and continue with the heart of your program.
Code for an output page would be similar to the above. You could use FIELD instructions to show the value of the output variables. You would still need a WAIT.
By default, WAIT does not define any page-up or page-down function keys, reacts to R/S by immediately resuming execution at the next program instruction, and terminates execution if you press EXIT. This is probably what you would want if you have only one input or output page. In that case, something like the above is what you would need to write.
For more than one input or output page, you would precede the WAIT with KEYG instuctions that tell the calculator where to go for function keys f5 and f6 (normally page-up and page-down), R/S, and/or EXIT. At a destination would be code similar to the above, if the destination is another page; code for your main program; or an RTN to terminate execution.
This Mark 3 design should be reasonably easy to write code for, and reasonably convenient to operate when your program is running. What do you think?
EDIT: fixed the coordinates for the second TEXT. Other minor changes.