{"abstract":"Pushing past the bottom of the stack page overwrites the same byte repeatedly.","category":"Instruction set emulation","checks":7,"contract":"Input [pc, sp, ops] for an 8-bit stack pointer addressing page 0x100. push stores at 0x100+sp then decrements sp (wrapping in 8 bits); pull increments sp (wrapping) then reads (unwritten bytes read 0). jsr t (3 bytes at pc) pushes (pc+2) high byte then low byte and jumps; rts pulls low then high and resumes at that address + 1 (16-bit wrap). pha v pushes v, pla pulls; both and nop advance pc by 1. Return [[pc, sp, pulled value or None] per op, sorted [address, byte] of written stack memory].","contract_signature":"*args","evaluation_group":"w2-instruction-set-emulation-hw-stack","failed_approach":"A 9-bit wrap leaves the stack page.","family":"w2-instruction-set-emulation-hw-stack-push-pointer-wrap","id":"FA-89406","implementations":{"attempt":{"sha256":"2df64d6a8045402f64f17807c1d30dcf6755052aed1750afc082542f16c6d440","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(*args):\n    pc, sp, ops = args\n    mem = {}\n    trace = []\n    def push(v):\n        nonlocal sp\n        mem[0x100 + sp] = v & 0xFF\n        sp = (sp - 1) & 0x1FF\n    def pull():\n        nonlocal sp\n        sp = (sp + 1) & 0xFF\n        return mem.get(0x100 + sp, 0)\n    for op in ops:\n        got = None\n        if op[0] == 'jsr':\n            ret = (pc + 2) & 0xFFFF\n            push(ret >> 8)\n            push(ret)\n            pc = op[1]\n        elif op[0] == 'rts':\n            lo = pull()\n            hi = pull()\n            pc = ((hi << 8 | lo) + 1) & 0xFFFF\n        elif op[0] == 'pha':\n            push(op[1])\n            pc += 1\n        elif op[0] == 'pla':\n            got = pull()\n            pc += 1\n        else:\n            pc += 1\n        trace.append([pc, sp, got])\n    return [trace, [[k, mem[k]] for k in sorted(mem)]]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('call and return', [1536, 253, [['jsr', 1792], ['nop'], ['rts']]], [[[1792, 251, None], [1793, 251, None], [1539, 253, None]], [[508, 2], [509, 6]]]), ('push and pull', [512, 255, [['pha', 18], ['pha', 34], ['pla'], ['pla']]], [[[513, 254, None], [514, 253, None], [515, 254, 34], [516, 255, 18]], [[510, 34], [511, 18]]]), ('stack pointer wraps below page start', [768, 1, [['pha', 51], ['pha', 68], ['pha', 86], ['pla']]], [[[769, 0, None], [770, 255, None], [771, 254, None], [772, 255, 86]], [[256, 68], [257, 51], [511, 86]]]), ('pull wraps above page end', [1024, 254, [['pla'], ['pla'], ['pla']]], [[[1025, 255, 0], [1026, 0, 0], [1027, 1, 0]], []]), ('nested calls', [2289, 255, [['jsr', 2304], ['jsr', 2560], ['rts'], ['rts']]], [[[2304, 253, None], [2560, 251, None], [2307, 253, None], [2292, 255, None]], [[508, 2], [509, 9], [510, 243], [511, 8]]]), ('return address carries into high byte', [4350, 240, [['jsr', 8192], ['rts']]], [[[8192, 238, None], [4353, 240, None]], [[495, 0], [496, 17]]]), ('return from top of memory', [65533, 129, [['jsr', 4660], ['rts']]], [[[4660, 127, None], [0, 129, None]], [[384, 255], [385, 255]]])], [('call and return', [1536, 253, [['jsr', 1792], ['nop'], ['rts']]], [[[1792, 251, None], [1793, 251, None], [1539, 253, None]], [[508, 2], [509, 6]]]), ('push and pull', [512, 255, [['pha', 19], ['pha', 34], ['pla'], ['pla']]], [[[513, 254, None], [514, 253, None], [515, 254, 34], [516, 255, 19]], [[510, 34], [511, 19]]]), ('stack pointer wraps below page start', [768, 1, [['pha', 51], ['pha', 68], ['pha', 87], ['pla']]], [[[769, 0, None], [770, 255, None], [771, 254, None], [772, 255, 87]], [[256, 68], [257, 51], [511, 87]]]), ('pull wraps above page end', [1024, 254, [['pla'], ['pla'], ['pla']]], [[[1025, 255, 0], [1026, 0, 0], [1027, 1, 0]], []]), ('nested calls', [2290, 255, [['jsr', 2304], ['jsr', 2560], ['rts'], ['rts']]], [[[2304, 253, None], [2560, 251, None], [2307, 253, None], [2293, 255, None]], [[508, 2], [509, 9], [510, 244], [511, 8]]]), ('return address carries into high byte', [4350, 240, [['jsr', 8192], ['rts']]], [[[8192, 238, None], [4353, 240, None]], [[495, 0], [496, 17]]]), ('return from top of memory', [65533, 130, [['jsr', 4660], ['rts']]], [[[4660, 128, None], [0, 130, None]], [[385, 255], [386, 255]]])], [('call and return', [1536, 253, [['jsr', 1792], ['nop'], ['rts']]], [[[1792, 251, None], [1793, 251, None], [1539, 253, None]], [[508, 2], [509, 6]]]), ('push and pull', [512, 255, [['pha', 20], ['pha', 34], ['pla'], ['pla']]], [[[513, 254, None], [514, 253, None], [515, 254, 34], [516, 255, 20]], [[510, 34], [511, 20]]]), ('stack pointer wraps below page start', [768, 1, [['pha', 51], ['pha', 68], ['pha', 88], ['pla']]], [[[769, 0, None], [770, 255, None], [771, 254, None], [772, 255, 88]], [[256, 68], [257, 51], [511, 88]]]), ('pull wraps above page end', [1024, 254, [['pla'], ['pla'], ['pla']]], [[[1025, 255, 0], [1026, 0, 0], [1027, 1, 0]], []]), ('nested calls', [2291, 255, [['jsr', 2304], ['jsr', 2560], ['rts'], ['rts']]], [[[2304, 253, None], [2560, 251, None], [2307, 253, None], [2294, 255, None]], [[508, 2], [509, 9], [510, 245], [511, 8]]]), ('return address carries into high byte', [4350, 240, [['jsr', 8192], ['rts']]], [[[8192, 238, None], [4353, 240, None]], [[495, 0], [496, 17]]]), ('return from top of memory', [65533, 131, [['jsr', 4660], ['rts']]], [[[4660, 129, None], [0, 131, None]], [[386, 255], [387, 255]]])], [('call and return', [1536, 253, [['jsr', 1792], ['nop'], ['rts']]], [[[1792, 251, None], [1793, 251, None], [1539, 253, None]], [[508, 2], [509, 6]]]), ('push and pull', [512, 255, [['pha', 21], ['pha', 34], ['pla'], ['pla']]], [[[513, 254, None], [514, 253, None], [515, 254, 34], [516, 255, 21]], [[510, 34], [511, 21]]]), ('stack pointer wraps below page start', [768, 1, [['pha', 51], ['pha', 68], ['pha', 89], ['pla']]], [[[769, 0, None], [770, 255, None], [771, 254, None], [772, 255, 89]], [[256, 68], [257, 51], [511, 89]]]), ('pull wraps above page end', [1024, 254, [['pla'], ['pla'], ['pla']]], [[[1025, 255, 0], [1026, 0, 0], [1027, 1, 0]], []]), ('nested calls', [2292, 255, [['jsr', 2304], ['jsr', 2560], ['rts'], ['rts']]], [[[2304, 253, None], [2560, 251, None], [2307, 253, None], [2295, 255, None]], [[508, 2], [509, 9], [510, 246], [511, 8]]]), ('return address carries into high byte', [4350, 240, [['jsr', 8192], ['rts']]], [[[8192, 238, None], [4353, 240, None]], [[495, 0], [496, 17]]]), ('return from top of memory', [65533, 132, [['jsr', 4660], ['rts']]], [[[4660, 130, None], [0, 132, None]], [[387, 255], [388, 255]]])], [('call and return', [1536, 253, [['jsr', 1792], ['nop'], ['rts']]], [[[1792, 251, None], [1793, 251, None], [1539, 253, None]], [[508, 2], [509, 6]]]), ('push and pull', [512, 255, [['pha', 22], ['pha', 34], ['pla'], ['pla']]], [[[513, 254, None], [514, 253, None], [515, 254, 34], [516, 255, 22]], [[510, 34], [511, 22]]]), ('stack pointer wraps below page start', [768, 1, [['pha', 51], ['pha', 68], ['pha', 90], ['pla']]], [[[769, 0, None], [770, 255, None], [771, 254, None], [772, 255, 90]], [[256, 68], [257, 51], [511, 90]]]), ('pull wraps above page end', [1024, 254, [['pla'], ['pla'], ['pla']]], [[[1025, 255, 0], [1026, 0, 0], [1027, 1, 0]], []]), ('nested calls', [2293, 255, [['jsr', 2304], ['jsr', 2560], ['rts'], ['rts']]], [[[2304, 253, None], [2560, 251, None], [2307, 253, None], [2296, 255, None]], [[508, 2], [509, 9], [510, 247], [511, 8]]]), ('return address carries into high byte', [4350, 240, [['jsr', 8192], ['rts']]], [[[8192, 238, None], [4353, 240, None]], [[495, 0], [496, 17]]]), ('return from top of memory', [65533, 133, [['jsr', 4660], ['rts']]], [[[4660, 131, None], [0, 133, None]], [[388, 255], [389, 255]]])]]\nfor label, args, expected in fixtures[N-1]:\n    check(label, solve(*args), expected)\nprint(json.dumps({\"observations\": observations, \"passed\": all(x[\"passed\"] for x in observations)}, ensure_ascii=False))\nraise SystemExit(0 if all(x[\"passed\"] for x in observations) else 1)\n"},"broken":{"sha256":"08313e3fb3c9eca740d438e5e6b41bde83add68027cc28be1336fec09adc880d","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(*args):\n    pc, sp, ops = args\n    mem = {}\n    trace = []\n    def push(v):\n        nonlocal sp\n        mem[0x100 + sp] = v & 0xFF\n        sp = max(sp - 1, 0)\n    def pull():\n        nonlocal sp\n        sp = (sp + 1) & 0xFF\n        return mem.get(0x100 + sp, 0)\n    for op in ops:\n        got = None\n        if op[0] == 'jsr':\n            ret = (pc + 2) & 0xFFFF\n            push(ret >> 8)\n            push(ret)\n            pc = op[1]\n        elif op[0] == 'rts':\n            lo = pull()\n            hi = pull()\n            pc = ((hi << 8 | lo) + 1) & 0xFFFF\n        elif op[0] == 'pha':\n            push(op[1])\n            pc += 1\n        elif op[0] == 'pla':\n            got = pull()\n            pc += 1\n        else:\n            pc += 1\n        trace.append([pc, sp, got])\n    return [trace, [[k, mem[k]] for k in sorted(mem)]]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('call and return', [1536, 253, [['jsr', 1792], ['nop'], ['rts']]], [[[1792, 251, None], [1793, 251, None], [1539, 253, None]], [[508, 2], [509, 6]]]), ('push and pull', [512, 255, [['pha', 18], ['pha', 34], ['pla'], ['pla']]], [[[513, 254, None], [514, 253, None], [515, 254, 34], [516, 255, 18]], [[510, 34], [511, 18]]]), ('stack pointer wraps below page start', [768, 1, [['pha', 51], ['pha', 68], ['pha', 86], ['pla']]], [[[769, 0, None], [770, 255, None], [771, 254, None], [772, 255, 86]], [[256, 68], [257, 51], [511, 86]]]), ('pull wraps above page end', [1024, 254, [['pla'], ['pla'], ['pla']]], [[[1025, 255, 0], [1026, 0, 0], [1027, 1, 0]], []]), ('nested calls', [2289, 255, [['jsr', 2304], ['jsr', 2560], ['rts'], ['rts']]], [[[2304, 253, None], [2560, 251, None], [2307, 253, None], [2292, 255, None]], [[508, 2], [509, 9], [510, 243], [511, 8]]]), ('return address carries into high byte', [4350, 240, [['jsr', 8192], ['rts']]], [[[8192, 238, None], [4353, 240, None]], [[495, 0], [496, 17]]]), ('return from top of memory', [65533, 129, [['jsr', 4660], ['rts']]], [[[4660, 127, None], [0, 129, None]], [[384, 255], [385, 255]]])], [('call and return', [1536, 253, [['jsr', 1792], ['nop'], ['rts']]], [[[1792, 251, None], [1793, 251, None], [1539, 253, None]], [[508, 2], [509, 6]]]), ('push and pull', [512, 255, [['pha', 19], ['pha', 34], ['pla'], ['pla']]], [[[513, 254, None], [514, 253, None], [515, 254, 34], [516, 255, 19]], [[510, 34], [511, 19]]]), ('stack pointer wraps below page start', [768, 1, [['pha', 51], ['pha', 68], ['pha', 87], ['pla']]], [[[769, 0, None], [770, 255, None], [771, 254, None], [772, 255, 87]], [[256, 68], [257, 51], [511, 87]]]), ('pull wraps above page end', [1024, 254, [['pla'], ['pla'], ['pla']]], [[[1025, 255, 0], [1026, 0, 0], [1027, 1, 0]], []]), ('nested calls', [2290, 255, [['jsr', 2304], ['jsr', 2560], ['rts'], ['rts']]], [[[2304, 253, None], [2560, 251, None], [2307, 253, None], [2293, 255, None]], [[508, 2], [509, 9], [510, 244], [511, 8]]]), ('return address carries into high byte', [4350, 240, [['jsr', 8192], ['rts']]], [[[8192, 238, None], [4353, 240, None]], [[495, 0], [496, 17]]]), ('return from top of memory', [65533, 130, [['jsr', 4660], ['rts']]], [[[4660, 128, None], [0, 130, None]], [[385, 255], [386, 255]]])], [('call and return', [1536, 253, [['jsr', 1792], ['nop'], ['rts']]], [[[1792, 251, None], [1793, 251, None], [1539, 253, None]], [[508, 2], [509, 6]]]), ('push and pull', [512, 255, [['pha', 20], ['pha', 34], ['pla'], ['pla']]], [[[513, 254, None], [514, 253, None], [515, 254, 34], [516, 255, 20]], [[510, 34], [511, 20]]]), ('stack pointer wraps below page start', [768, 1, [['pha', 51], ['pha', 68], ['pha', 88], ['pla']]], [[[769, 0, None], [770, 255, None], [771, 254, None], [772, 255, 88]], [[256, 68], [257, 51], [511, 88]]]), ('pull wraps above page end', [1024, 254, [['pla'], ['pla'], ['pla']]], [[[1025, 255, 0], [1026, 0, 0], [1027, 1, 0]], []]), ('nested calls', [2291, 255, [['jsr', 2304], ['jsr', 2560], ['rts'], ['rts']]], [[[2304, 253, None], [2560, 251, None], [2307, 253, None], [2294, 255, None]], [[508, 2], [509, 9], [510, 245], [511, 8]]]), ('return address carries into high byte', [4350, 240, [['jsr', 8192], ['rts']]], [[[8192, 238, None], [4353, 240, None]], [[495, 0], [496, 17]]]), ('return from top of memory', [65533, 131, [['jsr', 4660], ['rts']]], [[[4660, 129, None], [0, 131, None]], [[386, 255], [387, 255]]])], [('call and return', [1536, 253, [['jsr', 1792], ['nop'], ['rts']]], [[[1792, 251, None], [1793, 251, None], [1539, 253, None]], [[508, 2], [509, 6]]]), ('push and pull', [512, 255, [['pha', 21], ['pha', 34], ['pla'], ['pla']]], [[[513, 254, None], [514, 253, None], [515, 254, 34], [516, 255, 21]], [[510, 34], [511, 21]]]), ('stack pointer wraps below page start', [768, 1, [['pha', 51], ['pha', 68], ['pha', 89], ['pla']]], [[[769, 0, None], [770, 255, None], [771, 254, None], [772, 255, 89]], [[256, 68], [257, 51], [511, 89]]]), ('pull wraps above page end', [1024, 254, [['pla'], ['pla'], ['pla']]], [[[1025, 255, 0], [1026, 0, 0], [1027, 1, 0]], []]), ('nested calls', [2292, 255, [['jsr', 2304], ['jsr', 2560], ['rts'], ['rts']]], [[[2304, 253, None], [2560, 251, None], [2307, 253, None], [2295, 255, None]], [[508, 2], [509, 9], [510, 246], [511, 8]]]), ('return address carries into high byte', [4350, 240, [['jsr', 8192], ['rts']]], [[[8192, 238, None], [4353, 240, None]], [[495, 0], [496, 17]]]), ('return from top of memory', [65533, 132, [['jsr', 4660], ['rts']]], [[[4660, 130, None], [0, 132, None]], [[387, 255], [388, 255]]])], [('call and return', [1536, 253, [['jsr', 1792], ['nop'], ['rts']]], [[[1792, 251, None], [1793, 251, None], [1539, 253, None]], [[508, 2], [509, 6]]]), ('push and pull', [512, 255, [['pha', 22], ['pha', 34], ['pla'], ['pla']]], [[[513, 254, None], [514, 253, None], [515, 254, 34], [516, 255, 22]], [[510, 34], [511, 22]]]), ('stack pointer wraps below page start', [768, 1, [['pha', 51], ['pha', 68], ['pha', 90], ['pla']]], [[[769, 0, None], [770, 255, None], [771, 254, None], [772, 255, 90]], [[256, 68], [257, 51], [511, 90]]]), ('pull wraps above page end', [1024, 254, [['pla'], ['pla'], ['pla']]], [[[1025, 255, 0], [1026, 0, 0], [1027, 1, 0]], []]), ('nested calls', [2293, 255, [['jsr', 2304], ['jsr', 2560], ['rts'], ['rts']]], [[[2304, 253, None], [2560, 251, None], [2307, 253, None], [2296, 255, None]], [[508, 2], [509, 9], [510, 247], [511, 8]]]), ('return address carries into high byte', [4350, 240, [['jsr', 8192], ['rts']]], [[[8192, 238, None], [4353, 240, None]], [[495, 0], [496, 17]]]), ('return from top of memory', [65533, 133, [['jsr', 4660], ['rts']]], [[[4660, 131, None], [0, 133, None]], [[388, 255], [389, 255]]])]]\nfor label, args, expected in fixtures[N-1]:\n    check(label, solve(*args), expected)\nprint(json.dumps({\"observations\": observations, \"passed\": all(x[\"passed\"] for x in observations)}, ensure_ascii=False))\nraise SystemExit(0 if all(x[\"passed\"] for x in observations) else 1)\n"}},"limitations":"A deterministic bounded teaching model of one emulator rule; the instruction semantics are a stipulated contract inspired by common ISAs and are not a claim of cycle-exact or architectural conformance. This reproducer isolates one failure mechanism. Results cover the supplied fixtures. Variants within a family share a test contract and should remain grouped when constructing evaluation splits. Related mechanisms with a shared evaluation_group must also remain together; these controlled models are not independent production incidents.","method":"Deterministic executable model with adversarial boundary fixtures.","provenance":{"created_by":"Failure Map","dependencies":"Python standard library","family":"w2-instruction-set-emulation-hw-stack-push-pointer-wrap","generated_at":"2026-09-29T14:51:17.242992+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Emulated call/return must reproduce the exact stack image because programs inspect and manipulate return addresses on the stack.","root_cause":"The decrement saturates instead of wrapping within the page.","sha256":"fc077379c140e74f830aebf4a46c29ca5b4ac5a1b42924270828d3db6f156bb6","title":"Stack pointer sticks at zero · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verified":true,"visibility":"public","verification":{"attempt":{"elapsed_ms":43.24,"exit_code":1,"observations":[{"actual":[[[1792,251,null],[1793,251,null],[1539,253,null]],[[508,2],[509,6]]],"check":"call and return","expected":[[[1792,251,null],[1793,251,null],[1539,253,null]],[[508,2],[509,6]]],"passed":true},{"actual":[[[513,254,null],[514,253,null],[515,254,34],[516,255,18]],[[510,34],[511,18]]],"check":"push and pull","expected":[[[513,254,null],[514,253,null],[515,254,34],[516,255,18]],[[510,34],[511,18]]],"passed":true},{"actual":[[[769,0,null],[770,511,null],[771,510,null],[772,255,0]],[[256,68],[257,51],[767,86]]],"check":"stack pointer wraps below page start","expected":[[[769,0,null],[770,255,null],[771,254,null],[772,255,86]],[[256,68],[257,51],[511,86]]],"passed":false},{"actual":[[[1025,255,0],[1026,0,0],[1027,1,0]],[]],"check":"pull wraps above page end","expected":[[[1025,255,0],[1026,0,0],[1027,1,0]],[]],"passed":true},{"actual":[[[2304,253,null],[2560,251,null],[2307,253,null],[2292,255,null]],[[508,2],[509,9],[510,243],[511,8]]],"check":"nested calls","expected":[[[2304,253,null],[2560,251,null],[2307,253,null],[2292,255,null]],[[508,2],[509,9],[510,243],[511,8]]],"passed":true},{"actual":[[[8192,238,null],[4353,240,null]],[[495,0],[496,17]]],"check":"return address carries into high byte","expected":[[[8192,238,null],[4353,240,null]],[[495,0],[496,17]]],"passed":true},{"actual":[[[4660,127,null],[0,129,null]],[[384,255],[385,255]]],"check":"return from top of memory","expected":[[[4660,127,null],[0,129,null]],[[384,255],[385,255]]],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"call and return\", \"actual\": [[[1792, 251, null], [1793, 251, null], [1539, 253, null]], [[508, 2], [509, 6]]], \"expected\": [[[1792, 251, null], [1793, 251, null], [1539, 253, null]], [[508, 2], [509, 6]]], \"passed\": true}, {\"check\": \"push and pull\", \"actual\": [[[513, 254, null], [514, 253, null], [515, 254, 34], [516, 255, 18]], [[510, 34], [511, 18]]], \"expected\": [[[513, 254, null], [514, 253, null], [515, 254, 34], [516, 255, 18]], [[510, 34], [511, 18]]], \"passed\": true}, {\"check\": \"stack pointer wraps below page start\", \"actual\": [[[769, 0, null], [770, 511, null], [771, 510, null], [772, 255, 0]], [[256, 68], [257, 51], [767, 86]]], \"expected\": [[[769, 0, null], [770, 255, null], [771, 254, null], [772, 255, 86]], [[256, 68], [257, 51], [511, 86]]], \"passed\": false}, {\"check\": \"pull wraps above page end\", \"actual\": [[[1025, 255, 0], [1026, 0, 0], [1027, 1, 0]], []], \"expected\": [[[1025, 255, 0], [1026, 0, 0], [1027, 1, 0]], []], \"passed\": true}, {\"check\": \"nested calls\", \"actual\": [[[2304, 253, null], [2560, 251, null], [2307, 253, null], [2292, 255, null]], [[508, 2], [509, 9], [510, 243], [511, 8]]], \"expected\": [[[2304, 253, null], [2560, 251, null], [2307, 253, null], [2292, 255, null]], [[508, 2], [509, 9], [510, 243], [511, 8]]], \"passed\": true}, {\"check\": \"return address carries into high byte\", \"actual\": [[[8192, 238, null], [4353, 240, null]], [[495, 0], [496, 17]]], \"expected\": [[[8192, 238, null], [4353, 240, null]], [[495, 0], [496, 17]]], \"passed\": true}, {\"check\": \"return from top of memory\", \"actual\": [[[4660, 127, null], [0, 129, null]], [[384, 255], [385, 255]]], \"expected\": [[[4660, 127, null], [0, 129, null]], [[384, 255], [385, 255]]], \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":44.028,"exit_code":1,"observations":[{"actual":[[[1792,251,null],[1793,251,null],[1539,253,null]],[[508,2],[509,6]]],"check":"call and return","expected":[[[1792,251,null],[1793,251,null],[1539,253,null]],[[508,2],[509,6]]],"passed":true},{"actual":[[[513,254,null],[514,253,null],[515,254,34],[516,255,18]],[[510,34],[511,18]]],"check":"push and pull","expected":[[[513,254,null],[514,253,null],[515,254,34],[516,255,18]],[[510,34],[511,18]]],"passed":true},{"actual":[[[769,0,null],[770,0,null],[771,0,null],[772,1,51]],[[256,86],[257,51]]],"check":"stack pointer wraps below page start","expected":[[[769,0,null],[770,255,null],[771,254,null],[772,255,86]],[[256,68],[257,51],[511,86]]],"passed":false},{"actual":[[[1025,255,0],[1026,0,0],[1027,1,0]],[]],"check":"pull wraps above page end","expected":[[[1025,255,0],[1026,0,0],[1027,1,0]],[]],"passed":true},{"actual":[[[2304,253,null],[2560,251,null],[2307,253,null],[2292,255,null]],[[508,2],[509,9],[510,243],[511,8]]],"check":"nested calls","expected":[[[2304,253,null],[2560,251,null],[2307,253,null],[2292,255,null]],[[508,2],[509,9],[510,243],[511,8]]],"passed":true},{"actual":[[[8192,238,null],[4353,240,null]],[[495,0],[496,17]]],"check":"return address carries into high byte","expected":[[[8192,238,null],[4353,240,null]],[[495,0],[496,17]]],"passed":true},{"actual":[[[4660,127,null],[0,129,null]],[[384,255],[385,255]]],"check":"return from top of memory","expected":[[[4660,127,null],[0,129,null]],[[384,255],[385,255]]],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"call and return\", \"actual\": [[[1792, 251, null], [1793, 251, null], [1539, 253, null]], [[508, 2], [509, 6]]], \"expected\": [[[1792, 251, null], [1793, 251, null], [1539, 253, null]], [[508, 2], [509, 6]]], \"passed\": true}, {\"check\": \"push and pull\", \"actual\": [[[513, 254, null], [514, 253, null], [515, 254, 34], [516, 255, 18]], [[510, 34], [511, 18]]], \"expected\": [[[513, 254, null], [514, 253, null], [515, 254, 34], [516, 255, 18]], [[510, 34], [511, 18]]], \"passed\": true}, {\"check\": \"stack pointer wraps below page start\", \"actual\": [[[769, 0, null], [770, 0, null], [771, 0, null], [772, 1, 51]], [[256, 86], [257, 51]]], \"expected\": [[[769, 0, null], [770, 255, null], [771, 254, null], [772, 255, 86]], [[256, 68], [257, 51], [511, 86]]], \"passed\": false}, {\"check\": \"pull wraps above page end\", \"actual\": [[[1025, 255, 0], [1026, 0, 0], [1027, 1, 0]], []], \"expected\": [[[1025, 255, 0], [1026, 0, 0], [1027, 1, 0]], []], \"passed\": true}, {\"check\": \"nested calls\", \"actual\": [[[2304, 253, null], [2560, 251, null], [2307, 253, null], [2292, 255, null]], [[508, 2], [509, 9], [510, 243], [511, 8]]], \"expected\": [[[2304, 253, null], [2560, 251, null], [2307, 253, null], [2292, 255, null]], [[508, 2], [509, 9], [510, 243], [511, 8]]], \"passed\": true}, {\"check\": \"return address carries into high byte\", \"actual\": [[[8192, 238, null], [4353, 240, null]], [[495, 0], [496, 17]]], \"expected\": [[[8192, 238, null], [4353, 240, null]], [[495, 0], [496, 17]]], \"passed\": true}, {\"check\": \"return from top of memory\", \"actual\": [[[4660, 127, null], [0, 129, null]], [[384, 255], [385, 255]]], \"expected\": [[[4660, 127, null], [0, 129, null]], [[384, 255], [385, 255]]], \"passed\": true}], \"passed\": false}\n"}},"member_only":{"stages":["fixed"],"fields":["implementations.fixed","verification.fixed","harness","repair"],"note":"The verified repair, its recorded checks, the repair description, and the scoring harness are available to members."}}