Go ahead and use the G92 command. Here is my sample logic customized for lathe (where X is usually a diameter, at your option, of course)
SLEEP .2
ISTHERE Z;\404;\405
IF\404>0THENHOME1 z
ISTHERE X;\406;\407
IF\406>0THENHOME2 {x/2}
In MDI, simply type in G92 X40. and the display should reset.
I'd also recommend that you study this logic I use with the G53 in Camsoft. This will permit you to make movements back in the machine coordinate system again, even after you've screwed up the displays with a G92

Hopefully, you do set your MACHZERO at some point in your homing routine at startup.
\149=f 'save current feedrate
SOFTLIMITS OFF
MACHHOME1 \60
MACHHOME2 \61
ISTHERE Z;\402;\403
IF\402>0THEN\60=\403
ISTHERE X;\400;\401
IF\400>0THEN\61={\401/2}
\173=\273 :IF\173>1THEN\173=1
FEEDRATE {\173*50}
DECELSTOP
MACHGO \60;\61;0
WAITUNTIL STOP
SOFTLIMITS ON
f=\149 'restore current feedrate
-----G53
I think that conventional G28 logic is just a special case of the G53 I use. G28 always returns you to machine zero. It would be equivalent to MACHGO 0;0;0
That is likely fine and dandy on a mill, or a chucker that never uses a tailstock. However, I use the tailstock quite a bit on work of greatly varying lengths. Hence, I would usually experience some kind of carriage interference if I always returned to machine zero. So, when setting up for a new part, I place a G53 command near the beginning of my program with X and Z coordinates that are suitable for an intermediate home position for the current part. This helps to ensure that my machine always restarts the program from the correct position, regardless of what I might have done to my displays with G92 commands. So in a sort of mathematical sense, G53 X0Z0 = G28