Event VM Opcode Semantics

Event/object VM dispatch is byte-table grounded, and text-source opcodes 0x0b, 0x0c, and 0x0d now have explicit length/operand/effect rows; opcode 0x02 also has a grounded cursor/separator length/effect row, and opcodes 0x03/0x04/0x06/0x07/0x08/0x09/0x0a/0x0e/0x15/0x1b/0x37 have handler-grounded display, wait, position, style, data-bank, and control-flow rows. This narrows the VM semantics gap without promoting route-linked event execution: the route-linked 0x0c hits remain pointer overlaps, 0x35 is literal storage evidence, browser replay remains partial, and full event VM instruction decoding is still incomplete.

Promotion status: text-opcode-semantics-grounded-route-execution-missing

Dispatcher

fieldvalue
tableVaHex0x0047f1d8
entryCount64
dispatcherVaHex0x0041b687
dispatchCallVaHex0x0041b6cd
dispatcherVerifiedTrue
byteCheckCount6

Opcode Semantics

opcodehandlerstatuslengthoperand layoutcommandsbrowser replaypromotion impact
0x020x0041b771display-cursor-opcode-grounded0x4no promoted text id operand; updates cursor fields from current context and font-row table526Truesupports partial dialogue cursor/separator trace only; route-linked execution still missing
0x030x0041b7bbdisplay-state-opcode-grounded0x4stream byte at +2 selects context+0xde display/font row77Falsedisplay state evidence only; browser replay does not execute full VM control flow
0x040x0041b7eddisplay-timer-opcode-grounded0x4stream word at +2 seeds context+0xca21Falsedisplay/timer state evidence only; browser replay does not execute full VM timing
0x060x0041b8eeinput-wait-opcode-grounded0x4no promoted text operand; waits on global 0x47f1d4 and input mask 0x0059e312243Falsedialogue wait evidence only; full browser event VM wait loop remains unimplemented
0x070x0041b956object-position-opcode-grounded0x8stream words at +2/+4 become fixed-point x/y75Falseobject placement evidence only; route-linked event object execution still missing
0x080x0041b9a0display-style-opcode-groundedmode0=0x4/mode1=0x8stream byte +2 mode; mode0 uses table index byte +3 at 0x59daf0, mode1 uses immediate bytes +5/+6/+775Falsedisplay style evidence only; variable-length VM execution remains partial
0x090x0041bac6control-flow-call-opcode-grounded0x8stream dword at +4 is branch target; stream+8 is pushed as continuation143FalseVM control-flow evidence only; browser replay does not follow original event branches
0x0a0x0041bb15control-flow-return-opcode-groundedstack-popno stream operand; pops continuation from context+0xb4 stack using context+0xc895FalseVM control-flow evidence only; browser replay does not execute original call/return branches
0x0b0x0041bb4ctext-source-opcode-grounded0x4inherited context+0x283179Truesupports partial dialogue replay only; route-linked execution still missing
0x0c0x0041bb99text-source-opcode-grounded0x14stream dword at +0x0c, but command-start proof is required3False0x0c route-linked hits are pointer overlap, so this opcode stays non-promoting
0x0d0x0041bca4text-source-opcode-grounded0x8stream dword at +483Truesupports partial dialogue replay only; route-linked execution still missing
0x0e0x0041bd4fcursor-relative-opcode-grounded0x8stream words at +2/+4 optionally offset current text origin unless 0xffff sentinel87Falsecursor positioning evidence only; browser replay does not execute full layout VM
0x150x0041d476cursor-origin-relative-opcode-grounded0x8stream words at +2/+4 optionally offset and update text origin unless 0xffff sentinel59Falsecursor origin evidence only; browser replay does not execute full layout VM
0x1b0x0041d89ddata-bank-select-opcode-grounded0x4stream byte at +2 selects context+0xa8 backing table; mode 2 also uses stream byte +378Falsestate-table selection evidence only; full object/script data VM remains partial
0x350x0041fe09literal-storage-marker-CP949 text bytes are preserved as literalTextEvents from dialogue block storage; handler semantics are not promoted.249Truestorage evidence only; not route-linked VM execution
0x370x00420028global-timer-opcode-grounded0x4no stream operand; reads global byte 0x45774554Falseglobal display/timer state evidence only; not event route execution proof

Coverage

fieldvalue
dispatcherVerifiedTrue
dispatcherTableVaHex0x0047f1d8
dispatcherVaHex0x0041b687
dispatchCallVaHex0x0041b6cd
textSourceOpcodeCount3
decodedTextSourceOpcodeCount3
decodedTextSourceOpcodeLengths{"0x0b": 4, "0x0c": 20, "0x0d": 8}
textSourceOpcodeLengthsDecodedTrue
textSourceOperandSemanticsGroundedTrue
displayCursorOpcodeCount1
decodedDisplayCursorOpcodeCount1
decodedDisplayCursorOpcodeLengths{"0x02": 4}
displayCursorOpcodeGroundedTrue
displayCursorCommandCount526
controlOpcodeCount11
groundedControlOpcodeCount11
controlOpcodeSemanticsGroundedTrue
decodedControlOpcodeLengths{"0x03": 4, "0x04": 4, "0x06": 4, "0x07": 8, "0x09": 8, "0x0e": 8, "0x15": 8, "0x1b": 4, "0x37": 4}
variableLengthControlOpcodes{"0x08": {"mode0": 4, "mode1": 8}}
controlOpcodeCommandCounts{"0x03": 77, "0x04": 21, "0x06": 243, "0x07": 75, "0x08": 75, "0x09": 143, "0x0a": 95, "0x0e": 87, "0x15": 59, "0x1b": 78, "0x37": 54}
groundedControlCommandCount1007
groundedControlEventCount1007
groundedControlEventOpcodeSet["0x03", "0x04", "0x06", "0x07", "0x08", "0x09", "0x0a", "0x0e", "0x15", "0x1b", "0x37"]
groundedControlSampleEffectExecutionCount0
literalStorageOpcodeObservedTrue
literalStorageEventCount249
opcode0cPointerOverlapNotPromotedTrue
routeLinkedCommandCount2
routeLinkedCommandsArePointerOverlapTrue
browserPartialReplayOpcodeSet["0x02", "0x0b", "0x0d", "0x35"]
browserPartialReplayMatchesTextSemanticsTrue
browserGroundedControlEventsPreservedTrue
browserFullEventVmImplementedFalse
routeLinkedEventVmExecutionFalse
fullInstructionLengthFullyDecodedFalse
fullOperandLayoutFullyDecodedFalse

Next Evidence Needed