Right, this is the VM stack dump from typing QUIT after the initial questions and then resizing the window by dragging the bottom right corner when the game is asking “Are you sure you want to quit?”:
VM stack dump: 0x3c, 0x9d1c, 0x10cd50, 0xcb911, 0x9f32, 0x106d07, 0x106d74, 0x2a30, 0x14f45, 0x10743f, 0x10cd50, 0xcdef8, 0x1e039, 0x10cd50, 0xec093, 0x26f3, 0x9932, 0x5720, 0x18c4, 0x742, 0x13990e, 0x10cd50, 0x10ceb2, 0x108a55
Translating these to functions gives me this:
0x3c, <Function $3c “Main__”>
0x9d1c, <Function $9d1c “Main”>
0x10cd50, <Function $10cd50 “FollowRulebook”>
0xcb911, <Function $cb911 “B1_turn_sequence”>
0x9f32, <Function $9f32 “GENERATE_ACTION_R”>
0x106d07, <Function $106d07 “BeginAction”>
0x106d74, <Function $106d74 “ActionPrimitive”>
0x2a30, <Function $2a30 “DESCEND_TO_SPECIFIC_ACTION_R”>
0x14f45, KeyError: 85829 “QuitSub”?
0x10743f, <Function $10743f “GenericVerbSub”>
0x10cd50, <Function $10cd50 “FollowRulebook”>
0xcdef8, <Function $cdef8 “B11_specific_action_processi”>
0x1e039, <Function $1e039 “R_28”> (A specific action-processing rule ( this is the carry out stage rule )
0x10cd50, <Function $10cd50 “FollowRulebook”>
0xec093, KeyError: 966803 “B318_carry_out_quitting_the_”?
0x26f3, KeyError: 9971 “QUIT_THE_GAME_R”?
0x9932, <Function $9932 “YesOrNo”>
0x5720, <Function $5720 “KeyboardPrimitive”>
0x18c4, <Function $18c4 “VM_ReadKeyboard”>
0x742, <Function $742 “HandleGlkEvent”>
0x13990e, <Function $13990e “PHR_875_r0”> (To decide what number is the value returned by glk event handling ( this is the handle glk event rule )
0x10cd50, <Function $10cd50 “FollowRulebook”>
0x10ceb2, <Function $10ceb2 “RulebookParBreak”>
0x108a55 <Function $108a55 “DivideParagraphPoint”>
Note that some addresses produced errors (KeyError:) when using the “functions[]” function in profile-analyze.py, so I had to search for the address manually in the gameinfo.dbg instead. But that seemed to work fine.
Unfortunately, this is still not a lot of help, mainly because I still don’t understand what is going on. None of the map-drawing or window-size-adjusting code in Multimedia.i7x seems to be directly involved, nor Simple Graphical Window or Flexible Windows, the other obvious suspects. Rather the problem seems to manifest somewhere in the replacement HandleGlkEvent function in Glulx Entry Points or in VM_ReadKeyboard and YesOrNo from the standard template code (Glulx.i6t and Parser.i6t, respectively).