dwt: runtime oracle and ground-truth vectors for the dwt_prf challenge transform

This commit is contained in:
SDD committed 2026-10-18 02:30:49 +03:00
1 parent 5645bb00b3
commit 041c82cb73
31 files changed
+7367

No files matched your search

File diff suppressed because it is too large. Load diff
+44
View File
@@ -0,0 +1,44 @@
{
"determinism": {
"boots": 2,
"inputs_compared": 177,
"differences": 0,
"first_differences": []
},
"per_record_independence": {
"errors": 0,
"examples": []
},
"permutation": {
"distinct_inputs": 152,
"distinct_outputs": 152,
"fixed_points": []
},
"avalanche": {
"samples": 64,
"mean_output_bits_changed_first_record": 32.656,
"min": 23,
"max": 42,
"second_record_changed": 0
},
"record_is_repeated": true,
"intermediate": {
"captured": 6,
"feistel_in_equals_input": true,
"pre_final_render_equals_output": true,
"file": "dwt/evidence/oracle/stages.txt"
},
"direction": {
"wire_challenge": "f32cec8d0000ead00263a8c0f324ec8e",
"challenge_post_ntohl": "8dec2cf3d0ea0000c0a863028eec24f3",
"before_transform": "buffer = received 16 bytes with each 32-bit word byte-swapped (dwt_prf ntohl, in place)",
"after_transform": "buffer = f(before) in place; dwt_prf memcmp's it against the host-order challenge words",
"pass_condition": "f(ntohl(reply_on_wire)) == host_order_challenge; reply = ntohl(f^-1(host_order_challenge))"
},
"live_probe_agreement": {
"matched": 11,
"total": 11,
"failures": []
},
"vector_count": 180
}
+52
View File
@@ -0,0 +1,52 @@
180 vectors
[runA] mame exit=0 wall=11.9s
[runA] 177 outputs
[runB] mame exit=0 wall=12.3s
[runB] 177 outputs
wrote /home/arti/code/k-space/vt1200/dwt/challenge_vectors.json (180 vectors)
[stages] wrote /home/arti/code/k-space/vt1200/dwt/evidence/oracle/stages.txt
live-probe agreement: 11/11
{
"determinism": {
"boots": 2,
"inputs_compared": 177,
"differences": 0,
"first_differences": []
},
"per_record_independence": {
"errors": 0,
"examples": []
},
"permutation": {
"distinct_inputs": 152,
"distinct_outputs": 152,
"fixed_points": []
},
"avalanche": {
"samples": 64,
"mean_output_bits_changed_first_record": 32.656,
"min": 23,
"max": 42,
"second_record_changed": 0
},
"record_is_repeated": true,
"intermediate": {
"captured": 6,
"feistel_in_equals_input": true,
"pre_final_render_equals_output": true,
"file": "dwt/evidence/oracle/stages.txt"
},
"direction": {
"wire_challenge": "f32cec8d0000ead00263a8c0f324ec8e",
"challenge_post_ntohl": "8dec2cf3d0ea0000c0a863028eec24f3",
"before_transform": "buffer = received 16 bytes with each 32-bit word byte-swapped (dwt_prf ntohl, in place)",
"after_transform": "buffer = f(before) in place; dwt_prf memcmp's it against the host-order challenge words",
"pass_condition": "f(ntohl(reply_on_wire)) == host_order_challenge; reply = ntohl(f^-1(host_order_challenge))"
},
"live_probe_agreement": {
"matched": 11,
"total": 11,
"failures": []
},
"vector_count": 180
}
+47
View File
@@ -0,0 +1,47 @@
180 vectors
wrote /home/arti/code/k-space/vt1200/dwt/challenge_vectors.json (180 vectors)
live-probe agreement: 11/11
{
"determinism": {
"boots": 2,
"inputs_compared": 177,
"differences": 0,
"first_differences": []
},
"per_record_independence": {
"errors": 0,
"examples": []
},
"permutation": {
"distinct_inputs": 152,
"distinct_outputs": 152,
"fixed_points": []
},
"avalanche": {
"samples": 64,
"mean_output_bits_changed_first_record": 32.656,
"min": 23,
"max": 42,
"second_record_changed": 0
},
"record_is_repeated": true,
"intermediate": {
"captured": 6,
"feistel_in_equals_input": true,
"pre_final_render_equals_output": true,
"file": "dwt/evidence/oracle/stages.txt"
},
"direction": {
"wire_challenge": "f32cec8d0000ead00263a8c0f324ec8e",
"challenge_post_ntohl": "8dec2cf3d0ea0000c0a863028eec24f3",
"before_transform": "buffer = received 16 bytes with each 32-bit word byte-swapped (dwt_prf ntohl, in place)",
"after_transform": "buffer = f(before) in place; dwt_prf memcmp's it against the host-order challenge words",
"pass_condition": "f(ntohl(reply_on_wire)) == host_order_challenge; reply = ntohl(f^-1(host_order_challenge))"
},
"live_probe_agreement": {
"matched": 11,
"total": 11,
"failures": []
},
"vector_count": 180
}
+920
View File
@@ -0,0 +1,920 @@
MAME debugger version 0.289 (mame0289-dirty)
Currently targeting vt1200 (VT1200 X terminal (v2.2 firmware))
>bclear
^
unknown command
Breakpoint 1 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 2 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 3 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 4 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 5 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 6 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 7 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 8 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 9 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint A set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint B set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint C set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint D set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint E set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint F set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 10 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 11 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 12 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 13 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 14 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 15 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 16 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 17 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 18 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 19 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 1A set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 1B set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 1C set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 1D set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 1E set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 1F set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 20 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 21 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 22 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 23 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 24 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 25 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 26 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 27 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 28 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 29 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 2A set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 2B set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 2C set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 2D set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 2E set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 2F set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 30 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 31 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 32 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 33 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 34 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 35 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 36 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 37 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 38 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 39 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 3A set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 3B set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 3C set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 3D set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 3E set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 3F set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 40 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 41 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 42 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 43 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 44 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 45 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 46 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 47 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 48 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 49 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 4A set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 4B set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 4C set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 4D set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 4E set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 4F set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 50 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 51 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 52 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 53 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 54 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 55 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 56 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 57 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 58 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 59 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 5A set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 5B set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 5C set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 5D set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 5E set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 5F set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 60 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 61 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 62 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 63 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 64 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 65 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 66 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 67 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 68 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 69 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 6A set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 6B set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 6C set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 6D set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 6E set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 6F set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 70 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 71 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 72 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 73 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 74 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 75 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 76 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 77 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 78 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 79 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 7A set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 7B set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 7C set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 7D set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 7E set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 7F set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 80 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 81 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 82 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 83 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 84 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 85 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 86 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 87 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 88 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 89 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 8A set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 8B set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 8C set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 8D set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 8E set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 8F set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 90 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 91 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 92 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 93 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 94 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 95 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 96 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 97 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 98 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 99 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 9A set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 9B set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 9C set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 9D set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 9E set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 9F set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint A0 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint A1 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint A2 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint A3 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint A4 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint A5 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint A6 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint A7 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint A8 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint A9 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint AA set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint AB set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint AC set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint AD set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint AE set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint AF set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint B0 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint B1 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint B2 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint B3 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint B4 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint B5 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint B6 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint B7 set
Stopped at breakpoint 1
>bclear
^
unknown command
+180
View File
@@ -0,0 +1,180 @@
00000000000000000000000000000000
ffffffffffffffffffffffffffffffff
000102030405060708090a0b0c0d0e0f
0f0e0d0c0b0a09080706050403020100
aa55aa55aa55aa55aa55aa55aa55aa55
55aa55aa55aa55aa55aa55aa55aa55aa
0000000000000000ffffffffffffffff
ffffffffffffffff0000000000000000
80000000000000000000000000000000
00000000000000008000000000000000
7f000000000000000000000000000000
00000000000000000100000000000000
00112233445566770011223344556677
f32cec8d0000ead00263a8c0f324ec8e
8dec2cf3d0ea0000c0a863028eec24f3
00000000000000000000000000000000
00000001000000000000000000000000
00000002000000000000000000000000
00000003000000000000000000000000
00000010000000000000000000000000
00000020000000000000000000000000
00000030000000000000000000000000
00000080000000000000000000000000
000000ff000000000000000000000000
00000100000000000000000000000000
00000000010000000000000000000000
010102030405060708090a0b0c0d0e0f
020102030405060708090a0b0c0d0e0f
040102030405060708090a0b0c0d0e0f
080102030405060708090a0b0c0d0e0f
100102030405060708090a0b0c0d0e0f
200102030405060708090a0b0c0d0e0f
400102030405060708090a0b0c0d0e0f
800102030405060708090a0b0c0d0e0f
000002030405060708090a0b0c0d0e0f
000302030405060708090a0b0c0d0e0f
000502030405060708090a0b0c0d0e0f
000902030405060708090a0b0c0d0e0f
001102030405060708090a0b0c0d0e0f
002102030405060708090a0b0c0d0e0f
004102030405060708090a0b0c0d0e0f
008102030405060708090a0b0c0d0e0f
000103030405060708090a0b0c0d0e0f
000100030405060708090a0b0c0d0e0f
000106030405060708090a0b0c0d0e0f
00010a030405060708090a0b0c0d0e0f
000112030405060708090a0b0c0d0e0f
000122030405060708090a0b0c0d0e0f
000142030405060708090a0b0c0d0e0f
000182030405060708090a0b0c0d0e0f
000102020405060708090a0b0c0d0e0f
000102010405060708090a0b0c0d0e0f
000102070405060708090a0b0c0d0e0f
0001020b0405060708090a0b0c0d0e0f
000102130405060708090a0b0c0d0e0f
000102230405060708090a0b0c0d0e0f
000102430405060708090a0b0c0d0e0f
000102830405060708090a0b0c0d0e0f
000102030505060708090a0b0c0d0e0f
000102030605060708090a0b0c0d0e0f
000102030005060708090a0b0c0d0e0f
000102030c05060708090a0b0c0d0e0f
000102031405060708090a0b0c0d0e0f
000102032405060708090a0b0c0d0e0f
000102034405060708090a0b0c0d0e0f
000102038405060708090a0b0c0d0e0f
000102030404060708090a0b0c0d0e0f
000102030407060708090a0b0c0d0e0f
000102030401060708090a0b0c0d0e0f
00010203040d060708090a0b0c0d0e0f
000102030415060708090a0b0c0d0e0f
000102030425060708090a0b0c0d0e0f
000102030445060708090a0b0c0d0e0f
000102030485060708090a0b0c0d0e0f
000102030405070708090a0b0c0d0e0f
000102030405040708090a0b0c0d0e0f
000102030405020708090a0b0c0d0e0f
0001020304050e0708090a0b0c0d0e0f
000102030405160708090a0b0c0d0e0f
000102030405260708090a0b0c0d0e0f
000102030405460708090a0b0c0d0e0f
000102030405860708090a0b0c0d0e0f
000102030405060608090a0b0c0d0e0f
000102030405060508090a0b0c0d0e0f
000102030405060308090a0b0c0d0e0f
000102030405060f08090a0b0c0d0e0f
000102030405061708090a0b0c0d0e0f
000102030405062708090a0b0c0d0e0f
000102030405064708090a0b0c0d0e0f
000102030405068708090a0b0c0d0e0f
000102030405060709090a0b0c0d0e0f
000102030405060708080a0b0c0d0e0f
000102030405060708090b0b0c0d0e0f
000102030405060708090a0a0c0d0e0f
000102030405060708090a0b0d0d0e0f
000102030405060708090a0b0c0c0e0f
000102030405060708090a0b0c0d0f0f
000102030405060708090a0b0c0d0e0e
3501026c15e723a90000000000000000
3501026c15e723a9ffffffffffffffff
b26233a118609e470000000000000000
b26233a118609e47ffffffffffffffff
cd055494378d8c260000000000000000
cd055494378d8c26ffffffffffffffff
0d66c35b5d0e17000000000000000000
0d66c35b5d0e1700ffffffffffffffff
1d1ea39547625c8c0000000000000000
1d1ea39547625c8cffffffffffffffff
cddf89707ed28ca00000000000000000
cddf89707ed28ca0ffffffffffffffff
30c654040ab964900000000000000000
30c654040ab96490ffffffffffffffff
225412226117a6db0000000000000000
225412226117a6dbffffffffffffffff
0000000000000000748aadd2dc1ffdf2
ffffffffffffffff748aadd2dc1ffdf2
00000000000000004aa500e87edc64c4
ffffffffffffffff4aa500e87edc64c4
00000000000000006b6a5fb00237cad2
ffffffffffffffff6b6a5fb00237cad2
00000000000000008c8ff951a25f1570
ffffffffffffffff8c8ff951a25f1570
0000000000000000eb8a6a6991b61ff5
ffffffffffffffffeb8a6a6991b61ff5
00000000000000003a5eb345ffe4b82c
ffffffffffffffff3a5eb345ffe4b82c
00000000000000000d022175a50d18fc
ffffffffffffffff0d022175a50d18fc
00000000000000004a8d5e79aebdb5c8
ffffffffffffffff4a8d5e79aebdb5c8
8735ca449d06e48e92d9a690779e4f9a
1a068ad8dc21dde0230f2e171bdf6835
939999e9cfefb9a939e89b16ca161ab5
ad34b10c287fd20998faa0af457b4709
47d34ba7b939955a047cf68d737a61ea
c3a2b00938d11fa1c92c641e712aca34
e00ad1ad276852a1a5f2df2231952729
3af2e6babf44ec5c1a55f0baa5fa9bda
8a3b6d96439a3c3a00fe89b197f1c6d9
00c5de6db0d87ac62982036bc9dcfc65
3d69baf6a6fb385684057ef71c02a84f
dc771563dfab03f5b61486f08d0420ed
72dbc7ae27d3f52777c23a5aad142793
e87423730ba482d37d2c5b81998a6e11
485cc3950cf9bba76ea9a66114d74306
eddc3862d2b887a09387b95d22f28d16
98d7dda8c2c3d7a2cef816d1c57dd25b
e59918d7f7440e10e34bb57226b23e3e
795dd0f1748f2fcc6da86e78e523a6db
ff374e2becd41ddfc34ef995bad74103
79b01497977c38e8cadfbad60eb67e76
a65fc3f7d66da24e73bbdacd9ce12c94
a60b9669d2c984782cfa89992ae6a9d2
9cac25c867b7e079ded45d428b2efcf9
4908bbb17763ce521276697474f8d19b
a7ba8dea495b0258c1e7782ea394c06a
83f052520b2ad979727161de54d9581c
a08e2045b24736220446c0637c406ab2
490a2794e95ff3faf368b3693d3ff730
bbde52c3fbe8ce87e330574e622a72c6
fef29072dcaa31a29fef6013f989bc3d
56201529bc79958577f97ab3d0633f0f
f711da57a41d0b5b846db5e5c0ead574
dd7b13e7479cb46208e84b6dccf5d7df
29563ba35966fddd90ab8df4f8d46f53
6951df1546b54e9a7902cb6d1f0ccfe8
5f9bbbc7778be7198bee4284ac65fa5c
4c5242b528b8d14a761c0989779b3e71
fa3cbbe6139d9465cf5efc777d1ea6c5
02e3aa2be481a7b4195c3a6435ebeb58
3ed28369f5acef0097bb500bdf8d1115
38cedaa0d9d0fba6829f37d697154869
91145732a012b25cb686760edfdbcea2
10591aff4360aff4ee77ef3d32db9bf7
393952f7a6dd08ec511e329f7f57c94e
5bfe98265bfa6885e6ce29783dcdb264
de3a6461e30e89f4c2cfc154d11cb171
f824d54a780f4fa96f6350d34e8bd760
00000000000000000000000000000000
000102030405060708090a0b0c0d0e0f
Binary file not shown.
+180
View File
@@ -0,0 +1,180 @@
1 00000000000000000000000000000000 90DE09B47285581790DE09B472855817
2 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF 6A81040BF22944796A81040BF2294479
3 000102030405060708090A0B0C0D0E0F 490621BA1F7A2F9AF3EE13199041B8EF
4 0F0E0D0C0B0A09080706050403020100 47340C29C8B7BD41B8D97E1542ED3C35
5 AA55AA55AA55AA55AA55AA55AA55AA55 BFF91EB2093E0FF1BFF91EB2093E0FF1
6 55AA55AA55AA55AA55AA55AA55AA55AA 6A5628027555C59B6A5628027555C59B
7 0000000000000000FFFFFFFFFFFFFFFF 90DE09B4728558176A81040BF2294479
8 FFFFFFFFFFFFFFFF0000000000000000 6A81040BF229447990DE09B472855817
9 80000000000000000000000000000000 C12005491321E97590DE09B472855817
10 00000000000000008000000000000000 90DE09B472855817C12005491321E975
11 7F000000000000000000000000000000 0A24C5C7784A080F90DE09B472855817
12 00000000000000000100000000000000 90DE09B47285581705C18845D2682FBA
13 00112233445566770011223344556677 DF11BB36BA20F348DF11BB36BA20F348
14 F32CEC8D0000EAD00263A8C0F324EC8E 5D02BB9C37D40A5BE4F2363831815699
15 8DEC2CF3D0EA0000C0A863028EEC24F3 BDB2D3E0FC00DB5FE31ECBD30F1E1B93
16 00000000000000000000000000000000 90DE09B47285581790DE09B472855817
17 00000001000000000000000000000000 B1975FF1D78D032A90DE09B472855817
18 00000002000000000000000000000000 5865800E5D8C3C5590DE09B472855817
19 00000003000000000000000000000000 EE590DF03C2BDBDD90DE09B472855817
20 00000010000000000000000000000000 0B9AB22E400A068F90DE09B472855817
21 00000020000000000000000000000000 362CF798EC8AE91890DE09B472855817
22 00000030000000000000000000000000 9ECAE2E539A1635790DE09B472855817
23 00000080000000000000000000000000 57D8297C38F7783B90DE09B472855817
24 000000FF000000000000000000000000 FC00338C744B2D1B90DE09B472855817
25 00000100000000000000000000000000 21105DAED5E13EC590DE09B472855817
26 00000000010000000000000000000000 46BA798D00E10CDB90DE09B472855817
27 010102030405060708090A0B0C0D0E0F 92BC012D93A116AEF3EE13199041B8EF
28 020102030405060708090A0B0C0D0E0F 164015F196B01410F3EE13199041B8EF
29 040102030405060708090A0B0C0D0E0F ABBD32F93542E6DFF3EE13199041B8EF
30 080102030405060708090A0B0C0D0E0F 56DC26E290E8BE41F3EE13199041B8EF
31 100102030405060708090A0B0C0D0E0F 301E846CBD602214F3EE13199041B8EF
32 200102030405060708090A0B0C0D0E0F D30C1CC792BB30C9F3EE13199041B8EF
33 400102030405060708090A0B0C0D0E0F FFC252AD921795ABF3EE13199041B8EF
34 800102030405060708090A0B0C0D0E0F CFB469B1A5881636F3EE13199041B8EF
35 000002030405060708090A0B0C0D0E0F AC8C291D71256BFBF3EE13199041B8EF
36 000302030405060708090A0B0C0D0E0F 5CE92F90A6D5D14AF3EE13199041B8EF
37 000502030405060708090A0B0C0D0E0F 22ACB5CAB75350ACF3EE13199041B8EF
38 000902030405060708090A0B0C0D0E0F 68A54DDEE96445F3F3EE13199041B8EF
39 001102030405060708090A0B0C0D0E0F 02346AA75DC726AFF3EE13199041B8EF
40 002102030405060708090A0B0C0D0E0F DADD787249314ABAF3EE13199041B8EF
41 004102030405060708090A0B0C0D0E0F 2B9C5C6FFC3A1F9EF3EE13199041B8EF
42 008102030405060708090A0B0C0D0E0F F4E3474ACF62420CF3EE13199041B8EF
43 000103030405060708090A0B0C0D0E0F EF72B6CC68559E6AF3EE13199041B8EF
44 000100030405060708090A0B0C0D0E0F E4FDF0DD779B07ABF3EE13199041B8EF
45 000106030405060708090A0B0C0D0E0F 4FFEB9CCE4068E81F3EE13199041B8EF
46 00010A030405060708090A0B0C0D0E0F 9947C7DFF3D05245F3EE13199041B8EF
47 000112030405060708090A0B0C0D0E0F 1FDF4A0763B9F83BF3EE13199041B8EF
48 000122030405060708090A0B0C0D0E0F 932DC9C97C441E66F3EE13199041B8EF
49 000142030405060708090A0B0C0D0E0F 18BA761EF97D5766F3EE13199041B8EF
50 000182030405060708090A0B0C0D0E0F 86BBB870A3D2D245F3EE13199041B8EF
51 000102020405060708090A0B0C0D0E0F 876784940262E686F3EE13199041B8EF
52 000102010405060708090A0B0C0D0E0F BEFCCE7E438B0A31F3EE13199041B8EF
53 000102070405060708090A0B0C0D0E0F 249BE14E8C537EC6F3EE13199041B8EF
54 0001020B0405060708090A0B0C0D0E0F C593B7EB96B434F9F3EE13199041B8EF
55 000102130405060708090A0B0C0D0E0F A449CCE9CDD9937BF3EE13199041B8EF
56 000102230405060708090A0B0C0D0E0F A83EF09EEACC3EF9F3EE13199041B8EF
57 000102430405060708090A0B0C0D0E0F 5049ACD27CE7CC18F3EE13199041B8EF
58 000102830405060708090A0B0C0D0E0F 22F90834F70AC2FDF3EE13199041B8EF
59 000102030505060708090A0B0C0D0E0F 6C3C483C112BF4A5F3EE13199041B8EF
60 000102030605060708090A0B0C0D0E0F B090ED887529E1C8F3EE13199041B8EF
61 000102030005060708090A0B0C0D0E0F 2E926606B0294C9DF3EE13199041B8EF
62 000102030C05060708090A0B0C0D0E0F AEEF4164A1CBA00DF3EE13199041B8EF
63 000102031405060708090A0B0C0D0E0F C8C629BC2A2694B8F3EE13199041B8EF
64 000102032405060708090A0B0C0D0E0F 8E07759B6844E0E9F3EE13199041B8EF
65 000102034405060708090A0B0C0D0E0F 759D964D0C40CC1FF3EE13199041B8EF
66 000102038405060708090A0B0C0D0E0F FD4090C4A77C4B72F3EE13199041B8EF
67 000102030404060708090A0B0C0D0E0F F46AFCCCD96861CAF3EE13199041B8EF
68 000102030407060708090A0B0C0D0E0F E9323C9D59A033E5F3EE13199041B8EF
69 000102030401060708090A0B0C0D0E0F 598BD0DF5D9E7250F3EE13199041B8EF
70 00010203040D060708090A0B0C0D0E0F 334E6948C674FA42F3EE13199041B8EF
71 000102030415060708090A0B0C0D0E0F C9F599B0C58D1092F3EE13199041B8EF
72 000102030425060708090A0B0C0D0E0F 2F482E0CEA3B8C9BF3EE13199041B8EF
73 000102030445060708090A0B0C0D0E0F 638C609AEAFCC4BCF3EE13199041B8EF
74 000102030485060708090A0B0C0D0E0F 92B400ED0B282E70F3EE13199041B8EF
75 000102030405070708090A0B0C0D0E0F 1D5D0E33202104C4F3EE13199041B8EF
76 000102030405040708090A0B0C0D0E0F FAE5E314891347B1F3EE13199041B8EF
77 000102030405020708090A0B0C0D0E0F 5439E903E0ACADB9F3EE13199041B8EF
78 0001020304050E0708090A0B0C0D0E0F 0CFAED9F09FA568EF3EE13199041B8EF
79 000102030405160708090A0B0C0D0E0F 31AD575576D6BA77F3EE13199041B8EF
80 000102030405260708090A0B0C0D0E0F D3AD6AF78B407CCDF3EE13199041B8EF
81 000102030405460708090A0B0C0D0E0F 6A8D0B396A2A9FAEF3EE13199041B8EF
82 000102030405860708090A0B0C0D0E0F C4E4173D22348AD4F3EE13199041B8EF
83 000102030405060608090A0B0C0D0E0F 7B6AB5D4C1731566F3EE13199041B8EF
84 000102030405060508090A0B0C0D0E0F E1AD86D595EE2004F3EE13199041B8EF
85 000102030405060308090A0B0C0D0E0F B2E4C1BC21486D9AF3EE13199041B8EF
86 000102030405060F08090A0B0C0D0E0F 5CC4B03FA98A98C3F3EE13199041B8EF
87 000102030405061708090A0B0C0D0E0F A12FFD65E0D144DDF3EE13199041B8EF
88 000102030405062708090A0B0C0D0E0F A640E50DB6B1F841F3EE13199041B8EF
89 000102030405064708090A0B0C0D0E0F C6A07E62940EAFA8F3EE13199041B8EF
90 000102030405068708090A0B0C0D0E0F 31C89B8122781DBCF3EE13199041B8EF
91 000102030405060709090A0B0C0D0E0F 490621BA1F7A2F9AC716E3D7791FEE58
92 000102030405060708080A0B0C0D0E0F 490621BA1F7A2F9A6E5E338E84F025B7
93 000102030405060708090B0B0C0D0E0F 490621BA1F7A2F9A0F49DDCFAF30192A
94 000102030405060708090A0A0C0D0E0F 490621BA1F7A2F9AAAA449BF0B87891F
95 000102030405060708090A0B0D0D0E0F 490621BA1F7A2F9ADF98D6B3C074A265
96 000102030405060708090A0B0C0C0E0F 490621BA1F7A2F9A1EA4227224DBB1E9
97 000102030405060708090A0B0C0D0F0F 490621BA1F7A2F9AE8EFE545C1C86949
98 000102030405060708090A0B0C0D0E0E 490621BA1F7A2F9A52705DB9168BFBCB
99 3501026C15E723A90000000000000000 7356BEBF9EFA99D690DE09B472855817
100 3501026C15E723A9FFFFFFFFFFFFFFFF 7356BEBF9EFA99D66A81040BF2294479
101 B26233A118609E470000000000000000 795A7CFE96A7460590DE09B472855817
102 B26233A118609E47FFFFFFFFFFFFFFFF 795A7CFE96A746056A81040BF2294479
103 CD055494378D8C260000000000000000 0EA29507D5F9AF1390DE09B472855817
104 CD055494378D8C26FFFFFFFFFFFFFFFF 0EA29507D5F9AF136A81040BF2294479
105 0D66C35B5D0E17000000000000000000 B268C381A0D29AF590DE09B472855817
106 0D66C35B5D0E1700FFFFFFFFFFFFFFFF B268C381A0D29AF56A81040BF2294479
107 1D1EA39547625C8C0000000000000000 381F7A0F0C40D91490DE09B472855817
108 1D1EA39547625C8CFFFFFFFFFFFFFFFF 381F7A0F0C40D9146A81040BF2294479
109 CDDF89707ED28CA00000000000000000 2A9F66460C954E0F90DE09B472855817
110 CDDF89707ED28CA0FFFFFFFFFFFFFFFF 2A9F66460C954E0F6A81040BF2294479
111 30C654040AB964900000000000000000 4B96772686A6414490DE09B472855817
112 30C654040AB96490FFFFFFFFFFFFFFFF 4B96772686A641446A81040BF2294479
113 225412226117A6DB0000000000000000 94DFBB7B696FF68890DE09B472855817
114 225412226117A6DBFFFFFFFFFFFFFFFF 94DFBB7B696FF6886A81040BF2294479
115 0000000000000000748AADD2DC1FFDF2 90DE09B4728558174F042D404735FBC2
116 FFFFFFFFFFFFFFFF748AADD2DC1FFDF2 6A81040BF22944794F042D404735FBC2
117 00000000000000004AA500E87EDC64C4 90DE09B472855817F7BEA28401464AA9
118 FFFFFFFFFFFFFFFF4AA500E87EDC64C4 6A81040BF2294479F7BEA28401464AA9
119 00000000000000006B6A5FB00237CAD2 90DE09B472855817794F1F3EB90C3F7C
120 FFFFFFFFFFFFFFFF6B6A5FB00237CAD2 6A81040BF2294479794F1F3EB90C3F7C
121 00000000000000008C8FF951A25F1570 90DE09B472855817F867951521BD7C78
122 FFFFFFFFFFFFFFFF8C8FF951A25F1570 6A81040BF2294479F867951521BD7C78
123 0000000000000000EB8A6A6991B61FF5 90DE09B4728558170741BEF82537B2D2
124 FFFFFFFFFFFFFFFFEB8A6A6991B61FF5 6A81040BF22944790741BEF82537B2D2
125 00000000000000003A5EB345FFE4B82C 90DE09B472855817670D4E8E84E288A3
126 FFFFFFFFFFFFFFFF3A5EB345FFE4B82C 6A81040BF2294479670D4E8E84E288A3
127 00000000000000000D022175A50D18FC 90DE09B4728558170A2E1C9971E91D1B
128 FFFFFFFFFFFFFFFF0D022175A50D18FC 6A81040BF22944790A2E1C9971E91D1B
129 00000000000000004A8D5E79AEBDB5C8 90DE09B47285581759AD04B586354818
130 FFFFFFFFFFFFFFFF4A8D5E79AEBDB5C8 6A81040BF229447959AD04B586354818
131 8735CA449D06E48E92D9A690779E4F9A B6F66EF5F2A5CEDD30E1A1FB479AB692
132 1A068AD8DC21DDE0230F2E171BDF6835 60CBAE07071171FAFE324AF662D56547
133 939999E9CFEFB9A939E89B16CA161AB5 4BCB501A7C79B71F9E2D2DF7D0F9970A
134 AD34B10C287FD20998FAA0AF457B4709 D4232710A53156107F0626F57F27107A
135 47D34BA7B939955A047CF68D737A61EA A251C1CBDC69BE78D58EBBC1F3D245E1
136 C3A2B00938D11FA1C92C641E712ACA34 5B660019C0379E8E87549E42DDD8DC91
137 E00AD1AD276852A1A5F2DF2231952729 E5BCBAA614D6EAC3D2BAE6DFB65ADB39
138 3AF2E6BABF44EC5C1A55F0BAA5FA9BDA 45D82CB113CBD25D673BC3E62822A3DA
139 8A3B6D96439A3C3A00FE89B197F1C6D9 ADF093B70042B643DDE4A30B27D911D7
140 00C5DE6DB0D87AC62982036BC9DCFC65 6288D3E03AE6F7E14ECA401C5BA5FD27
141 3D69BAF6A6FB385684057EF71C02A84F DC44EC4BE6E8C4D8B7BA15FFC141C2C3
142 DC771563DFAB03F5B61486F08D0420ED BB4BC8C0DA0F67F067F1E050CCCC4496
143 72DBC7AE27D3F52777C23A5AAD142793 A08EAD92445C042EC35E0E35CCBF4D63
144 E87423730BA482D37D2C5B81998A6E11 E27DBC03E384000E6856245C601C066C
145 485CC3950CF9BBA76EA9A66114D74306 6CEB557795AF089EBA4E64DE032E7B0C
146 EDDC3862D2B887A09387B95D22F28D16 9063E689A041631B5E4221F07C6C2547
147 98D7DDA8C2C3D7A2CEF816D1C57DD25B 4B4DBF8AB4AEFD03A982AD51D10C36B4
148 E59918D7F7440E10E34BB57226B23E3E CADE8C78EE6A226D1371950638D6E524
149 795DD0F1748F2FCC6DA86E78E523A6DB 4D0AF9FDDE099932CCEAE634E6A6E4F2
150 FF374E2BECD41DDFC34EF995BAD74103 53E283C3D30CA9B14B819686A25F04EF
151 79B01497977C38E8CADFBAD60EB67E76 6B1D1EC7F7CA646D4D8D767DD61D9D70
152 A65FC3F7D66DA24E73BBDACD9CE12C94 988849D83BE204C765C6B42BEB78DCDF
153 A60B9669D2C984782CFA89992AE6A9D2 6657BFCA2E87A070AF6045DBEFCCF55F
154 9CAC25C867B7E079DED45D428B2EFCF9 F39D44D3E059E4E01127F65B9FBB20B6
155 4908BBB17763CE521276697474F8D19B 016964D9028D40780288FA31A2BD56F7
156 A7BA8DEA495B0258C1E7782EA394C06A 1A13C5630A767779570AF70E38937996
157 83F052520B2AD979727161DE54D9581C 7D242666DBE8B30EFE5E4830923218A0
158 A08E2045B24736220446C0637C406AB2 AFC79C27120E812F3A767842CEC3F8F4
159 490A2794E95FF3FAF368B3693D3FF730 5CB8795143440BF5481E9B7D3F2BECCC
160 BBDE52C3FBE8CE87E330574E622A72C6 3C5AF926F6E820BA1ADDBC9449CE9AEB
161 FEF29072DCAA31A29FEF6013F989BC3D 10C67B8B791D948F0F946CCF8E6C195E
162 56201529BC79958577F97AB3D0633F0F 010A4F36BBC6229FF7538406754CDC9A
163 F711DA57A41D0B5B846DB5E5C0EAD574 8582DCF8562B6E7F7E66F3354C21A503
164 DD7B13E7479CB46208E84B6DCCF5D7DF 79F9A78684ADCD5BF1BFE7701C18CE01
165 29563BA35966FDDD90AB8DF4F8D46F53 A9C1E15117EE664024EBB66BE44FDD3E
166 6951DF1546B54E9A7902CB6D1F0CCFE8 31BD9E6914FF5D15229DB8AC1315ED84
167 5F9BBBC7778BE7198BEE4284AC65FA5C E825EBCD5AB616A4C376755A70DD5D85
168 4C5242B528B8D14A761C0989779B3E71 7131EC719F72A11319139DD9D9DCA7A5
169 FA3CBBE6139D9465CF5EFC777D1EA6C5 ABE7686EED7024017E1FCAFAA6B87F74
170 02E3AA2BE481A7B4195C3A6435EBEB58 2D11D2406B8E1F2D8029F710E0477610
171 3ED28369F5ACEF0097BB500BDF8D1115 C6240578965F1A4FB77BF238BD903B39
172 38CEDAA0D9D0FBA6829F37D697154869 4A8A4CC4E5F5F8F8809C5F96357942E8
173 91145732A012B25CB686760EDFDBCEA2 D1410B2F2B76ECFA4B2EAFF0C3308013
174 10591AFF4360AFF4EE77EF3D32DB9BF7 DF82591209484A8E43282118EB19E424
175 393952F7A6DD08EC511E329F7F57C94E 81A173BF7CB18B44A8AC7214F662C513
176 5BFE98265BFA6885E6CE29783DCDB264 7C514C2CC9B44C1F490844A9EEC42370
177 DE3A6461E30E89F4C2CFC154D11CB171 7B5E780F51CE26A7A3CFD770C8007984
178 F824D54A780F4FA96F6350D34E8BD760 858DA30DD7E423F22EF0076AE22D19CE
179 00000000000000000000000000000000 90DE09B47285581790DE09B472855817
180 000102030405060708090A0B0C0D0E0F 490621BA1F7A2F9AF3EE13199041B8EF
+55
View File
@@ -0,0 +1,55 @@
Warning: -video none doesn't make much sense without -seconds_to_run
vt1200: screen_update#1 frame=0 clip_y=0..0 screen=1280x901
runA: loaded 180 vectors from /home/arti/code/k-space/vt1200/dwt/evidence/oracle/runA/in.txt
vt1200: screen_update#2 frame=0 clip_y=1..900 screen=1280x901
vt1200: scanline#1 line=1 enabled=1
vt1200: guard#1 frame=0 dump_frame=-1 dump_ram=-1
vt1200: screen_update#3 frame=1 clip_y=0..0 screen=1280x901
vt1200: scanline#2 line=0 enabled=1
vt1200: screen_update#4 frame=1 clip_y=1..1 screen=1280x901
vt1200: scanline#3 line=1 enabled=1
vt1200: scanline#4 line=2 enabled=1
runA: frame 3000 hijack pc=3F579970 sp=007F52B0 a14=007DDC90
runA: init returned; @1C0200=007AB930 @1C0220=00000000 @1C0240=00000000 @1C0260=007AF970
runA: expand returned; keyptr=007AF970 fontptr=00000000 renderptr=00000000
runA: seed+000 55F861C7E51311D4C80000000000000000000000000000000000000000000000
runA: seed+020 0000000000003A322A221A120A023C342C241C140C043E362E261E160E064038
runA: seed+040 30282018100839312921191109013B332B231B130B033D352D251D150D053F37
runA: seed+060 2F271F170F07280830103818402027072F0F37173F1F26062E0E36163E1E2505
runA: key+000 2C3E1F020130080D2D23281F080019120B333920171A00063227333C09041308
runA: key+020 370E1D18020B0107112D3C2B292C12203A3B250702003D030A1E3B0B272C0010
runA: key+040 3B110B1C2010212E052D2B2C11092A10262725320410113D2B063D2D02392200
runA: key+060 30371C0D0006143512193F310A302204351F232B3004061323082E3E2D1A2400
runA: aux+000 39312921191109013A322A221A120A023B332B231B130B033C342C243F372F27
runA: aux+020 1F170F073E362E261E160E063D352D251D150D051C140C0401020406080A0C0E
runA: aux+040 0F11131517191B1C0E110B180105031C0F06150A17130C041A0810071B140D02
runA: aux+060 29341F252F371E28332D21302C31273822352E2A32241D200E040D01020F0B08
runA: aux+080 030A060C05090007000F07040E020D010A060C0B0905030804010E080D06020B
runA: aux+0A0 0F0C0907030A05000F0C080204090107050B030E0A00060D0F01080E060B0304
runA: aux+0C0 0907020D0C00050A030D04070F02080E0C00010A06090B05000E070B0A040D01
runA: aux+0E0 05080C060903020F0D080A01030F04020B06070C00050E090A00090E06030F05
runA: aux+100 010D0C070B0402080D0700090304060A0208050E0C0B0F010D060409080F0300
runA: aux+120 0B01020C050A0E07010A0D0006090807040F0E030B05020C070D0E030006090A
runA: aux+140 010208050B0C040F0D080B05060F00030407020C010A0E090A0609000C0B070D
runA: aux+160 0F01030E05020804030F00060A010D080904050B0C07020E020C0401070A0B06
runA: aux+180 0805030F0D000E090E0B020C04070D0105000F0A030908060402010B0A0D0708
runA: aux+1A0 0F090C050603000E0B080C07010E020D060F00090A0405030C010A0F09020608
runA: aux+1C0 000D03040E07050B0A0F0402070C090506010D0E000B0308090E0F0502080C03
runA: aux+1E0 0700040A010D0B060403020C09050F0A0B0E01070600080D040B020E0F00080D
runA: aux+200 030C0907050A06010D000B070409010A0E03050C020F080601040B0D0C03070E
runA: aux+220 0A0F060800050902060B0D0801040A070905000F0E02030C0D020804060F0B01
runA: aux+240 0A09030E05000C07010F0D080A0307040C05060B000E0902070B0401090C0E02
runA: aux+260 00060A0D0F03050802010E07040A080D0F0C09000305060B100714151D0C1C11
runA: aux+280 010F171A05121F0A0208180E201B0309130D1E06160B041930B97A0000000000
runA: aux+2A0 0000000070F97A00800000004000000020000000100000000800000004000000
runA: 24/180 vectors
runA: 49/180 vectors
runA: 74/180 vectors
runA: 99/180 vectors
runA: 124/180 vectors
runA: 149/180 vectors
runA: 174/180 vectors
runA: 180/180 vectors
runA: free returned; exiting
runA: done (free_run), rc=0
Average speed: 372.44% (41 seconds)
+920
View File
@@ -0,0 +1,920 @@
MAME debugger version 0.289 (mame0289-dirty)
Currently targeting vt1200 (VT1200 X terminal (v2.2 firmware))
>bclear
^
unknown command
Breakpoint 1 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 2 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 3 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 4 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 5 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 6 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 7 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 8 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 9 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint A set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint B set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint C set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint D set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint E set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint F set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 10 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 11 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 12 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 13 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 14 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 15 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 16 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 17 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 18 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 19 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 1A set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 1B set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 1C set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 1D set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 1E set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 1F set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 20 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 21 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 22 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 23 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 24 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 25 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 26 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 27 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 28 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 29 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 2A set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 2B set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 2C set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 2D set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 2E set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 2F set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 30 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 31 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 32 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 33 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 34 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 35 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 36 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 37 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 38 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 39 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 3A set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 3B set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 3C set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 3D set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 3E set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 3F set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 40 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 41 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 42 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 43 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 44 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 45 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 46 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 47 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 48 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 49 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 4A set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 4B set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 4C set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 4D set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 4E set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 4F set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 50 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 51 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 52 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 53 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 54 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 55 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 56 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 57 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 58 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 59 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 5A set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 5B set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 5C set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 5D set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 5E set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 5F set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 60 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 61 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 62 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 63 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 64 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 65 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 66 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 67 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 68 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 69 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 6A set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 6B set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 6C set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 6D set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 6E set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 6F set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 70 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 71 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 72 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 73 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 74 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 75 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 76 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 77 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 78 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 79 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 7A set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 7B set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 7C set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 7D set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 7E set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 7F set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 80 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 81 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 82 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 83 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 84 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 85 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 86 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 87 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 88 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 89 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 8A set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 8B set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 8C set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 8D set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 8E set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 8F set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 90 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 91 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 92 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 93 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 94 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 95 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 96 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 97 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 98 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 99 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 9A set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 9B set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 9C set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 9D set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 9E set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 9F set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint A0 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint A1 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint A2 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint A3 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint A4 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint A5 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint A6 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint A7 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint A8 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint A9 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint AA set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint AB set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint AC set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint AD set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint AE set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint AF set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint B0 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint B1 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint B2 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint B3 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint B4 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint B5 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint B6 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint B7 set
Stopped at breakpoint 1
>bclear
^
unknown command
+180
View File
@@ -0,0 +1,180 @@
00000000000000000000000000000000
ffffffffffffffffffffffffffffffff
000102030405060708090a0b0c0d0e0f
0f0e0d0c0b0a09080706050403020100
aa55aa55aa55aa55aa55aa55aa55aa55
55aa55aa55aa55aa55aa55aa55aa55aa
0000000000000000ffffffffffffffff
ffffffffffffffff0000000000000000
80000000000000000000000000000000
00000000000000008000000000000000
7f000000000000000000000000000000
00000000000000000100000000000000
00112233445566770011223344556677
f32cec8d0000ead00263a8c0f324ec8e
8dec2cf3d0ea0000c0a863028eec24f3
00000000000000000000000000000000
00000001000000000000000000000000
00000002000000000000000000000000
00000003000000000000000000000000
00000010000000000000000000000000
00000020000000000000000000000000
00000030000000000000000000000000
00000080000000000000000000000000
000000ff000000000000000000000000
00000100000000000000000000000000
00000000010000000000000000000000
010102030405060708090a0b0c0d0e0f
020102030405060708090a0b0c0d0e0f
040102030405060708090a0b0c0d0e0f
080102030405060708090a0b0c0d0e0f
100102030405060708090a0b0c0d0e0f
200102030405060708090a0b0c0d0e0f
400102030405060708090a0b0c0d0e0f
800102030405060708090a0b0c0d0e0f
000002030405060708090a0b0c0d0e0f
000302030405060708090a0b0c0d0e0f
000502030405060708090a0b0c0d0e0f
000902030405060708090a0b0c0d0e0f
001102030405060708090a0b0c0d0e0f
002102030405060708090a0b0c0d0e0f
004102030405060708090a0b0c0d0e0f
008102030405060708090a0b0c0d0e0f
000103030405060708090a0b0c0d0e0f
000100030405060708090a0b0c0d0e0f
000106030405060708090a0b0c0d0e0f
00010a030405060708090a0b0c0d0e0f
000112030405060708090a0b0c0d0e0f
000122030405060708090a0b0c0d0e0f
000142030405060708090a0b0c0d0e0f
000182030405060708090a0b0c0d0e0f
000102020405060708090a0b0c0d0e0f
000102010405060708090a0b0c0d0e0f
000102070405060708090a0b0c0d0e0f
0001020b0405060708090a0b0c0d0e0f
000102130405060708090a0b0c0d0e0f
000102230405060708090a0b0c0d0e0f
000102430405060708090a0b0c0d0e0f
000102830405060708090a0b0c0d0e0f
000102030505060708090a0b0c0d0e0f
000102030605060708090a0b0c0d0e0f
000102030005060708090a0b0c0d0e0f
000102030c05060708090a0b0c0d0e0f
000102031405060708090a0b0c0d0e0f
000102032405060708090a0b0c0d0e0f
000102034405060708090a0b0c0d0e0f
000102038405060708090a0b0c0d0e0f
000102030404060708090a0b0c0d0e0f
000102030407060708090a0b0c0d0e0f
000102030401060708090a0b0c0d0e0f
00010203040d060708090a0b0c0d0e0f
000102030415060708090a0b0c0d0e0f
000102030425060708090a0b0c0d0e0f
000102030445060708090a0b0c0d0e0f
000102030485060708090a0b0c0d0e0f
000102030405070708090a0b0c0d0e0f
000102030405040708090a0b0c0d0e0f
000102030405020708090a0b0c0d0e0f
0001020304050e0708090a0b0c0d0e0f
000102030405160708090a0b0c0d0e0f
000102030405260708090a0b0c0d0e0f
000102030405460708090a0b0c0d0e0f
000102030405860708090a0b0c0d0e0f
000102030405060608090a0b0c0d0e0f
000102030405060508090a0b0c0d0e0f
000102030405060308090a0b0c0d0e0f
000102030405060f08090a0b0c0d0e0f
000102030405061708090a0b0c0d0e0f
000102030405062708090a0b0c0d0e0f
000102030405064708090a0b0c0d0e0f
000102030405068708090a0b0c0d0e0f
000102030405060709090a0b0c0d0e0f
000102030405060708080a0b0c0d0e0f
000102030405060708090b0b0c0d0e0f
000102030405060708090a0a0c0d0e0f
000102030405060708090a0b0d0d0e0f
000102030405060708090a0b0c0c0e0f
000102030405060708090a0b0c0d0f0f
000102030405060708090a0b0c0d0e0e
3501026c15e723a90000000000000000
3501026c15e723a9ffffffffffffffff
b26233a118609e470000000000000000
b26233a118609e47ffffffffffffffff
cd055494378d8c260000000000000000
cd055494378d8c26ffffffffffffffff
0d66c35b5d0e17000000000000000000
0d66c35b5d0e1700ffffffffffffffff
1d1ea39547625c8c0000000000000000
1d1ea39547625c8cffffffffffffffff
cddf89707ed28ca00000000000000000
cddf89707ed28ca0ffffffffffffffff
30c654040ab964900000000000000000
30c654040ab96490ffffffffffffffff
225412226117a6db0000000000000000
225412226117a6dbffffffffffffffff
0000000000000000748aadd2dc1ffdf2
ffffffffffffffff748aadd2dc1ffdf2
00000000000000004aa500e87edc64c4
ffffffffffffffff4aa500e87edc64c4
00000000000000006b6a5fb00237cad2
ffffffffffffffff6b6a5fb00237cad2
00000000000000008c8ff951a25f1570
ffffffffffffffff8c8ff951a25f1570
0000000000000000eb8a6a6991b61ff5
ffffffffffffffffeb8a6a6991b61ff5
00000000000000003a5eb345ffe4b82c
ffffffffffffffff3a5eb345ffe4b82c
00000000000000000d022175a50d18fc
ffffffffffffffff0d022175a50d18fc
00000000000000004a8d5e79aebdb5c8
ffffffffffffffff4a8d5e79aebdb5c8
8735ca449d06e48e92d9a690779e4f9a
1a068ad8dc21dde0230f2e171bdf6835
939999e9cfefb9a939e89b16ca161ab5
ad34b10c287fd20998faa0af457b4709
47d34ba7b939955a047cf68d737a61ea
c3a2b00938d11fa1c92c641e712aca34
e00ad1ad276852a1a5f2df2231952729
3af2e6babf44ec5c1a55f0baa5fa9bda
8a3b6d96439a3c3a00fe89b197f1c6d9
00c5de6db0d87ac62982036bc9dcfc65
3d69baf6a6fb385684057ef71c02a84f
dc771563dfab03f5b61486f08d0420ed
72dbc7ae27d3f52777c23a5aad142793
e87423730ba482d37d2c5b81998a6e11
485cc3950cf9bba76ea9a66114d74306
eddc3862d2b887a09387b95d22f28d16
98d7dda8c2c3d7a2cef816d1c57dd25b
e59918d7f7440e10e34bb57226b23e3e
795dd0f1748f2fcc6da86e78e523a6db
ff374e2becd41ddfc34ef995bad74103
79b01497977c38e8cadfbad60eb67e76
a65fc3f7d66da24e73bbdacd9ce12c94
a60b9669d2c984782cfa89992ae6a9d2
9cac25c867b7e079ded45d428b2efcf9
4908bbb17763ce521276697474f8d19b
a7ba8dea495b0258c1e7782ea394c06a
83f052520b2ad979727161de54d9581c
a08e2045b24736220446c0637c406ab2
490a2794e95ff3faf368b3693d3ff730
bbde52c3fbe8ce87e330574e622a72c6
fef29072dcaa31a29fef6013f989bc3d
56201529bc79958577f97ab3d0633f0f
f711da57a41d0b5b846db5e5c0ead574
dd7b13e7479cb46208e84b6dccf5d7df
29563ba35966fddd90ab8df4f8d46f53
6951df1546b54e9a7902cb6d1f0ccfe8
5f9bbbc7778be7198bee4284ac65fa5c
4c5242b528b8d14a761c0989779b3e71
fa3cbbe6139d9465cf5efc777d1ea6c5
02e3aa2be481a7b4195c3a6435ebeb58
3ed28369f5acef0097bb500bdf8d1115
38cedaa0d9d0fba6829f37d697154869
91145732a012b25cb686760edfdbcea2
10591aff4360aff4ee77ef3d32db9bf7
393952f7a6dd08ec511e329f7f57c94e
5bfe98265bfa6885e6ce29783dcdb264
de3a6461e30e89f4c2cfc154d11cb171
f824d54a780f4fa96f6350d34e8bd760
00000000000000000000000000000000
000102030405060708090a0b0c0d0e0f
Binary file not shown.
+180
View File
@@ -0,0 +1,180 @@
1 00000000000000000000000000000000 90DE09B47285581790DE09B472855817
2 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF 6A81040BF22944796A81040BF2294479
3 000102030405060708090A0B0C0D0E0F 490621BA1F7A2F9AF3EE13199041B8EF
4 0F0E0D0C0B0A09080706050403020100 47340C29C8B7BD41B8D97E1542ED3C35
5 AA55AA55AA55AA55AA55AA55AA55AA55 BFF91EB2093E0FF1BFF91EB2093E0FF1
6 55AA55AA55AA55AA55AA55AA55AA55AA 6A5628027555C59B6A5628027555C59B
7 0000000000000000FFFFFFFFFFFFFFFF 90DE09B4728558176A81040BF2294479
8 FFFFFFFFFFFFFFFF0000000000000000 6A81040BF229447990DE09B472855817
9 80000000000000000000000000000000 C12005491321E97590DE09B472855817
10 00000000000000008000000000000000 90DE09B472855817C12005491321E975
11 7F000000000000000000000000000000 0A24C5C7784A080F90DE09B472855817
12 00000000000000000100000000000000 90DE09B47285581705C18845D2682FBA
13 00112233445566770011223344556677 DF11BB36BA20F348DF11BB36BA20F348
14 F32CEC8D0000EAD00263A8C0F324EC8E 5D02BB9C37D40A5BE4F2363831815699
15 8DEC2CF3D0EA0000C0A863028EEC24F3 BDB2D3E0FC00DB5FE31ECBD30F1E1B93
16 00000000000000000000000000000000 90DE09B47285581790DE09B472855817
17 00000001000000000000000000000000 B1975FF1D78D032A90DE09B472855817
18 00000002000000000000000000000000 5865800E5D8C3C5590DE09B472855817
19 00000003000000000000000000000000 EE590DF03C2BDBDD90DE09B472855817
20 00000010000000000000000000000000 0B9AB22E400A068F90DE09B472855817
21 00000020000000000000000000000000 362CF798EC8AE91890DE09B472855817
22 00000030000000000000000000000000 9ECAE2E539A1635790DE09B472855817
23 00000080000000000000000000000000 57D8297C38F7783B90DE09B472855817
24 000000FF000000000000000000000000 FC00338C744B2D1B90DE09B472855817
25 00000100000000000000000000000000 21105DAED5E13EC590DE09B472855817
26 00000000010000000000000000000000 46BA798D00E10CDB90DE09B472855817
27 010102030405060708090A0B0C0D0E0F 92BC012D93A116AEF3EE13199041B8EF
28 020102030405060708090A0B0C0D0E0F 164015F196B01410F3EE13199041B8EF
29 040102030405060708090A0B0C0D0E0F ABBD32F93542E6DFF3EE13199041B8EF
30 080102030405060708090A0B0C0D0E0F 56DC26E290E8BE41F3EE13199041B8EF
31 100102030405060708090A0B0C0D0E0F 301E846CBD602214F3EE13199041B8EF
32 200102030405060708090A0B0C0D0E0F D30C1CC792BB30C9F3EE13199041B8EF
33 400102030405060708090A0B0C0D0E0F FFC252AD921795ABF3EE13199041B8EF
34 800102030405060708090A0B0C0D0E0F CFB469B1A5881636F3EE13199041B8EF
35 000002030405060708090A0B0C0D0E0F AC8C291D71256BFBF3EE13199041B8EF
36 000302030405060708090A0B0C0D0E0F 5CE92F90A6D5D14AF3EE13199041B8EF
37 000502030405060708090A0B0C0D0E0F 22ACB5CAB75350ACF3EE13199041B8EF
38 000902030405060708090A0B0C0D0E0F 68A54DDEE96445F3F3EE13199041B8EF
39 001102030405060708090A0B0C0D0E0F 02346AA75DC726AFF3EE13199041B8EF
40 002102030405060708090A0B0C0D0E0F DADD787249314ABAF3EE13199041B8EF
41 004102030405060708090A0B0C0D0E0F 2B9C5C6FFC3A1F9EF3EE13199041B8EF
42 008102030405060708090A0B0C0D0E0F F4E3474ACF62420CF3EE13199041B8EF
43 000103030405060708090A0B0C0D0E0F EF72B6CC68559E6AF3EE13199041B8EF
44 000100030405060708090A0B0C0D0E0F E4FDF0DD779B07ABF3EE13199041B8EF
45 000106030405060708090A0B0C0D0E0F 4FFEB9CCE4068E81F3EE13199041B8EF
46 00010A030405060708090A0B0C0D0E0F 9947C7DFF3D05245F3EE13199041B8EF
47 000112030405060708090A0B0C0D0E0F 1FDF4A0763B9F83BF3EE13199041B8EF
48 000122030405060708090A0B0C0D0E0F 932DC9C97C441E66F3EE13199041B8EF
49 000142030405060708090A0B0C0D0E0F 18BA761EF97D5766F3EE13199041B8EF
50 000182030405060708090A0B0C0D0E0F 86BBB870A3D2D245F3EE13199041B8EF
51 000102020405060708090A0B0C0D0E0F 876784940262E686F3EE13199041B8EF
52 000102010405060708090A0B0C0D0E0F BEFCCE7E438B0A31F3EE13199041B8EF
53 000102070405060708090A0B0C0D0E0F 249BE14E8C537EC6F3EE13199041B8EF
54 0001020B0405060708090A0B0C0D0E0F C593B7EB96B434F9F3EE13199041B8EF
55 000102130405060708090A0B0C0D0E0F A449CCE9CDD9937BF3EE13199041B8EF
56 000102230405060708090A0B0C0D0E0F A83EF09EEACC3EF9F3EE13199041B8EF
57 000102430405060708090A0B0C0D0E0F 5049ACD27CE7CC18F3EE13199041B8EF
58 000102830405060708090A0B0C0D0E0F 22F90834F70AC2FDF3EE13199041B8EF
59 000102030505060708090A0B0C0D0E0F 6C3C483C112BF4A5F3EE13199041B8EF
60 000102030605060708090A0B0C0D0E0F B090ED887529E1C8F3EE13199041B8EF
61 000102030005060708090A0B0C0D0E0F 2E926606B0294C9DF3EE13199041B8EF
62 000102030C05060708090A0B0C0D0E0F AEEF4164A1CBA00DF3EE13199041B8EF
63 000102031405060708090A0B0C0D0E0F C8C629BC2A2694B8F3EE13199041B8EF
64 000102032405060708090A0B0C0D0E0F 8E07759B6844E0E9F3EE13199041B8EF
65 000102034405060708090A0B0C0D0E0F 759D964D0C40CC1FF3EE13199041B8EF
66 000102038405060708090A0B0C0D0E0F FD4090C4A77C4B72F3EE13199041B8EF
67 000102030404060708090A0B0C0D0E0F F46AFCCCD96861CAF3EE13199041B8EF
68 000102030407060708090A0B0C0D0E0F E9323C9D59A033E5F3EE13199041B8EF
69 000102030401060708090A0B0C0D0E0F 598BD0DF5D9E7250F3EE13199041B8EF
70 00010203040D060708090A0B0C0D0E0F 334E6948C674FA42F3EE13199041B8EF
71 000102030415060708090A0B0C0D0E0F C9F599B0C58D1092F3EE13199041B8EF
72 000102030425060708090A0B0C0D0E0F 2F482E0CEA3B8C9BF3EE13199041B8EF
73 000102030445060708090A0B0C0D0E0F 638C609AEAFCC4BCF3EE13199041B8EF
74 000102030485060708090A0B0C0D0E0F 92B400ED0B282E70F3EE13199041B8EF
75 000102030405070708090A0B0C0D0E0F 1D5D0E33202104C4F3EE13199041B8EF
76 000102030405040708090A0B0C0D0E0F FAE5E314891347B1F3EE13199041B8EF
77 000102030405020708090A0B0C0D0E0F 5439E903E0ACADB9F3EE13199041B8EF
78 0001020304050E0708090A0B0C0D0E0F 0CFAED9F09FA568EF3EE13199041B8EF
79 000102030405160708090A0B0C0D0E0F 31AD575576D6BA77F3EE13199041B8EF
80 000102030405260708090A0B0C0D0E0F D3AD6AF78B407CCDF3EE13199041B8EF
81 000102030405460708090A0B0C0D0E0F 6A8D0B396A2A9FAEF3EE13199041B8EF
82 000102030405860708090A0B0C0D0E0F C4E4173D22348AD4F3EE13199041B8EF
83 000102030405060608090A0B0C0D0E0F 7B6AB5D4C1731566F3EE13199041B8EF
84 000102030405060508090A0B0C0D0E0F E1AD86D595EE2004F3EE13199041B8EF
85 000102030405060308090A0B0C0D0E0F B2E4C1BC21486D9AF3EE13199041B8EF
86 000102030405060F08090A0B0C0D0E0F 5CC4B03FA98A98C3F3EE13199041B8EF
87 000102030405061708090A0B0C0D0E0F A12FFD65E0D144DDF3EE13199041B8EF
88 000102030405062708090A0B0C0D0E0F A640E50DB6B1F841F3EE13199041B8EF
89 000102030405064708090A0B0C0D0E0F C6A07E62940EAFA8F3EE13199041B8EF
90 000102030405068708090A0B0C0D0E0F 31C89B8122781DBCF3EE13199041B8EF
91 000102030405060709090A0B0C0D0E0F 490621BA1F7A2F9AC716E3D7791FEE58
92 000102030405060708080A0B0C0D0E0F 490621BA1F7A2F9A6E5E338E84F025B7
93 000102030405060708090B0B0C0D0E0F 490621BA1F7A2F9A0F49DDCFAF30192A
94 000102030405060708090A0A0C0D0E0F 490621BA1F7A2F9AAAA449BF0B87891F
95 000102030405060708090A0B0D0D0E0F 490621BA1F7A2F9ADF98D6B3C074A265
96 000102030405060708090A0B0C0C0E0F 490621BA1F7A2F9A1EA4227224DBB1E9
97 000102030405060708090A0B0C0D0F0F 490621BA1F7A2F9AE8EFE545C1C86949
98 000102030405060708090A0B0C0D0E0E 490621BA1F7A2F9A52705DB9168BFBCB
99 3501026C15E723A90000000000000000 7356BEBF9EFA99D690DE09B472855817
100 3501026C15E723A9FFFFFFFFFFFFFFFF 7356BEBF9EFA99D66A81040BF2294479
101 B26233A118609E470000000000000000 795A7CFE96A7460590DE09B472855817
102 B26233A118609E47FFFFFFFFFFFFFFFF 795A7CFE96A746056A81040BF2294479
103 CD055494378D8C260000000000000000 0EA29507D5F9AF1390DE09B472855817
104 CD055494378D8C26FFFFFFFFFFFFFFFF 0EA29507D5F9AF136A81040BF2294479
105 0D66C35B5D0E17000000000000000000 B268C381A0D29AF590DE09B472855817
106 0D66C35B5D0E1700FFFFFFFFFFFFFFFF B268C381A0D29AF56A81040BF2294479
107 1D1EA39547625C8C0000000000000000 381F7A0F0C40D91490DE09B472855817
108 1D1EA39547625C8CFFFFFFFFFFFFFFFF 381F7A0F0C40D9146A81040BF2294479
109 CDDF89707ED28CA00000000000000000 2A9F66460C954E0F90DE09B472855817
110 CDDF89707ED28CA0FFFFFFFFFFFFFFFF 2A9F66460C954E0F6A81040BF2294479
111 30C654040AB964900000000000000000 4B96772686A6414490DE09B472855817
112 30C654040AB96490FFFFFFFFFFFFFFFF 4B96772686A641446A81040BF2294479
113 225412226117A6DB0000000000000000 94DFBB7B696FF68890DE09B472855817
114 225412226117A6DBFFFFFFFFFFFFFFFF 94DFBB7B696FF6886A81040BF2294479
115 0000000000000000748AADD2DC1FFDF2 90DE09B4728558174F042D404735FBC2
116 FFFFFFFFFFFFFFFF748AADD2DC1FFDF2 6A81040BF22944794F042D404735FBC2
117 00000000000000004AA500E87EDC64C4 90DE09B472855817F7BEA28401464AA9
118 FFFFFFFFFFFFFFFF4AA500E87EDC64C4 6A81040BF2294479F7BEA28401464AA9
119 00000000000000006B6A5FB00237CAD2 90DE09B472855817794F1F3EB90C3F7C
120 FFFFFFFFFFFFFFFF6B6A5FB00237CAD2 6A81040BF2294479794F1F3EB90C3F7C
121 00000000000000008C8FF951A25F1570 90DE09B472855817F867951521BD7C78
122 FFFFFFFFFFFFFFFF8C8FF951A25F1570 6A81040BF2294479F867951521BD7C78
123 0000000000000000EB8A6A6991B61FF5 90DE09B4728558170741BEF82537B2D2
124 FFFFFFFFFFFFFFFFEB8A6A6991B61FF5 6A81040BF22944790741BEF82537B2D2
125 00000000000000003A5EB345FFE4B82C 90DE09B472855817670D4E8E84E288A3
126 FFFFFFFFFFFFFFFF3A5EB345FFE4B82C 6A81040BF2294479670D4E8E84E288A3
127 00000000000000000D022175A50D18FC 90DE09B4728558170A2E1C9971E91D1B
128 FFFFFFFFFFFFFFFF0D022175A50D18FC 6A81040BF22944790A2E1C9971E91D1B
129 00000000000000004A8D5E79AEBDB5C8 90DE09B47285581759AD04B586354818
130 FFFFFFFFFFFFFFFF4A8D5E79AEBDB5C8 6A81040BF229447959AD04B586354818
131 8735CA449D06E48E92D9A690779E4F9A B6F66EF5F2A5CEDD30E1A1FB479AB692
132 1A068AD8DC21DDE0230F2E171BDF6835 60CBAE07071171FAFE324AF662D56547
133 939999E9CFEFB9A939E89B16CA161AB5 4BCB501A7C79B71F9E2D2DF7D0F9970A
134 AD34B10C287FD20998FAA0AF457B4709 D4232710A53156107F0626F57F27107A
135 47D34BA7B939955A047CF68D737A61EA A251C1CBDC69BE78D58EBBC1F3D245E1
136 C3A2B00938D11FA1C92C641E712ACA34 5B660019C0379E8E87549E42DDD8DC91
137 E00AD1AD276852A1A5F2DF2231952729 E5BCBAA614D6EAC3D2BAE6DFB65ADB39
138 3AF2E6BABF44EC5C1A55F0BAA5FA9BDA 45D82CB113CBD25D673BC3E62822A3DA
139 8A3B6D96439A3C3A00FE89B197F1C6D9 ADF093B70042B643DDE4A30B27D911D7
140 00C5DE6DB0D87AC62982036BC9DCFC65 6288D3E03AE6F7E14ECA401C5BA5FD27
141 3D69BAF6A6FB385684057EF71C02A84F DC44EC4BE6E8C4D8B7BA15FFC141C2C3
142 DC771563DFAB03F5B61486F08D0420ED BB4BC8C0DA0F67F067F1E050CCCC4496
143 72DBC7AE27D3F52777C23A5AAD142793 A08EAD92445C042EC35E0E35CCBF4D63
144 E87423730BA482D37D2C5B81998A6E11 E27DBC03E384000E6856245C601C066C
145 485CC3950CF9BBA76EA9A66114D74306 6CEB557795AF089EBA4E64DE032E7B0C
146 EDDC3862D2B887A09387B95D22F28D16 9063E689A041631B5E4221F07C6C2547
147 98D7DDA8C2C3D7A2CEF816D1C57DD25B 4B4DBF8AB4AEFD03A982AD51D10C36B4
148 E59918D7F7440E10E34BB57226B23E3E CADE8C78EE6A226D1371950638D6E524
149 795DD0F1748F2FCC6DA86E78E523A6DB 4D0AF9FDDE099932CCEAE634E6A6E4F2
150 FF374E2BECD41DDFC34EF995BAD74103 53E283C3D30CA9B14B819686A25F04EF
151 79B01497977C38E8CADFBAD60EB67E76 6B1D1EC7F7CA646D4D8D767DD61D9D70
152 A65FC3F7D66DA24E73BBDACD9CE12C94 988849D83BE204C765C6B42BEB78DCDF
153 A60B9669D2C984782CFA89992AE6A9D2 6657BFCA2E87A070AF6045DBEFCCF55F
154 9CAC25C867B7E079DED45D428B2EFCF9 F39D44D3E059E4E01127F65B9FBB20B6
155 4908BBB17763CE521276697474F8D19B 016964D9028D40780288FA31A2BD56F7
156 A7BA8DEA495B0258C1E7782EA394C06A 1A13C5630A767779570AF70E38937996
157 83F052520B2AD979727161DE54D9581C 7D242666DBE8B30EFE5E4830923218A0
158 A08E2045B24736220446C0637C406AB2 AFC79C27120E812F3A767842CEC3F8F4
159 490A2794E95FF3FAF368B3693D3FF730 5CB8795143440BF5481E9B7D3F2BECCC
160 BBDE52C3FBE8CE87E330574E622A72C6 3C5AF926F6E820BA1ADDBC9449CE9AEB
161 FEF29072DCAA31A29FEF6013F989BC3D 10C67B8B791D948F0F946CCF8E6C195E
162 56201529BC79958577F97AB3D0633F0F 010A4F36BBC6229FF7538406754CDC9A
163 F711DA57A41D0B5B846DB5E5C0EAD574 8582DCF8562B6E7F7E66F3354C21A503
164 DD7B13E7479CB46208E84B6DCCF5D7DF 79F9A78684ADCD5BF1BFE7701C18CE01
165 29563BA35966FDDD90AB8DF4F8D46F53 A9C1E15117EE664024EBB66BE44FDD3E
166 6951DF1546B54E9A7902CB6D1F0CCFE8 31BD9E6914FF5D15229DB8AC1315ED84
167 5F9BBBC7778BE7198BEE4284AC65FA5C E825EBCD5AB616A4C376755A70DD5D85
168 4C5242B528B8D14A761C0989779B3E71 7131EC719F72A11319139DD9D9DCA7A5
169 FA3CBBE6139D9465CF5EFC777D1EA6C5 ABE7686EED7024017E1FCAFAA6B87F74
170 02E3AA2BE481A7B4195C3A6435EBEB58 2D11D2406B8E1F2D8029F710E0477610
171 3ED28369F5ACEF0097BB500BDF8D1115 C6240578965F1A4FB77BF238BD903B39
172 38CEDAA0D9D0FBA6829F37D697154869 4A8A4CC4E5F5F8F8809C5F96357942E8
173 91145732A012B25CB686760EDFDBCEA2 D1410B2F2B76ECFA4B2EAFF0C3308013
174 10591AFF4360AFF4EE77EF3D32DB9BF7 DF82591209484A8E43282118EB19E424
175 393952F7A6DD08EC511E329F7F57C94E 81A173BF7CB18B44A8AC7214F662C513
176 5BFE98265BFA6885E6CE29783DCDB264 7C514C2CC9B44C1F490844A9EEC42370
177 DE3A6461E30E89F4C2CFC154D11CB171 7B5E780F51CE26A7A3CFD770C8007984
178 F824D54A780F4FA96F6350D34E8BD760 858DA30DD7E423F22EF0076AE22D19CE
179 00000000000000000000000000000000 90DE09B47285581790DE09B472855817
180 000102030405060708090A0B0C0D0E0F 490621BA1F7A2F9AF3EE13199041B8EF
+55
View File
@@ -0,0 +1,55 @@
Warning: -video none doesn't make much sense without -seconds_to_run
vt1200: screen_update#1 frame=0 clip_y=0..0 screen=1280x901
runB: loaded 180 vectors from /home/arti/code/k-space/vt1200/dwt/evidence/oracle/runB/in.txt
vt1200: screen_update#2 frame=0 clip_y=1..900 screen=1280x901
vt1200: scanline#1 line=1 enabled=1
vt1200: guard#1 frame=0 dump_frame=-1 dump_ram=-1
vt1200: screen_update#3 frame=1 clip_y=0..0 screen=1280x901
vt1200: scanline#2 line=0 enabled=1
vt1200: screen_update#4 frame=1 clip_y=1..1 screen=1280x901
vt1200: scanline#3 line=1 enabled=1
vt1200: scanline#4 line=2 enabled=1
runB: frame 3000 hijack pc=3F579970 sp=007F52B0 a14=007DDC90
runB: init returned; @1C0200=007AB930 @1C0220=00000000 @1C0240=00000000 @1C0260=007AF970
runB: expand returned; keyptr=007AF970 fontptr=00000000 renderptr=00000000
runB: seed+000 55F861C7E51311D4C80000000000000000000000000000000000000000000000
runB: seed+020 0000000000003A322A221A120A023C342C241C140C043E362E261E160E064038
runB: seed+040 30282018100839312921191109013B332B231B130B033D352D251D150D053F37
runB: seed+060 2F271F170F07280830103818402027072F0F37173F1F26062E0E36163E1E2505
runB: key+000 2C3E1F020130080D2D23281F080019120B333920171A00063227333C09041308
runB: key+020 370E1D18020B0107112D3C2B292C12203A3B250702003D030A1E3B0B272C0010
runB: key+040 3B110B1C2010212E052D2B2C11092A10262725320410113D2B063D2D02392200
runB: key+060 30371C0D0006143512193F310A302204351F232B3004061323082E3E2D1A2400
runB: aux+000 39312921191109013A322A221A120A023B332B231B130B033C342C243F372F27
runB: aux+020 1F170F073E362E261E160E063D352D251D150D051C140C0401020406080A0C0E
runB: aux+040 0F11131517191B1C0E110B180105031C0F06150A17130C041A0810071B140D02
runB: aux+060 29341F252F371E28332D21302C31273822352E2A32241D200E040D01020F0B08
runB: aux+080 030A060C05090007000F07040E020D010A060C0B0905030804010E080D06020B
runB: aux+0A0 0F0C0907030A05000F0C080204090107050B030E0A00060D0F01080E060B0304
runB: aux+0C0 0907020D0C00050A030D04070F02080E0C00010A06090B05000E070B0A040D01
runB: aux+0E0 05080C060903020F0D080A01030F04020B06070C00050E090A00090E06030F05
runB: aux+100 010D0C070B0402080D0700090304060A0208050E0C0B0F010D060409080F0300
runB: aux+120 0B01020C050A0E07010A0D0006090807040F0E030B05020C070D0E030006090A
runB: aux+140 010208050B0C040F0D080B05060F00030407020C010A0E090A0609000C0B070D
runB: aux+160 0F01030E05020804030F00060A010D080904050B0C07020E020C0401070A0B06
runB: aux+180 0805030F0D000E090E0B020C04070D0105000F0A030908060402010B0A0D0708
runB: aux+1A0 0F090C050603000E0B080C07010E020D060F00090A0405030C010A0F09020608
runB: aux+1C0 000D03040E07050B0A0F0402070C090506010D0E000B0308090E0F0502080C03
runB: aux+1E0 0700040A010D0B060403020C09050F0A0B0E01070600080D040B020E0F00080D
runB: aux+200 030C0907050A06010D000B070409010A0E03050C020F080601040B0D0C03070E
runB: aux+220 0A0F060800050902060B0D0801040A070905000F0E02030C0D020804060F0B01
runB: aux+240 0A09030E05000C07010F0D080A0307040C05060B000E0902070B0401090C0E02
runB: aux+260 00060A0D0F03050802010E07040A080D0F0C09000305060B100714151D0C1C11
runB: aux+280 010F171A05121F0A0208180E201B0309130D1E06160B041930B97A0000000000
runB: aux+2A0 0000000070F97A00800000004000000020000000100000000800000004000000
runB: 24/180 vectors
runB: 49/180 vectors
runB: 74/180 vectors
runB: 99/180 vectors
runB: 124/180 vectors
runB: 149/180 vectors
runB: 174/180 vectors
runB: 180/180 vectors
runB: free returned; exiting
runB: done (free_run), rc=0
Average speed: 363.73% (41 seconds)
@@ -0,0 +1,920 @@
MAME debugger version 0.289 (mame0289-dirty)
Currently targeting vt1200 (VT1200 X terminal (v2.2 firmware))
>bclear
^
unknown command
Breakpoint 1 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 2 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 3 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 4 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 5 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 6 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 7 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 8 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 9 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint A set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint B set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint C set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint D set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint E set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint F set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 10 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 11 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 12 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 13 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 14 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 15 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 16 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 17 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 18 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 19 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 1A set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 1B set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 1C set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 1D set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 1E set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 1F set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 20 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 21 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 22 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 23 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 24 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 25 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 26 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 27 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 28 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 29 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 2A set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 2B set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 2C set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 2D set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 2E set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 2F set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 30 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 31 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 32 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 33 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 34 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 35 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 36 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 37 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 38 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 39 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 3A set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 3B set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 3C set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 3D set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 3E set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 3F set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 40 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 41 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 42 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 43 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 44 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 45 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 46 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 47 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 48 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 49 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 4A set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 4B set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 4C set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 4D set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 4E set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 4F set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 50 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 51 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 52 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 53 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 54 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 55 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 56 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 57 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 58 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 59 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 5A set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 5B set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 5C set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 5D set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 5E set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 5F set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 60 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 61 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 62 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 63 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 64 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 65 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 66 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 67 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 68 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 69 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 6A set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 6B set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 6C set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 6D set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 6E set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 6F set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 70 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 71 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 72 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 73 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 74 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 75 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 76 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 77 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 78 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 79 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 7A set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 7B set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 7C set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 7D set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 7E set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 7F set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 80 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 81 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 82 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 83 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 84 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 85 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 86 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 87 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 88 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 89 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 8A set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 8B set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 8C set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 8D set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 8E set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 8F set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 90 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 91 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 92 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 93 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 94 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 95 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 96 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 97 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 98 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 99 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 9A set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 9B set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 9C set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 9D set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 9E set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 9F set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint A0 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint A1 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint A2 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint A3 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint A4 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint A5 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint A6 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint A7 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint A8 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint A9 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint AA set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint AB set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint AC set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint AD set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint AE set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint AF set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint B0 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint B1 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint B2 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint B3 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint B4 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint B5 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint B6 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint B7 set
Stopped at breakpoint 1
>bclear
^
unknown command
+180
View File
@@ -0,0 +1,180 @@
00000000000000000000000000000000
ffffffffffffffffffffffffffffffff
000102030405060708090a0b0c0d0e0f
0f0e0d0c0b0a09080706050403020100
aa55aa55aa55aa55aa55aa55aa55aa55
55aa55aa55aa55aa55aa55aa55aa55aa
0000000000000000ffffffffffffffff
ffffffffffffffff0000000000000000
80000000000000000000000000000000
00000000000000008000000000000000
7f000000000000000000000000000000
00000000000000000100000000000000
00112233445566770011223344556677
f32cec8d0000ead00263a8c0f324ec8e
8dec2cf3d0ea0000c0a863028eec24f3
00000000000000000000000000000000
00000001000000000000000000000000
00000002000000000000000000000000
00000003000000000000000000000000
00000010000000000000000000000000
00000020000000000000000000000000
00000030000000000000000000000000
00000080000000000000000000000000
000000ff000000000000000000000000
00000100000000000000000000000000
00000000010000000000000000000000
010102030405060708090a0b0c0d0e0f
020102030405060708090a0b0c0d0e0f
040102030405060708090a0b0c0d0e0f
080102030405060708090a0b0c0d0e0f
100102030405060708090a0b0c0d0e0f
200102030405060708090a0b0c0d0e0f
400102030405060708090a0b0c0d0e0f
800102030405060708090a0b0c0d0e0f
000002030405060708090a0b0c0d0e0f
000302030405060708090a0b0c0d0e0f
000502030405060708090a0b0c0d0e0f
000902030405060708090a0b0c0d0e0f
001102030405060708090a0b0c0d0e0f
002102030405060708090a0b0c0d0e0f
004102030405060708090a0b0c0d0e0f
008102030405060708090a0b0c0d0e0f
000103030405060708090a0b0c0d0e0f
000100030405060708090a0b0c0d0e0f
000106030405060708090a0b0c0d0e0f
00010a030405060708090a0b0c0d0e0f
000112030405060708090a0b0c0d0e0f
000122030405060708090a0b0c0d0e0f
000142030405060708090a0b0c0d0e0f
000182030405060708090a0b0c0d0e0f
000102020405060708090a0b0c0d0e0f
000102010405060708090a0b0c0d0e0f
000102070405060708090a0b0c0d0e0f
0001020b0405060708090a0b0c0d0e0f
000102130405060708090a0b0c0d0e0f
000102230405060708090a0b0c0d0e0f
000102430405060708090a0b0c0d0e0f
000102830405060708090a0b0c0d0e0f
000102030505060708090a0b0c0d0e0f
000102030605060708090a0b0c0d0e0f
000102030005060708090a0b0c0d0e0f
000102030c05060708090a0b0c0d0e0f
000102031405060708090a0b0c0d0e0f
000102032405060708090a0b0c0d0e0f
000102034405060708090a0b0c0d0e0f
000102038405060708090a0b0c0d0e0f
000102030404060708090a0b0c0d0e0f
000102030407060708090a0b0c0d0e0f
000102030401060708090a0b0c0d0e0f
00010203040d060708090a0b0c0d0e0f
000102030415060708090a0b0c0d0e0f
000102030425060708090a0b0c0d0e0f
000102030445060708090a0b0c0d0e0f
000102030485060708090a0b0c0d0e0f
000102030405070708090a0b0c0d0e0f
000102030405040708090a0b0c0d0e0f
000102030405020708090a0b0c0d0e0f
0001020304050e0708090a0b0c0d0e0f
000102030405160708090a0b0c0d0e0f
000102030405260708090a0b0c0d0e0f
000102030405460708090a0b0c0d0e0f
000102030405860708090a0b0c0d0e0f
000102030405060608090a0b0c0d0e0f
000102030405060508090a0b0c0d0e0f
000102030405060308090a0b0c0d0e0f
000102030405060f08090a0b0c0d0e0f
000102030405061708090a0b0c0d0e0f
000102030405062708090a0b0c0d0e0f
000102030405064708090a0b0c0d0e0f
000102030405068708090a0b0c0d0e0f
000102030405060709090a0b0c0d0e0f
000102030405060708080a0b0c0d0e0f
000102030405060708090b0b0c0d0e0f
000102030405060708090a0a0c0d0e0f
000102030405060708090a0b0d0d0e0f
000102030405060708090a0b0c0c0e0f
000102030405060708090a0b0c0d0f0f
000102030405060708090a0b0c0d0e0e
3501026c15e723a90000000000000000
3501026c15e723a9ffffffffffffffff
b26233a118609e470000000000000000
b26233a118609e47ffffffffffffffff
cd055494378d8c260000000000000000
cd055494378d8c26ffffffffffffffff
0d66c35b5d0e17000000000000000000
0d66c35b5d0e1700ffffffffffffffff
1d1ea39547625c8c0000000000000000
1d1ea39547625c8cffffffffffffffff
cddf89707ed28ca00000000000000000
cddf89707ed28ca0ffffffffffffffff
30c654040ab964900000000000000000
30c654040ab96490ffffffffffffffff
225412226117a6db0000000000000000
225412226117a6dbffffffffffffffff
0000000000000000748aadd2dc1ffdf2
ffffffffffffffff748aadd2dc1ffdf2
00000000000000004aa500e87edc64c4
ffffffffffffffff4aa500e87edc64c4
00000000000000006b6a5fb00237cad2
ffffffffffffffff6b6a5fb00237cad2
00000000000000008c8ff951a25f1570
ffffffffffffffff8c8ff951a25f1570
0000000000000000eb8a6a6991b61ff5
ffffffffffffffffeb8a6a6991b61ff5
00000000000000003a5eb345ffe4b82c
ffffffffffffffff3a5eb345ffe4b82c
00000000000000000d022175a50d18fc
ffffffffffffffff0d022175a50d18fc
00000000000000004a8d5e79aebdb5c8
ffffffffffffffff4a8d5e79aebdb5c8
8735ca449d06e48e92d9a690779e4f9a
1a068ad8dc21dde0230f2e171bdf6835
939999e9cfefb9a939e89b16ca161ab5
ad34b10c287fd20998faa0af457b4709
47d34ba7b939955a047cf68d737a61ea
c3a2b00938d11fa1c92c641e712aca34
e00ad1ad276852a1a5f2df2231952729
3af2e6babf44ec5c1a55f0baa5fa9bda
8a3b6d96439a3c3a00fe89b197f1c6d9
00c5de6db0d87ac62982036bc9dcfc65
3d69baf6a6fb385684057ef71c02a84f
dc771563dfab03f5b61486f08d0420ed
72dbc7ae27d3f52777c23a5aad142793
e87423730ba482d37d2c5b81998a6e11
485cc3950cf9bba76ea9a66114d74306
eddc3862d2b887a09387b95d22f28d16
98d7dda8c2c3d7a2cef816d1c57dd25b
e59918d7f7440e10e34bb57226b23e3e
795dd0f1748f2fcc6da86e78e523a6db
ff374e2becd41ddfc34ef995bad74103
79b01497977c38e8cadfbad60eb67e76
a65fc3f7d66da24e73bbdacd9ce12c94
a60b9669d2c984782cfa89992ae6a9d2
9cac25c867b7e079ded45d428b2efcf9
4908bbb17763ce521276697474f8d19b
a7ba8dea495b0258c1e7782ea394c06a
83f052520b2ad979727161de54d9581c
a08e2045b24736220446c0637c406ab2
490a2794e95ff3faf368b3693d3ff730
bbde52c3fbe8ce87e330574e622a72c6
fef29072dcaa31a29fef6013f989bc3d
56201529bc79958577f97ab3d0633f0f
f711da57a41d0b5b846db5e5c0ead574
dd7b13e7479cb46208e84b6dccf5d7df
29563ba35966fddd90ab8df4f8d46f53
6951df1546b54e9a7902cb6d1f0ccfe8
5f9bbbc7778be7198bee4284ac65fa5c
4c5242b528b8d14a761c0989779b3e71
fa3cbbe6139d9465cf5efc777d1ea6c5
02e3aa2be481a7b4195c3a6435ebeb58
3ed28369f5acef0097bb500bdf8d1115
38cedaa0d9d0fba6829f37d697154869
91145732a012b25cb686760edfdbcea2
10591aff4360aff4ee77ef3d32db9bf7
393952f7a6dd08ec511e329f7f57c94e
5bfe98265bfa6885e6ce29783dcdb264
de3a6461e30e89f4c2cfc154d11cb171
f824d54a780f4fa96f6350d34e8bd760
00000000000000000000000000000000
000102030405060708090a0b0c0d0e0f
+180
View File
@@ -0,0 +1,180 @@
1 00000000000000000000000000000000 90DE09B47285581790DE09B472855817
2 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF 6A81040BF22944796A81040BF2294479
3 000102030405060708090A0B0C0D0E0F 490621BA1F7A2F9AF3EE13199041B8EF
4 0F0E0D0C0B0A09080706050403020100 47340C29C8B7BD41B8D97E1542ED3C35
5 AA55AA55AA55AA55AA55AA55AA55AA55 BFF91EB2093E0FF1BFF91EB2093E0FF1
6 55AA55AA55AA55AA55AA55AA55AA55AA 6A5628027555C59B6A5628027555C59B
7 0000000000000000FFFFFFFFFFFFFFFF 90DE09B4728558176A81040BF2294479
8 FFFFFFFFFFFFFFFF0000000000000000 6A81040BF229447990DE09B472855817
9 80000000000000000000000000000000 C12005491321E97590DE09B472855817
10 00000000000000008000000000000000 90DE09B472855817C12005491321E975
11 7F000000000000000000000000000000 0A24C5C7784A080F90DE09B472855817
12 00000000000000000100000000000000 90DE09B47285581705C18845D2682FBA
13 00112233445566770011223344556677 DF11BB36BA20F348DF11BB36BA20F348
14 F32CEC8D0000EAD00263A8C0F324EC8E 5D02BB9C37D40A5BE4F2363831815699
15 8DEC2CF3D0EA0000C0A863028EEC24F3 BDB2D3E0FC00DB5FE31ECBD30F1E1B93
16 00000000000000000000000000000000 90DE09B47285581790DE09B472855817
17 00000001000000000000000000000000 B1975FF1D78D032A90DE09B472855817
18 00000002000000000000000000000000 5865800E5D8C3C5590DE09B472855817
19 00000003000000000000000000000000 EE590DF03C2BDBDD90DE09B472855817
20 00000010000000000000000000000000 0B9AB22E400A068F90DE09B472855817
21 00000020000000000000000000000000 362CF798EC8AE91890DE09B472855817
22 00000030000000000000000000000000 9ECAE2E539A1635790DE09B472855817
23 00000080000000000000000000000000 57D8297C38F7783B90DE09B472855817
24 000000FF000000000000000000000000 FC00338C744B2D1B90DE09B472855817
25 00000100000000000000000000000000 21105DAED5E13EC590DE09B472855817
26 00000000010000000000000000000000 46BA798D00E10CDB90DE09B472855817
27 010102030405060708090A0B0C0D0E0F 92BC012D93A116AEF3EE13199041B8EF
28 020102030405060708090A0B0C0D0E0F 164015F196B01410F3EE13199041B8EF
29 040102030405060708090A0B0C0D0E0F ABBD32F93542E6DFF3EE13199041B8EF
30 080102030405060708090A0B0C0D0E0F 56DC26E290E8BE41F3EE13199041B8EF
31 100102030405060708090A0B0C0D0E0F 301E846CBD602214F3EE13199041B8EF
32 200102030405060708090A0B0C0D0E0F D30C1CC792BB30C9F3EE13199041B8EF
33 400102030405060708090A0B0C0D0E0F FFC252AD921795ABF3EE13199041B8EF
34 800102030405060708090A0B0C0D0E0F CFB469B1A5881636F3EE13199041B8EF
35 000002030405060708090A0B0C0D0E0F AC8C291D71256BFBF3EE13199041B8EF
36 000302030405060708090A0B0C0D0E0F 5CE92F90A6D5D14AF3EE13199041B8EF
37 000502030405060708090A0B0C0D0E0F 22ACB5CAB75350ACF3EE13199041B8EF
38 000902030405060708090A0B0C0D0E0F 68A54DDEE96445F3F3EE13199041B8EF
39 001102030405060708090A0B0C0D0E0F 02346AA75DC726AFF3EE13199041B8EF
40 002102030405060708090A0B0C0D0E0F DADD787249314ABAF3EE13199041B8EF
41 004102030405060708090A0B0C0D0E0F 2B9C5C6FFC3A1F9EF3EE13199041B8EF
42 008102030405060708090A0B0C0D0E0F F4E3474ACF62420CF3EE13199041B8EF
43 000103030405060708090A0B0C0D0E0F EF72B6CC68559E6AF3EE13199041B8EF
44 000100030405060708090A0B0C0D0E0F E4FDF0DD779B07ABF3EE13199041B8EF
45 000106030405060708090A0B0C0D0E0F 4FFEB9CCE4068E81F3EE13199041B8EF
46 00010A030405060708090A0B0C0D0E0F 9947C7DFF3D05245F3EE13199041B8EF
47 000112030405060708090A0B0C0D0E0F 1FDF4A0763B9F83BF3EE13199041B8EF
48 000122030405060708090A0B0C0D0E0F 932DC9C97C441E66F3EE13199041B8EF
49 000142030405060708090A0B0C0D0E0F 18BA761EF97D5766F3EE13199041B8EF
50 000182030405060708090A0B0C0D0E0F 86BBB870A3D2D245F3EE13199041B8EF
51 000102020405060708090A0B0C0D0E0F 876784940262E686F3EE13199041B8EF
52 000102010405060708090A0B0C0D0E0F BEFCCE7E438B0A31F3EE13199041B8EF
53 000102070405060708090A0B0C0D0E0F 249BE14E8C537EC6F3EE13199041B8EF
54 0001020B0405060708090A0B0C0D0E0F C593B7EB96B434F9F3EE13199041B8EF
55 000102130405060708090A0B0C0D0E0F A449CCE9CDD9937BF3EE13199041B8EF
56 000102230405060708090A0B0C0D0E0F A83EF09EEACC3EF9F3EE13199041B8EF
57 000102430405060708090A0B0C0D0E0F 5049ACD27CE7CC18F3EE13199041B8EF
58 000102830405060708090A0B0C0D0E0F 22F90834F70AC2FDF3EE13199041B8EF
59 000102030505060708090A0B0C0D0E0F 6C3C483C112BF4A5F3EE13199041B8EF
60 000102030605060708090A0B0C0D0E0F B090ED887529E1C8F3EE13199041B8EF
61 000102030005060708090A0B0C0D0E0F 2E926606B0294C9DF3EE13199041B8EF
62 000102030C05060708090A0B0C0D0E0F AEEF4164A1CBA00DF3EE13199041B8EF
63 000102031405060708090A0B0C0D0E0F C8C629BC2A2694B8F3EE13199041B8EF
64 000102032405060708090A0B0C0D0E0F 8E07759B6844E0E9F3EE13199041B8EF
65 000102034405060708090A0B0C0D0E0F 759D964D0C40CC1FF3EE13199041B8EF
66 000102038405060708090A0B0C0D0E0F FD4090C4A77C4B72F3EE13199041B8EF
67 000102030404060708090A0B0C0D0E0F F46AFCCCD96861CAF3EE13199041B8EF
68 000102030407060708090A0B0C0D0E0F E9323C9D59A033E5F3EE13199041B8EF
69 000102030401060708090A0B0C0D0E0F 598BD0DF5D9E7250F3EE13199041B8EF
70 00010203040D060708090A0B0C0D0E0F 334E6948C674FA42F3EE13199041B8EF
71 000102030415060708090A0B0C0D0E0F C9F599B0C58D1092F3EE13199041B8EF
72 000102030425060708090A0B0C0D0E0F 2F482E0CEA3B8C9BF3EE13199041B8EF
73 000102030445060708090A0B0C0D0E0F 638C609AEAFCC4BCF3EE13199041B8EF
74 000102030485060708090A0B0C0D0E0F 92B400ED0B282E70F3EE13199041B8EF
75 000102030405070708090A0B0C0D0E0F 1D5D0E33202104C4F3EE13199041B8EF
76 000102030405040708090A0B0C0D0E0F FAE5E314891347B1F3EE13199041B8EF
77 000102030405020708090A0B0C0D0E0F 5439E903E0ACADB9F3EE13199041B8EF
78 0001020304050E0708090A0B0C0D0E0F 0CFAED9F09FA568EF3EE13199041B8EF
79 000102030405160708090A0B0C0D0E0F 31AD575576D6BA77F3EE13199041B8EF
80 000102030405260708090A0B0C0D0E0F D3AD6AF78B407CCDF3EE13199041B8EF
81 000102030405460708090A0B0C0D0E0F 6A8D0B396A2A9FAEF3EE13199041B8EF
82 000102030405860708090A0B0C0D0E0F C4E4173D22348AD4F3EE13199041B8EF
83 000102030405060608090A0B0C0D0E0F 7B6AB5D4C1731566F3EE13199041B8EF
84 000102030405060508090A0B0C0D0E0F E1AD86D595EE2004F3EE13199041B8EF
85 000102030405060308090A0B0C0D0E0F B2E4C1BC21486D9AF3EE13199041B8EF
86 000102030405060F08090A0B0C0D0E0F 5CC4B03FA98A98C3F3EE13199041B8EF
87 000102030405061708090A0B0C0D0E0F A12FFD65E0D144DDF3EE13199041B8EF
88 000102030405062708090A0B0C0D0E0F A640E50DB6B1F841F3EE13199041B8EF
89 000102030405064708090A0B0C0D0E0F C6A07E62940EAFA8F3EE13199041B8EF
90 000102030405068708090A0B0C0D0E0F 31C89B8122781DBCF3EE13199041B8EF
91 000102030405060709090A0B0C0D0E0F 490621BA1F7A2F9AC716E3D7791FEE58
92 000102030405060708080A0B0C0D0E0F 490621BA1F7A2F9A6E5E338E84F025B7
93 000102030405060708090B0B0C0D0E0F 490621BA1F7A2F9A0F49DDCFAF30192A
94 000102030405060708090A0A0C0D0E0F 490621BA1F7A2F9AAAA449BF0B87891F
95 000102030405060708090A0B0D0D0E0F 490621BA1F7A2F9ADF98D6B3C074A265
96 000102030405060708090A0B0C0C0E0F 490621BA1F7A2F9A1EA4227224DBB1E9
97 000102030405060708090A0B0C0D0F0F 490621BA1F7A2F9AE8EFE545C1C86949
98 000102030405060708090A0B0C0D0E0E 490621BA1F7A2F9A52705DB9168BFBCB
99 3501026C15E723A90000000000000000 7356BEBF9EFA99D690DE09B472855817
100 3501026C15E723A9FFFFFFFFFFFFFFFF 7356BEBF9EFA99D66A81040BF2294479
101 B26233A118609E470000000000000000 795A7CFE96A7460590DE09B472855817
102 B26233A118609E47FFFFFFFFFFFFFFFF 795A7CFE96A746056A81040BF2294479
103 CD055494378D8C260000000000000000 0EA29507D5F9AF1390DE09B472855817
104 CD055494378D8C26FFFFFFFFFFFFFFFF 0EA29507D5F9AF136A81040BF2294479
105 0D66C35B5D0E17000000000000000000 B268C381A0D29AF590DE09B472855817
106 0D66C35B5D0E1700FFFFFFFFFFFFFFFF B268C381A0D29AF56A81040BF2294479
107 1D1EA39547625C8C0000000000000000 381F7A0F0C40D91490DE09B472855817
108 1D1EA39547625C8CFFFFFFFFFFFFFFFF 381F7A0F0C40D9146A81040BF2294479
109 CDDF89707ED28CA00000000000000000 2A9F66460C954E0F90DE09B472855817
110 CDDF89707ED28CA0FFFFFFFFFFFFFFFF 2A9F66460C954E0F6A81040BF2294479
111 30C654040AB964900000000000000000 4B96772686A6414490DE09B472855817
112 30C654040AB96490FFFFFFFFFFFFFFFF 4B96772686A641446A81040BF2294479
113 225412226117A6DB0000000000000000 94DFBB7B696FF68890DE09B472855817
114 225412226117A6DBFFFFFFFFFFFFFFFF 94DFBB7B696FF6886A81040BF2294479
115 0000000000000000748AADD2DC1FFDF2 90DE09B4728558174F042D404735FBC2
116 FFFFFFFFFFFFFFFF748AADD2DC1FFDF2 6A81040BF22944794F042D404735FBC2
117 00000000000000004AA500E87EDC64C4 90DE09B472855817F7BEA28401464AA9
118 FFFFFFFFFFFFFFFF4AA500E87EDC64C4 6A81040BF2294479F7BEA28401464AA9
119 00000000000000006B6A5FB00237CAD2 90DE09B472855817794F1F3EB90C3F7C
120 FFFFFFFFFFFFFFFF6B6A5FB00237CAD2 6A81040BF2294479794F1F3EB90C3F7C
121 00000000000000008C8FF951A25F1570 90DE09B472855817F867951521BD7C78
122 FFFFFFFFFFFFFFFF8C8FF951A25F1570 6A81040BF2294479F867951521BD7C78
123 0000000000000000EB8A6A6991B61FF5 90DE09B4728558170741BEF82537B2D2
124 FFFFFFFFFFFFFFFFEB8A6A6991B61FF5 6A81040BF22944790741BEF82537B2D2
125 00000000000000003A5EB345FFE4B82C 90DE09B472855817670D4E8E84E288A3
126 FFFFFFFFFFFFFFFF3A5EB345FFE4B82C 6A81040BF2294479670D4E8E84E288A3
127 00000000000000000D022175A50D18FC 90DE09B4728558170A2E1C9971E91D1B
128 FFFFFFFFFFFFFFFF0D022175A50D18FC 6A81040BF22944790A2E1C9971E91D1B
129 00000000000000004A8D5E79AEBDB5C8 90DE09B47285581759AD04B586354818
130 FFFFFFFFFFFFFFFF4A8D5E79AEBDB5C8 6A81040BF229447959AD04B586354818
131 8735CA449D06E48E92D9A690779E4F9A B6F66EF5F2A5CEDD30E1A1FB479AB692
132 1A068AD8DC21DDE0230F2E171BDF6835 60CBAE07071171FAFE324AF662D56547
133 939999E9CFEFB9A939E89B16CA161AB5 4BCB501A7C79B71F9E2D2DF7D0F9970A
134 AD34B10C287FD20998FAA0AF457B4709 D4232710A53156107F0626F57F27107A
135 47D34BA7B939955A047CF68D737A61EA A251C1CBDC69BE78D58EBBC1F3D245E1
136 C3A2B00938D11FA1C92C641E712ACA34 5B660019C0379E8E87549E42DDD8DC91
137 E00AD1AD276852A1A5F2DF2231952729 E5BCBAA614D6EAC3D2BAE6DFB65ADB39
138 3AF2E6BABF44EC5C1A55F0BAA5FA9BDA 45D82CB113CBD25D673BC3E62822A3DA
139 8A3B6D96439A3C3A00FE89B197F1C6D9 ADF093B70042B643DDE4A30B27D911D7
140 00C5DE6DB0D87AC62982036BC9DCFC65 6288D3E03AE6F7E14ECA401C5BA5FD27
141 3D69BAF6A6FB385684057EF71C02A84F DC44EC4BE6E8C4D8B7BA15FFC141C2C3
142 DC771563DFAB03F5B61486F08D0420ED BB4BC8C0DA0F67F067F1E050CCCC4496
143 72DBC7AE27D3F52777C23A5AAD142793 A08EAD92445C042EC35E0E35CCBF4D63
144 E87423730BA482D37D2C5B81998A6E11 E27DBC03E384000E6856245C601C066C
145 485CC3950CF9BBA76EA9A66114D74306 6CEB557795AF089EBA4E64DE032E7B0C
146 EDDC3862D2B887A09387B95D22F28D16 9063E689A041631B5E4221F07C6C2547
147 98D7DDA8C2C3D7A2CEF816D1C57DD25B 4B4DBF8AB4AEFD03A982AD51D10C36B4
148 E59918D7F7440E10E34BB57226B23E3E CADE8C78EE6A226D1371950638D6E524
149 795DD0F1748F2FCC6DA86E78E523A6DB 4D0AF9FDDE099932CCEAE634E6A6E4F2
150 FF374E2BECD41DDFC34EF995BAD74103 53E283C3D30CA9B14B819686A25F04EF
151 79B01497977C38E8CADFBAD60EB67E76 6B1D1EC7F7CA646D4D8D767DD61D9D70
152 A65FC3F7D66DA24E73BBDACD9CE12C94 988849D83BE204C765C6B42BEB78DCDF
153 A60B9669D2C984782CFA89992AE6A9D2 6657BFCA2E87A070AF6045DBEFCCF55F
154 9CAC25C867B7E079DED45D428B2EFCF9 F39D44D3E059E4E01127F65B9FBB20B6
155 4908BBB17763CE521276697474F8D19B 016964D9028D40780288FA31A2BD56F7
156 A7BA8DEA495B0258C1E7782EA394C06A 1A13C5630A767779570AF70E38937996
157 83F052520B2AD979727161DE54D9581C 7D242666DBE8B30EFE5E4830923218A0
158 A08E2045B24736220446C0637C406AB2 AFC79C27120E812F3A767842CEC3F8F4
159 490A2794E95FF3FAF368B3693D3FF730 5CB8795143440BF5481E9B7D3F2BECCC
160 BBDE52C3FBE8CE87E330574E622A72C6 3C5AF926F6E820BA1ADDBC9449CE9AEB
161 FEF29072DCAA31A29FEF6013F989BC3D 10C67B8B791D948F0F946CCF8E6C195E
162 56201529BC79958577F97AB3D0633F0F 010A4F36BBC6229FF7538406754CDC9A
163 F711DA57A41D0B5B846DB5E5C0EAD574 8582DCF8562B6E7F7E66F3354C21A503
164 DD7B13E7479CB46208E84B6DCCF5D7DF 79F9A78684ADCD5BF1BFE7701C18CE01
165 29563BA35966FDDD90AB8DF4F8D46F53 A9C1E15117EE664024EBB66BE44FDD3E
166 6951DF1546B54E9A7902CB6D1F0CCFE8 31BD9E6914FF5D15229DB8AC1315ED84
167 5F9BBBC7778BE7198BEE4284AC65FA5C E825EBCD5AB616A4C376755A70DD5D85
168 4C5242B528B8D14A761C0989779B3E71 7131EC719F72A11319139DD9D9DCA7A5
169 FA3CBBE6139D9465CF5EFC777D1EA6C5 ABE7686EED7024017E1FCAFAA6B87F74
170 02E3AA2BE481A7B4195C3A6435EBEB58 2D11D2406B8E1F2D8029F710E0477610
171 3ED28369F5ACEF0097BB500BDF8D1115 C6240578965F1A4FB77BF238BD903B39
172 38CEDAA0D9D0FBA6829F37D697154869 4A8A4CC4E5F5F8F8809C5F96357942E8
173 91145732A012B25CB686760EDFDBCEA2 D1410B2F2B76ECFA4B2EAFF0C3308013
174 10591AFF4360AFF4EE77EF3D32DB9BF7 DF82591209484A8E43282118EB19E424
175 393952F7A6DD08EC511E329F7F57C94E 81A173BF7CB18B44A8AC7214F662C513
176 5BFE98265BFA6885E6CE29783DCDB264 7C514C2CC9B44C1F490844A9EEC42370
177 DE3A6461E30E89F4C2CFC154D11CB171 7B5E780F51CE26A7A3CFD770C8007984
178 F824D54A780F4FA96F6350D34E8BD760 858DA30DD7E423F22EF0076AE22D19CE
179 00000000000000000000000000000000 90DE09B47285581790DE09B472855817
180 000102030405060708090A0B0C0D0E0F 490621BA1F7A2F9AF3EE13199041B8EF
@@ -0,0 +1,27 @@
Warning: -video none doesn't make much sense without -seconds_to_run
vt1200: screen_update#1 frame=0 clip_y=0..0 screen=1280x901
runC: loaded 180 vectors from /home/arti/code/k-space/vt1200/dwt/evidence/oracle/runC_frame2500/in.txt
vt1200: screen_update#2 frame=0 clip_y=1..900 screen=1280x901
vt1200: scanline#1 line=1 enabled=1
vt1200: guard#1 frame=0 dump_frame=-1 dump_ram=-1
vt1200: screen_update#3 frame=1 clip_y=0..0 screen=1280x901
vt1200: scanline#2 line=0 enabled=1
vt1200: screen_update#4 frame=1 clip_y=1..1 screen=1280x901
vt1200: scanline#3 line=1 enabled=1
vt1200: scanline#4 line=2 enabled=1
runC: frame 2500 hijack pc=3F579970 sp=007F52B0 a14=007DDC90
runC: init returned; @1C0200=0090C8D0 @1C0220=00000000 @1C0240=00000000 @1C0260=00910910
runC: expand returned; keyptr=00910910 fontptr=00000000 renderptr=00000000
runC: seed[0:32]=55F861C7E51311D4C80000000000000000000000000000000000000000000000
runC: key[0:32]=2C3E1F020130080D2D23281F080019120B333920171A00063227333C09041308
runC: 24/180 vectors
runC: 49/180 vectors
runC: 74/180 vectors
runC: 99/180 vectors
runC: 124/180 vectors
runC: 149/180 vectors
runC: 174/180 vectors
runC: 180/180 vectors
runC: free returned; exiting
runC: done (free_run), rc=0
Average speed: 367.02% (35 seconds)
+6
View File
@@ -0,0 +1,6 @@
1 0000000000000000 0000000000000000 90DE09B472855817 90DE09B472855817
2 FFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFF 6A81040BF2294479 6A81040BF2294479
3 0001020304050607 0001020304050607 490621BA1F7A2F9A 490621BA1F7A2F9A
4 8DEC2CF3D0EA0000 8DEC2CF3D0EA0000 BDB2D3E0FC00DB5F BDB2D3E0FC00DB5F
5 C0A863028EEC24F3 C0A863028EEC24F3 E31ECBD30F1E1B93 E31ECBD30F1E1B93
6 0011223344556677 0011223344556677 DF11BB36BA20F348 DF11BB36BA20F348
+123
View File
@@ -0,0 +1,123 @@
MAME debugger version 0.289 (mame0289-dirty)
Currently targeting vt1200 (VT1200 X terminal (v2.2 firmware))
>bclear
^
unknown command
Breakpoint 1 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 2 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 3 set
Breakpoint 4 set
Breakpoint 5 set
Stopped at breakpoint 4
>bclear
^
unknown command
Breakpoint 6 set
Breakpoint 7 set
Stopped at breakpoint 5
>bclear
^
unknown command
Breakpoint 8 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 9 set
Breakpoint A set
Breakpoint B set
Stopped at breakpoint 4
>bclear
^
unknown command
Breakpoint C set
Breakpoint D set
Stopped at breakpoint 5
>bclear
^
unknown command
Breakpoint E set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint F set
Breakpoint 10 set
Breakpoint 11 set
Stopped at breakpoint 4
>bclear
^
unknown command
Breakpoint 12 set
Breakpoint 13 set
Stopped at breakpoint 5
>bclear
^
unknown command
Breakpoint 14 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 15 set
Breakpoint 16 set
Breakpoint 17 set
Stopped at breakpoint 4
>bclear
^
unknown command
Breakpoint 18 set
Breakpoint 19 set
Stopped at breakpoint 5
>bclear
^
unknown command
Breakpoint 1A set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 1B set
Breakpoint 1C set
Breakpoint 1D set
Stopped at breakpoint 4
>bclear
^
unknown command
Breakpoint 1E set
Breakpoint 1F set
Stopped at breakpoint 5
>bclear
^
unknown command
Breakpoint 20 set
Stopped at breakpoint 1
>bclear
^
unknown command
Breakpoint 21 set
Breakpoint 22 set
Breakpoint 23 set
Stopped at breakpoint 4
>bclear
^
unknown command
Breakpoint 24 set
Breakpoint 25 set
Stopped at breakpoint 5
>bclear
^
unknown command
Breakpoint 26 set
Stopped at breakpoint 1
>bclear
^
unknown command
+6
View File
@@ -0,0 +1,6 @@
0000000000000000
ffffffffffffffff
0001020304050607
8dec2cf3d0ea0000
c0a863028eec24f3
0011223344556677
Binary file not shown.
+6
View File
@@ -0,0 +1,6 @@
1 0000000000000000 0000000000000000 90DE09B472855817 90DE09B472855817
2 FFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFF 6A81040BF2294479 6A81040BF2294479
3 0001020304050607 0001020304050607 490621BA1F7A2F9A 490621BA1F7A2F9A
4 8DEC2CF3D0EA0000 8DEC2CF3D0EA0000 BDB2D3E0FC00DB5F BDB2D3E0FC00DB5F
5 C0A863028EEC24F3 C0A863028EEC24F3 E31ECBD30F1E1B93 E31ECBD30F1E1B93
6 0011223344556677 0011223344556677 DF11BB36BA20F348 DF11BB36BA20F348
+20
View File
@@ -0,0 +1,20 @@
Warning: -video none doesn't make much sense without -seconds_to_run
vt1200: screen_update#1 frame=0 clip_y=0..0 screen=1280x901
stages: 6 records
vt1200: screen_update#2 frame=0 clip_y=1..900 screen=1280x901
vt1200: scanline#1 line=1 enabled=1
vt1200: guard#1 frame=0 dump_frame=-1 dump_ram=-1
vt1200: screen_update#3 frame=1 clip_y=0..0 screen=1280x901
vt1200: scanline#2 line=0 enabled=1
vt1200: screen_update#4 frame=1 clip_y=1..1 screen=1280x901
vt1200: scanline#3 line=1 enabled=1
vt1200: scanline#4 line=2 enabled=1
stages: frame 3000 hijack
stages: 1/6 0000000000000000 -> 90DE09B472855817 (in=0000000000000000 pre=90DE09B472855817)
stages: 2/6 FFFFFFFFFFFFFFFF -> 6A81040BF2294479 (in=FFFFFFFFFFFFFFFF pre=6A81040BF2294479)
stages: 3/6 0001020304050607 -> 490621BA1F7A2F9A (in=0001020304050607 pre=490621BA1F7A2F9A)
stages: 4/6 8DEC2CF3D0EA0000 -> BDB2D3E0FC00DB5F (in=8DEC2CF3D0EA0000 pre=BDB2D3E0FC00DB5F)
stages: 5/6 C0A863028EEC24F3 -> E31ECBD30F1E1B93 (in=C0A863028EEC24F3 pre=E31ECBD30F1E1B93)
stages: 6/6 0011223344556677 -> DF11BB36BA20F348 (in=0011223344556677 pre=DF11BB36BA20F348)
stages: done
Average speed: 358.78% (41 seconds)
+95
View File
@@ -0,0 +1,95 @@
-- oracle_call_test.lua -- minimal proof that the firmware's challenge pipeline
-- can be invoked directly from the debugger (no TCP connection).
--
-- Calls 0x3F5A9620(1) (dwt_prf's allocator/init, Ghidra 0x07EB52C4)
-- at frame 1000 and stops at the synthetic return address.
local machine = manager.machine
local cpu = machine.devices[':maincpu']
local dbg = machine.debugger
local space = cpu.spaces['program']
if not dbg then machine:exit(); return end
dbg.visible_cpu = cpu
local ARG = 0x01800000
local STACK = 0x01840000
local RET = 0x018c0000
local IE = 0x200000
local INIT = 0x3F5A9620
local f = 0
local started = false
local saved = {}
local function state(name)
local r = cpu.state[name]
return r and r.value or nil
end
local function push(v)
local sp = state('SP') - 0x20
space:write_u32(sp, v)
cpu.state['SP'].value = sp
end
local function setup_call(target, args)
saved.pc = state('PC')
saved.sp = state('SP')
saved.a14 = state('A14')
saved.st = state('ST')
print(string.format("TEST setup target=%08X pc=%08X sp=%08X a14=%08X st=%08X",
target, saved.pc, saved.sp, saved.a14, saved.st))
cpu.state['SP'].value = STACK
if #args > 0 then
local a = ARG
for i = 1, #args do
space:write_u32(a, args[i])
a = a + 0x20
end
push(saved.a14)
cpu.state['A14'].value = ARG + #args * 0x20
end
push(RET)
cpu.state['PC'].value = target
cpu.state['ST'].value = saved.st & ~IE
dbg:command('bclear')
dbg:command(string.format('bpset %X', RET))
dbg.execution_state = 'run'
end
emu.register_frame_done(function()
f = f + 1
if f == 1000 and not started then
started = true
print(string.format("TEST frame=%d @1C0200=%08X", f, space:read_u32(0x1c0200)))
setup_call(INIT, { 1 })
return
end
if started and saved.pc then
local es = dbg.execution_state
if es == 'stop' then
local pc = state('PC')
print(string.format("TEST stop frame=%d pc=%08X savedpc=%08X", f, pc, saved.pc))
print(string.format("TEST @1C0200=%08X @1C0220=%08X @1C0240=%08X @1C0260=%08X",
space:read_u32(0x1c0200), space:read_u32(0x1c0220),
space:read_u32(0x1c0240), space:read_u32(0x1c0260)))
-- dump 16 bytes at the key pointer if it looks sane
local kp = space:read_u32(0x1c0260)
if kp ~= 0 then
local t = {}
for i = 0, 15 do
t[#t + 1] = string.format("%02X", space:read_u8(kp + i * 8))
end
print("TEST key[0..15]=" .. table.concat(t, " "))
end
dbg:command('bclear')
cpu.state['PC'].value = saved.pc
cpu.state['SP'].value = saved.sp
cpu.state['A14'].value = saved.a14
cpu.state['ST'].value = saved.st
print("TEST restoring and exiting")
machine:exit()
end
end
end, "vt1200-oracle-call-test")
dbg.execution_state = 'run'
+175
View File
@@ -0,0 +1,175 @@
-- oracle_stage.lua -- intermediate-state capture for ONE 8-byte record of the
-- dwt_prf challenge transform.
--
-- Calls the per-record stage 0x3F5ABA40 directly (Ghidra 0x07EB5748) after the
-- same INIT/EXPAND sequence dwt/oracle.lua uses, and stops at two interior
-- points:
--
-- 0x3F5ABB30 immediately after the first font render returns; A13 points
-- at the callee's 8-byte local record -> "feistel_in"
-- 0x3F5AC620 immediately before the final font render; A13+0..7 holds the
-- pre-final-render record -> "pre_final_render"
--
-- Output line: "<index> <input8> <feistel_in> <pre_final> <output8>"
--
-- Inputs: VT1200_ORACLE_IN (one 16-hex-char record per line)
-- Output: VT1200_ORACLE_OUT
-- Env: VT1200_ORACLE_START (default 3000), VT1200_ORACLE_TAG
local machine = manager.machine
local cpu = machine.devices[':maincpu']
local dbg = machine.debugger
local space = cpu.spaces['program']
if not dbg then machine:exit(); return end
dbg.visible_cpu = cpu
local IN_PATH = os.getenv("VT1200_ORACLE_IN")
local OUT_PATH = os.getenv("VT1200_ORACLE_OUT")
local START = tonumber(os.getenv("VT1200_ORACLE_START") or "3000")
local TAG = os.getenv("VT1200_ORACLE_TAG") or "stage"
local ARG = 0x01800000
local STACK = 0x01840000
local CBUF = 0x01880000
local RET = 0x018C0000
local IE = 0x200000
local INIT = 0x3F5A9620
local EXPAND = 0x3F5AA2C0
local RECORD = 0x3F5ABA40
local S1 = 0x3F5ABB30
local S2 = 0x3F5AC620
local SRC = 0x1BE810
local f, stage, idx = 0, "boot", 1
local inputs, out, saved = {}, nil, {}
local s1, s2 = nil, nil
local function state(n)
local r = cpu.state[n]
return r and r.value or nil
end
local function hexbytes(bit, n)
local t = {}
for i = 0, n - 1 do
t[#t + 1] = string.format("%02X", space:read_u8(bit + i * 8))
end
return table.concat(t)
end
local function push(v)
local sp = state('SP') - 0x20
space:write_u32(sp, v)
cpu.state['SP'].value = sp
end
local function call(target, args, extra_bps)
saved.pc, saved.sp, saved.a14, saved.st =
state('PC'), state('SP'), state('A14'), state('ST')
cpu.state['SP'].value = STACK
if #args > 0 then
local a = ARG
for i = 1, #args do
space:write_u32(a, args[i]); a = a + 0x20
end
push(saved.a14)
cpu.state['A14'].value = ARG + #args * 0x20
end
push(RET)
cpu.state['PC'].value = target
cpu.state['ST'].value = saved.st & ~IE
dbg:command('bclear')
dbg:command(string.format('bpset %X', RET))
if extra_bps then
for _, bp in ipairs(extra_bps) do
dbg:command(string.format('bpset %X', bp))
end
end
dbg.execution_state = 'run'
end
local function restore_exit()
dbg:command('bclear')
cpu.state['PC'].value, cpu.state['SP'].value =
saved.pc, saved.sp
cpu.state['A14'].value, cpu.state['ST'].value =
saved.a14, saved.st
if out then out:close() end
print(TAG .. ": done")
machine:exit()
end
local fh = io.open(IN_PATH, "r")
if not fh then print(TAG .. ": no input file"); machine:exit(); return end
for line in fh:lines() do
line = line:gsub("%s+", "")
if #line > 0 and line:sub(1, 1) ~= "#" then
if #line ~= 16 then
print(TAG .. ": bad record length " .. #line); machine:exit(); return
end
inputs[#inputs + 1] = line:upper()
end
end
fh:close()
out = assert(io.open(OUT_PATH, "w"))
print(string.format("%s: %d records", TAG, #inputs))
local function next_record()
if idx > #inputs then restore_exit(); return end
local v = inputs[idx]
for i = 0, 7 do
space:write_u8(CBUF + i * 8, tonumber(v:sub(i * 2 + 1, i * 2 + 2), 16))
space:write_u8(CBUF + (8 + i) * 8, 0)
end
s1, s2 = nil, nil
stage = "rec_run"
call(RECORD, { CBUF }, { S1, S2 })
end
emu.register_frame_done(function()
f = f + 1
if stage == "boot" and f >= START then
print(string.format("%s: frame %d hijack", TAG, f))
stage = "init_run"
call(INIT, { 1 })
return
end
if stage == "boot" then return end
if dbg.execution_state ~= 'stop' then return end
local pc = state('PC')
if stage == "init_run" then
stage = "expand_run"
call(EXPAND, { SRC })
elseif stage == "expand_run" then
stage = "records"
next_record()
elseif stage == "rec_run" then
if pc == S1 then
s1 = hexbytes(state('A13'), 8)
dbg:command('bclear')
dbg:command(string.format('bpset %X', RET))
dbg:command(string.format('bpset %X', S2))
dbg.execution_state = 'run'
elseif pc == S2 then
s2 = hexbytes(state('A13'), 8)
dbg:command('bclear')
dbg:command(string.format('bpset %X', RET))
dbg.execution_state = 'run'
elseif pc == RET then
local res = hexbytes(CBUF, 8)
out:write(string.format("%d %s %s %s %s\n", idx, inputs[idx],
tostring(s1), tostring(s2), res))
out:flush()
print(string.format("%s: %d/%d %s -> %s (in=%s pre=%s)",
TAG, idx, #inputs, inputs[idx], res, tostring(s1), tostring(s2)))
idx = idx + 1
next_record()
else
print(string.format("%s: unexpected stop %08X", TAG, pc))
restore_exit()
end
end
end, "vt1200-dwt-stage")
dbg.execution_state = 'run'
+181
View File
@@ -0,0 +1,181 @@
# dwt_prf challenge transform — runtime oracle (ground truth)
Status: **DONE.** The firmware's `dwt_prf` transform has been driven directly on
the emulated VT1200 with **no TCP connection**, and its input→output behaviour
captured for 180 vector instances (177 distinct 16-byte inputs).
ROM MD5 `b46a3e442ccb86134d2356bd70d22fd2`; no driver edits; private NVRAM.
Deliverables:
| path | what |
|---|---|
| `dwt/oracle.lua` | MAME `-autoboot_script`; calls the firmware's own INIT / EXPAND / TRANSFORM / FREE |
| `dwt/oracle.py` | host driver: deterministic vector generation, two fresh-NVRAM boots, live-probe cross-check, characterisation, JSON writer |
| `dwt/challenge_vectors.json` | the vectors (top-level JSON **array**) |
| `dwt/evidence/oracle/` | per-boot inputs/outputs, full `stdout.log` with seed/key dumps, `characterisation.json` |
## 1. Method — direct invocation of the firmware's own code
`dwt_prf` (`0x3F59FDC0`) performs exactly this sequence around the transform
(disassembly in `harness/mame/hostport_dis34.txt:160152`):
```
0x3F5A9620(1) ; allocate/init (Ghidra 0x07EB52C4)
0x3F5AA2C0(0x1BE810) ; expand key schedule (Ghidra 0x07EB5458)
0x3F5A09C0(buf, 16) ; the transform (Ghidra 0x07EB4138)
0x3F5A9FA0() ; free (Ghidra 0x07EB53F4)
```
`dwt/oracle.lua` calls those same ROM routines in that same order at frame 3000
(OS up, `VT1200_SKIP_LEVEL1=1`), once per run for INIT/EXPAND, then once per
vector for the transform, and FREE at the end. No reply bytes are faked and no
firmware code is bypassed: everything between the calls is the stock firmware.
Calling convention (read from the firmware's call sites, e.g. `3f5a06c0`):
* caller pushes **A14**, writes arguments upward starting at A14, then `CALLA`
pushes the return address;
* a routine called with one or more args ends with `rets 2`, which pops the
return address and the saved A14; a zero-argument routine (`0x3F5A9FA0`)
uses a bare `CALL` and plain `rets`.
The harness supplies a scratch stack at bit `0x01840000` and argument block at
`0x01800000` (top 1 MiB of main RAM, also used by the hello-world payload),
disables ST.IE for the duration, and puts a breakpoint at a synthetic return
address (`0x018C0000`). The interrupted firmware PC, SP, A14 and ST are saved
and restored after every call. `MAME` keeps pumping frame callbacks while the
debugger is halted (`running_machine::run` → `video.frame_update` when paused),
which is what lets the Lua state machine advance one call per stop.
### Validation against live TCP captures
`dwt/evidence/run-live/render-probes.txt` has 11 chosen replies captured through
a **real TCP connection** and the actual `dwt_prf` path. The direct call
reproduces all 11, byte for byte, e.g.
```
live zero reply -> out 90 de 09 b4 72 85 58 17 (x2 records)
direct f(00*8) -> 90 de 09 b4 72 85 58 17 (x2 records)
```
`characterisation.json` records `live_probe_agreement: 11/11`.
## 2. Direction — what the buffer holds before vs after
From the `dwt_prf` disassembly (`3f59ff50`..`3f5a08f0`) and the live dumps
`chal_sent.bin` / `cmp_a9.bin`:
* the terminal picks four 32-bit words `W0..W3` and stores them **host order**
at `frame+0x100` bits — this is the **expected** value;
* it `ntohl`s each word into `frame+0` and sends **those** 16 bytes: the wire
challenge `C`, with `W = ntohl(C)` (per-word byte swap);
* it receives the reply `R`, `ntohl`s each word **in place** → buffer `X`;
* it applies the transform **in place** → `Y = f(X)`;
* it compares `Y` with `W`.
So the firmware transforms the reply, not the challenge. The pass condition is
```
f(ntohl(R)) == W <=> R = ntohl(f^-1(W)) = ntohl(f^-1(ntohl(C)))
```
The vectors' `input_hex` is `X` (post-`ntohl`); `output_hex` is `Y = f(X)`.
An echo `R = C` gives `X = W` and fails unless `f` is the identity; the live
memcmp returns were `0xFFFFFFFF` for echo and `1` for the word-swapped answer,
which is exactly what a non-identity `f` predicts. Live challenge used in the
vectors (one historical capture):
`f32cec8d0000ead00263a8c0f324ec8e`, whose `f` input is
`8dec2cf3d0ea0000c0a863028eec24f3`.
## 3. Characterisation
| property | result | evidence |
|---|---|---|
| **deterministic across boots** | **yes** — 177 distinct inputs identical on two fresh-NVRAM boots; a third boot that hijacks at frame 2500 is also identical | `runA/out.txt` vs `runB/out.txt` vs `runC_frame2500/out.txt` |
| key schedule fixed | yes — seed block `0x1BE810` and full 128-byte key schedule at `@0x1C0260` are identical in both boots (`seed sha256 dafc2461…`, `key sha256 4f897a57…`) | `runA/stdout.log` |
| **per-8-byte independence** | **yes** — records are processed separately; 0/32 independence-grid errors; 64 single-bit changes in record 0 changed record 1's output in **0** cases; a repeated record gives a repeated output | `characterisation.json` |
| **permutation on samples** | 152 distinct inputs → 152 distinct outputs; **0 fixed points** | `characterisation.json` |
| **avalanche** | flip one bit of the first record: **32.66 / 64** output bits change on average (min 23, max 42) | 64 flips of the ascending baseline |
| in-place | yes — the 16-byte buffer is overwritten with the result | `0x3F5A09C0` writes through its argument pointer |
### Intermediate states (`dwt/evidence/oracle/stages.txt`)
`dwt/evidence/scripts/oracle_stage.lua` calls the per-record stage
`0x3F5ABA40` alone and stops at two interior points:
```
0x3F5ABB30 after the first font render returns -> "feistel_in"
0x3F5AC620 before the final font render -> "pre_final_render"
```
For all six captured records `feistel_in == input` and
`pre_final_render == output`. That is not a broken probe: `dwt_prf` calls
INIT with argument **1**, and that mode leaves `@0x1C0220` / `@0x1C0240`
NULL (`0x3F5A9990: dec a9; jreq L3F5A99F0`), so both "font render" calls in
`0x3F5ABA40` take their **memcpy branch** (`0x3FE169C0`, via the
`jrne L3F5AC820` test on the second argument). On this path the advertised
font-render layers are identity copies, and the effective transform is the
16-round Feistel over the 128-byte key schedule expanded from `0x1BE810`
(plus the `0x1BED40/0x1BEF00/0x1BEF80` auxiliary blocks). This does not
contradict the static note that the calls are present; it says what they do
under `dwt_prf`'s mode.
## 4. Vector file
`dwt/challenge_vectors.json` is a **top-level JSON array**:
```json
{"input_hex": "00000000000000000000000000000000",
"output_hex": "90de09b47285581790de09b472855817",
"meta": {"stage": "full", "boot": 2, "kind": "zero", "index": 0}}
```
* `input_hex` — 16 bytes, the transform's input `X` (post-`ntohl` buffer).
* `output_hex` — 16 bytes, `Y = f(X)`.
* `stage` — `full` for every entry; the intermediate per-record values are in
`dwt/evidence/oracle/stages.txt` (columns:
`index input feistel_in pre_final_render output`).
* `boot` — number of independent fresh-NVRAM boots that produced the same
output (2 for every entry).
Load with:
```python
import json
vectors = json.load(open("dwt/challenge_vectors.json"))
for v in vectors:
x = bytes.fromhex(v["input_hex"]); y = bytes.fromhex(v["output_hex"])
```
Composition: 180 instances / 177 distinct inputs — 13 structured specials,
the live wire challenge and its word-swapped form, 11 live-probe inputs,
64 single-bit flips of the ascending baseline's first record, 8 flips of its
second record, a 32-vector independence grid, 48 random inputs, and two
deliberate duplicate inputs (identical outputs).
## 5. Reproduce
```sh
cd /home/arti/code/k-space/vt1200
python3 dwt/oracle.py # two boots + stage capture; ~35 s
# options: --quick (one boot), --no-run (rewrite JSON from saved outputs),
# --skip-stages
```
Each boot is `VT1200_SKIP_LEVEL1=1`, `-video none -sound none -nothrottle`,
`-debug -debugger none`, its own `-nvram_directory` under
`dwt/evidence/oracle/run*/nvram`.
## 6. Caveats
* `VT1200_SKIP_LEVEL1=1` is the documented harness divergence used to reach the
OS (and therefore the same firmware code the live TCP captures reached). It
does not change the transform: the direct outputs equal the live captures.
* The live challenge is time-dependent; the value in the file is one real
capture from `dwt/evidence/run-live/remote-attempt.txt`. Any 16-byte value is
a valid input to `f`.
* "Fixed key" is established for **this** ROM image and boot state: the seed
and auxiliary blocks are boot-constant (two fresh NVRAMs, plus a differently
timed hijack). Nothing here proves another firmware version shares them.
* No live TCP session was used during the vector runs; the live cross-check is
the 11 previously captured probe replies plus the challenge/memcmp dumps.
+51
View File
@@ -197,3 +197,54 @@ tap, BOOTP address 192.168.99.2):
The tap (`tap-mess-1000-0` / bridge `vt1200`) is free again as of 02:40; the
MAME instance and the BOOTP server are stopped. Full write-up:
`dwt/notes/EXPLOIT_ATTEMPT.md`; transcript and logs under `dwt/evidence/`.
## 2026-10-18 02:42 EEST — oracle agent: dwt_prf transform ground truth is captured
Full method and caveats: `dwt/notes/CHALLENGE_ORACLE.md`.
**Vectors:** `dwt/challenge_vectors.json` — a top-level JSON **array** of 180
instances (177 distinct inputs). Load with
`vectors = json.load(open("dwt/challenge_vectors.json"))`; each entry is
`{"input_hex": <32 hex>, "output_hex": <32 hex>, "meta": {...}}`.
`input_hex` is the 16-byte buffer **after** dwt_prf's per-word `ntohl` (the
transform's actual input); `output_hex` is `f(input)` in place. The full
128-byte key schedule and seed-block dumps are in
`dwt/evidence/oracle/runA/stdout.log`.
**Direction (confirmed):** the firmware transforms the reply, not the
challenge. With host-order challenge words `W`, wire challenge
`C = ntohl(W)` (per-32-bit-word byte swap), wire reply `R`:
`X = ntohl(R)`, `Y = f(X)`, and dwt_prf memcmp's `Y` against `W`.
Pass condition: `f(ntohl(R)) == W`, i.e.
`R = ntohl(f^-1(W)) = ntohl(f^-1(ntohl(C)))`. The vectors give `f`, so the
implementation needs the inverse (and the outer word swap).
**Determinism:** yes. 177 distinct inputs give identical outputs on two
fresh-NVRAM boots, and on a third boot that hijacks at a different frame.
Seed block `0x1BE810` and the key schedule `@0x1C0260` are byte-identical
across boots — the key is genuinely fixed for this image.
**Per-8-byte independence:** yes. Records are processed separately: changing
only bytes 0–7 never changes output bytes 8–15 (0/64 single-bit trials), and
32 independence-grid pairs agree. Output for a doubled record is the doubled
output. Permutation on samples: 152 distinct inputs → 152 distinct outputs, no
fixed points. Avalanche: one input bit flips **32.66 of 64** first-record
output bits on average (23–42).
**Two reversing shortcuts found while building the oracle:**
1. **Argument order for a direct call.** `0x3F5A09C0` expects `(len, buf)` in
source order, i.e. `buf` must be the **last** argument written (the callee
reads `*a13(0xffe0)` as the pointer and `*a13(0xffc0)` as the length).
Writing `(buf, 16)` gives a pointer of 16 and will not work.
2. **The two "font render" calls are identity copies on this path.** dwt_prf
calls INIT with mode **1** (`0x3F5A9620(1)`); that mode leaves
`@0x1C0220`/`@0x1C0240` NULL, so `0x3F5ABA40`'s two render calls take their
memcpy branch. Captured per-record intermediates
(`dwt/evidence/oracle/stages.txt`) show `feistel_in == input` and
`pre_final_render == output` for all six samples. The effective transform is
the 16-round Feistel over the key schedule expanded from `0x1BE810` (+ the
`0x1BED40/0x1BEF00/0x1BEF80` auxiliary blocks).
Reproduce: `python3 dwt/oracle.py` (~35 s, two boots + stage capture). No ROM,
driver or `dwt_prf` code was modified; no socket was used for the vectors.
+248
View File
@@ -0,0 +1,248 @@
-- dwt/oracle.lua -- direct-invocation oracle for the VT1200 rdebug `dwt_prf`
-- challenge transform.
--
-- Run as a MAME -autoboot_script. No TCP connection, no driver change, the
-- ROM file is untouched. The script reproduces exactly what dwt_prf does
-- around the transform:
--
-- 0x3F5A9620(1) ; alloc/init tables (Ghidra 0x07EB52C4)
-- 0x3F5AA2C0(0x1BE810) ; expand key schedule (Ghidra 0x07EB5458)
-- 0x3F5A09C0(buf, 16) ; the transform (Ghidra 0x07EB4138)
-- 0x3F5A9FA0() ; free tables (Ghidra 0x07EB53F4)
--
-- by calling those ROM routines with the firmware's own stack convention
-- (caller pushes A14, writes arguments upward from A14, CALLA pushes the
-- return address; callee restores A14 from the stack and `rets 2` pops it).
-- The harness borrows a scratch stack in unused top-of-RAM, pushes a
-- synthetic return address, and stops on a breakpoint there.
--
-- Inputs: VT1200_ORACLE_IN text file, one 32-hex-char (16-byte) input per
-- line; '#' comments and blank lines are skipped.
-- Output: VT1200_ORACLE_OUT one line per vector:
-- "<index> <input hex> <output hex>"
-- Env: VT1200_ORACLE_START frame to hijack the CPU (default 3000)
-- VT1200_ORACLE_TAG label used in log lines (default "oracle")
--
-- The input is the buffer as the transform sees it: the 16 received bytes
-- after dwt_prf's ntohl (i.e. each 32-bit wire word byte-swapped). The
-- output is the in-place transformed buffer that dwt_prf then memcmp's
-- against the host-order challenge words.
local machine = manager.machine
local cpu = machine.devices[':maincpu']
local dbg = machine.debugger
local space = cpu.spaces['program']
if not dbg then machine:exit(); return end
dbg.visible_cpu = cpu
local IN_PATH = os.getenv("VT1200_ORACLE_IN")
local OUT_PATH = os.getenv("VT1200_ORACLE_OUT")
local START = tonumber(os.getenv("VT1200_ORACLE_START") or "3000")
local TAG = os.getenv("VT1200_ORACLE_TAG") or "oracle"
local INTER = os.getenv("VT1200_ORACLE_INTERMEDIATE") == "1"
-- Scratch RAM: the top 1 MiB of the 4 MiB main RAM (bytes 0x300000..).
-- hello-world and the earlier probes also used 0x01800000 without trouble.
local ARG = 0x01800000 -- argument block (A14 target), grows upward
local STACK = 0x01840000 -- scratch stack top, grows downward
local CBUF = 0x01880000 -- 16-byte transform buffer
local RET = 0x018C0000 -- synthetic return address (never executed)
local IE = 0x200000 -- TMS34010 ST.IE (tms34010.cpp: STBIT_IE = 1<<21)
local INIT = 0x3F5A9620
local EXPAND = 0x3F5AA2C0
local TRANSFORM = 0x3F5A09C0
local FREE = 0x3F5A9FA0
local SRC_BLOCK = 0x1BE810 -- 128-byte seed block expanded by EXPAND
local f = 0
local stage = "boot"
local idx = 1
local vectors = {}
local out = nil
local saved = {}
local err = nil
-- ---------------------------------------------------------------- utilities
local function state(name)
local r = cpu.state[name]
return r and r.value or nil
end
local function hexbytes(bitaddr, n)
local t = {}
for i = 0, n - 1 do
t[#t + 1] = string.format("%02X", space:read_u8(bitaddr + i * 8))
end
return table.concat(t)
end
local function dump_lines(label, bitaddr, n)
for off = 0, n - 1, 32 do
local m = math.min(32, n - off)
print(string.format("%s: %s+%03X %s", TAG, label, off,
hexbytes(bitaddr + off * 8, m)))
end
end
local function push(v)
local sp = state('SP') - 0x20
space:write_u32(sp, v)
cpu.state['SP'].value = sp
end
-- Call a firmware routine with the firmware's own convention.
-- args == {} -> bare CALL (routine does `rets`, no pushed A14)
-- args ~= {} -> caller pushes A14, writes args upward, CALLA
local function setup_call(target, args)
saved.pc = state('PC')
saved.sp = state('SP')
saved.a14 = state('A14')
saved.st = state('ST')
cpu.state['SP'].value = STACK
if #args > 0 then
local a = ARG
for i = 1, #args do
space:write_u32(a, args[i])
a = a + 0x20
end
push(saved.a14)
cpu.state['A14'].value = ARG + #args * 0x20
end
push(RET)
cpu.state['PC'].value = target
cpu.state['ST'].value = saved.st & ~IE
dbg:command('bclear')
dbg:command(string.format('bpset %X', RET))
dbg.execution_state = 'run'
end
local function restore_and_exit(rc)
dbg:command('bclear')
if saved.pc then
cpu.state['PC'].value = saved.pc
cpu.state['SP'].value = saved.sp
cpu.state['A14'].value = saved.a14
cpu.state['ST'].value = saved.st
end
if out then out:close() end
print(string.format("%s: done (%s), rc=%s", TAG, stage, tostring(rc)))
machine:exit()
end
-- ---------------------------------------------------------------- start-up
if IN_PATH then
local fh, e = io.open(IN_PATH, "r")
if not fh then
print(TAG .. ": cannot open input " .. tostring(IN_PATH) .. ": " .. tostring(e))
machine:exit()
return
end
for line in fh:lines() do
line = line:gsub("%s+", "")
if #line > 0 and line:sub(1, 1) ~= "#" then
if #line ~= 32 then
print(TAG .. ": bad vector length " .. #line .. ": " .. line)
machine:exit()
return
end
vectors[#vectors + 1] = line:upper()
end
end
fh:close()
end
print(string.format("%s: loaded %d vectors from %s", TAG, #vectors, tostring(IN_PATH)))
if OUT_PATH then
out = io.open(OUT_PATH, "w")
if not out then
print(TAG .. ": cannot open output " .. tostring(OUT_PATH))
machine:exit()
return
end
end
local function write_out(index, inhex, outhex)
if out then
out:write(string.format("%d %s %s\n", index, inhex, outhex))
out:flush()
end
end
local function next_vector()
if idx > #vectors then
-- mirror dwt_prf's teardown, then leave
stage = "free_run"
setup_call(FREE, {})
return
end
local v = vectors[idx]
for i = 0, 15 do
space:write_u8(CBUF + i * 8, tonumber(v:sub(i * 2 + 1, i * 2 + 2), 16))
end
stage = "transform_run"
setup_call(TRANSFORM, { 16, CBUF })
end
-- ---------------------------------------------------------------- main loop
emu.register_frame_done(function()
f = f + 1
if stage == "boot" and f >= START then
print(string.format("%s: frame %d hijack pc=%08X sp=%08X a14=%08X",
TAG, f, state('PC'), state('SP'), state('A14')))
stage = "init_run"
setup_call(INIT, { 1 })
return
end
if stage == "boot" then return end
-- While the debugger is halted the OSD keeps pumping frame updates
-- (running_machine::run -> video.frame_update when paused), so this
-- callback still runs; act once per stop.
if dbg.execution_state ~= 'stop' then return end
local pc = state('PC')
if pc ~= RET then
print(string.format("%s: unexpected stop at %08X in stage %s", TAG, pc, stage))
err = "unexpected stop"
restore_and_exit(1)
return
end
if stage == "init_run" then
print(string.format("%s: init returned; @1C0200=%08X @1C0220=%08X @1C0240=%08X @1C0260=%08X",
TAG, space:read_u32(0x1c0200), space:read_u32(0x1c0220),
space:read_u32(0x1c0240), space:read_u32(0x1c0260)))
stage = "expand_run"
setup_call(EXPAND, { SRC_BLOCK })
elseif stage == "expand_run" then
print(string.format("%s: expand returned; keyptr=%08X fontptr=%08X renderptr=%08X",
TAG, space:read_u32(0x1c0260), space:read_u32(0x1c0220),
space:read_u32(0x1c0240)))
-- Evidence: the seed block and the full 128-byte expanded key schedule,
-- per run. dwt_prf calls INIT(1), so @1C0220/@1C0240 stay NULL and
-- both "font render" steps are memcpy (see notes/CHALLENGE_ORACLE.md).
dump_lines("seed", SRC_BLOCK, 128)
dump_lines("key", space:read_u32(0x1c0260), 128)
dump_lines("aux", 0x1BED40, 0x2C0)
stage = "vectors"
next_vector()
elseif stage == "transform_run" then
local inhex = vectors[idx]
local outhex = hexbytes(CBUF, 16)
write_out(idx, inhex, outhex)
idx = idx + 1
if idx % 25 == 0 or idx > #vectors then
print(string.format("%s: %d/%d vectors", TAG, idx - 1, #vectors))
end
next_vector()
elseif stage == "free_run" then
print(string.format("%s: free returned; exiting", TAG))
restore_and_exit(0)
end
end, "vt1200-dwt-oracle")
dbg.execution_state = 'run'
+447
View File
@@ -0,0 +1,447 @@
#!/usr/bin/env python3
"""Host-side driver for the dwt_prf challenge-transform oracle.
Generates a deterministic vector set, runs the firmware's transform twice (two
independent fresh-NVRAM boots) through dwt/oracle.lua, checks the results
against the live TCP captures in dwt/evidence/run-live/, writes
dwt/challenge_vectors.json and a characterisation report.
Usage:
python3 dwt/oracle.py # full run (two boots), ~2-4 minutes
python3 dwt/oracle.py --quick # one boot, used while developing
python3 dwt/oracle.py --no-run # regenerate inputs and JSON from the
# outputs already in dwt/evidence/oracle/
Conventions (important for the reverser):
input_hex = the 16-byte buffer exactly as the transform sees it, i.e. the
16 bytes received from the wire with each 32-bit word
byte-swapped (dwt_prf's ntohl step, ROM 0x3FB2C140).
output_hex = the in-place transformed buffer that dwt_prf memcmp's against
the host-order challenge words.
"""
from __future__ import annotations
import argparse
import json
import os
import random
import shutil
import subprocess
import sys
import time
from pathlib import Path
PROJECT = Path(__file__).resolve().parent.parent
MAME = os.environ.get("VT1200_MAME", "/home/arti/code/k-space/mame0289/vt1200")
ROMPATH = PROJECT / "harness/mame/roms"
EVID = PROJECT / "dwt/evidence/oracle"
LUA = PROJECT / "dwt/oracle.lua"
STAGE_LUA = PROJECT / "dwt/evidence/scripts/oracle_stage.lua"
VECTORS_JSON = PROJECT / "dwt/challenge_vectors.json"
LIVE_PROBES_PATH = PROJECT / "dwt/evidence/run-live/render-probes.txt"
START_FRAME = int(os.environ.get("VT1200_ORACLE_START", "3000"))
# --------------------------------------------------------------------------
# vector generation
# --------------------------------------------------------------------------
def swap_words(b: bytes) -> bytes:
"""Byte-swap each 32-bit word (the firmware's ntohl, applied in place)."""
out = bytearray()
for i in range(0, len(b), 4):
out += b[i:i + 4][::-1]
return bytes(out)
# The 16-byte challenge a live terminal sent over TCP (dwt/evidence/
# run-live/remote-attempt.txt, dwt/notes/EXPLOIT_ATTEMPT.md section 2).
LIVE_WIRE_CHALLENGE = bytes.fromhex(
"f32cec8d0000ead00263a8c0f324ec8e")
# (name, wire reply bytes, expected first 8 transformed bytes) from
# dwt/evidence/run-live/render-probes.txt. The transform input is the
# wire reply with each word byte-swapped.
LIVE_PROBES = [
("live_zero", bytes(16), "90de09b472855817"),
("live_p0_01", bytes.fromhex("01000000") + bytes(12), "b1975ff1d78d032a"),
("live_p0_02", bytes.fromhex("02000000") + bytes(12), "5865800e5d8c3c55"),
("live_p0_03", bytes.fromhex("03000000") + bytes(12), "ee590df03c2bdbdd"),
("live_p0_10", bytes.fromhex("10000000") + bytes(12), "0b9ab22e400a068f"),
("live_p0_20", bytes.fromhex("20000000") + bytes(12), "362cf798ec8ae918"),
("live_p0_30", bytes.fromhex("30000000") + bytes(12), "9ecae2e539a16357"),
("live_p0_80", bytes.fromhex("80000000") + bytes(12), "57d8297c38f7783b"),
("live_p0_ff", bytes.fromhex("ff000000") + bytes(12), "fc00338c744b2d1b"),
("live_p1_01", bytes.fromhex("00010000") + bytes(12), "21105daed5e13ec5"),
("live_p7_01", bytes.fromhex("0000000000000001") + bytes(8), "46ba798d00e10cdb"),
]
def build_vectors():
"""Return [(hex_input, kind, note_or_None), ...] deterministically."""
items = []
def add(b: bytes, kind: str, note: str | None = None):
assert len(b) == 16, (kind, len(b))
items.append((b.hex(), kind, note))
# --- structured specials -------------------------------------------
add(bytes(16), "zero")
add(b"\xff" * 16, "ones")
add(bytes(range(16)), "ascending")
add(bytes(range(15, -1, -1)), "descending")
add(bytes([0xAA, 0x55] * 8), "alternating_aa55")
add(bytes([0x55, 0xAA] * 8), "alternating_55aa")
add(bytes.fromhex("00" * 8 + "ff" * 8), "half_zero_half_ones")
add(bytes.fromhex("ff" * 8 + "00" * 8), "half_ones_half_zero")
add(bytes.fromhex("8000000000000000" + "00" * 8), "single_msb_first_half")
add(bytes.fromhex("00" * 8 + "8000000000000000"), "single_msb_second_half")
add(bytes.fromhex("7f" + "00" * 15), "byte0_7f")
add(bytes.fromhex("00" * 8 + "01" + "00" * 7), "last_byte_01")
add(bytes.fromhex("0011223344556677") * 2, "repeated_8byte_record")
# --- the live challenge, in both orders ----------------------------
add(LIVE_WIRE_CHALLENGE, "live_wire_challenge",
"the 16 bytes the terminal sent over TCP (wire order)")
add(swap_words(LIVE_WIRE_CHALLENGE), "live_challenge_post_ntohl",
"same challenge after dwt_prf's per-word ntohl; this is f's input")
# --- live probe corpus (validates the direct call) -----------------
for name, wire, _expected in LIVE_PROBES:
add(swap_words(wire), name, "live TCP probe, post-ntohl input")
# --- single-bit flips of a baseline --------------------------------
base = bytes(range(16))
for byte_i in range(8):
for bit in range(8):
v = bytearray(base)
v[byte_i] ^= 1 << bit
add(bytes(v), "flip_first8",
f"ascending baseline, byte {byte_i} bit {bit}")
for byte_i in range(8, 16):
v = bytearray(base)
v[byte_i] ^= 0x01
add(bytes(v), "flip_second8",
f"ascending baseline, byte {byte_i} bit 0")
# --- per-record independence grid ----------------------------------
rng = random.Random(0x771)
halves_a = [bytes(rng.randrange(256) for _ in range(8)) for _ in range(8)]
halves_b = [bytes(rng.randrange(256) for _ in range(8)) for _ in range(8)]
for h in halves_a:
add(h + bytes(8), "indep_a_zero")
add(h + b"\xff" * 8, "indep_a_ones")
for h in halves_b:
add(bytes(8) + h, "indep_b_zero")
add(b"\xff" * 8 + h, "indep_b_ones")
# --- random inputs --------------------------------------------------
for _ in range(48):
add(bytes(rng.randrange(256) for _ in range(16)), "random")
# --- two deliberate duplicates (in-run determinism) -----------------
add(bytes(16), "zero_duplicate", "repeat of the first vector")
add(bytes(range(16)), "ascending_duplicate", "repeat of ascending")
return items
# --------------------------------------------------------------------------
# emulator run
# --------------------------------------------------------------------------
def run_once(tag: str, inputs: list[str]) -> tuple[dict[str, str], Path]:
run_dir = EVID / tag
if run_dir.exists():
shutil.rmtree(run_dir)
(run_dir / "nvram").mkdir(parents=True)
in_path = run_dir / "in.txt"
out_path = run_dir / "out.txt"
in_path.write_text("\n".join(inputs) + "\n")
env = dict(os.environ)
env.update({
"VT1200_SKIP_LEVEL1": "1",
"VT1200_ORACLE_IN": str(in_path),
"VT1200_ORACLE_OUT": str(out_path),
"VT1200_ORACLE_START": str(START_FRAME),
"VT1200_ORACLE_TAG": tag,
})
cmd = [
MAME, "vt1200",
"-rompath", str(ROMPATH),
"-video", "none", "-sound", "none", "-nothrottle",
"-debug", "-debugger", "none", "-debuglog",
"-nvram_directory", str(run_dir / "nvram"),
"-autoboot_script", str(LUA), "-autoboot_delay", "0",
]
t0 = time.time()
with open(run_dir / "stdout.log", "w") as log:
proc = subprocess.run(cmd, cwd=run_dir, env=env, stdout=log,
stderr=subprocess.STDOUT, timeout=1800)
dt = time.time() - t0
print(f"[{tag}] mame exit={proc.returncode} wall={dt:.1f}s")
if not out_path.exists():
raise SystemExit(f"[{tag}] no output file; see {run_dir}/stdout.log")
result = {}
for line in out_path.read_text().splitlines():
parts = line.split()
if len(parts) == 3:
result[parts[1].lower()] = parts[2].lower()
print(f"[{tag}] {len(result)} outputs")
return result, run_dir
# --------------------------------------------------------------------------
# intermediate-state capture (one 8-byte record at a time)
# --------------------------------------------------------------------------
STAGE_RECORDS = [
"0000000000000000",
"ffffffffffffffff",
"0001020304050607",
"8dec2cf3d0ea0000",
"c0a863028eec24f3",
"0011223344556677",
]
def run_stages() -> Path | None:
"""Run the per-record stage capture; returns the combined output path."""
run_dir = EVID / "stages"
if run_dir.exists():
shutil.rmtree(run_dir)
(run_dir / "nvram").mkdir(parents=True)
in_path = run_dir / "in.txt"
out_path = run_dir / "out.txt"
in_path.write_text("\n".join(STAGE_RECORDS) + "\n")
env = dict(os.environ)
env.update({
"VT1200_SKIP_LEVEL1": "1",
"VT1200_ORACLE_IN": str(in_path),
"VT1200_ORACLE_OUT": str(out_path),
"VT1200_ORACLE_START": str(START_FRAME),
"VT1200_ORACLE_TAG": "stages",
})
cmd = [
MAME, "vt1200", "-rompath", str(ROMPATH),
"-video", "none", "-sound", "none", "-nothrottle",
"-debug", "-debugger", "none", "-debuglog",
"-nvram_directory", str(run_dir / "nvram"),
"-autoboot_script", str(STAGE_LUA), "-autoboot_delay", "0",
]
with open(run_dir / "stdout.log", "w") as log:
subprocess.run(cmd, cwd=run_dir, env=env, stdout=log,
stderr=subprocess.STDOUT, timeout=900)
if not out_path.exists():
print(f"[stages] no output; see {run_dir}/stdout.log")
return None
combined = EVID / "stages.txt"
combined.write_text(out_path.read_text())
print(f"[stages] wrote {combined}")
return combined
# --------------------------------------------------------------------------
# checks and characterisation
# --------------------------------------------------------------------------
def hamming(a: bytes, b: bytes) -> int:
return sum(bin(x ^ y).count("1") for x, y in zip(a, b))
def main(argv):
ap = argparse.ArgumentParser()
ap.add_argument("--quick", action="store_true", help="one boot only")
ap.add_argument("--no-run", action="store_true",
help="reuse dwt/evidence/oracle/run*/out.txt")
ap.add_argument("--skip-stages", action="store_true",
help="do not run the intermediate-state capture")
args = ap.parse_args(argv[1:])
EVID.mkdir(parents=True, exist_ok=True)
items = build_vectors()
inputs = [h for h, _k, _n in items]
print(f"{len(items)} vectors")
if args.no_run:
runs = {}
for tag in ("runA", "runB"):
p = EVID / tag / "out.txt"
if not p.exists():
raise SystemExit(f"missing {p}")
runs[tag] = {}
for line in p.read_text().splitlines():
parts = line.split()
if len(parts) == 3:
runs[tag][parts[1].lower()] = parts[2].lower()
run_dirs = {"runA": EVID / "runA", "runB": EVID / "runB"}
else:
runA, dirA = run_once("runA", inputs)
run_dirs = {"runA": dirA}
if args.quick:
runs = {"runA": runA}
else:
runB, dirB = run_once("runB", inputs)
run_dirs["runB"] = dirB
runs = {"runA": runA, "runB": runB}
# Assemble vectors; an input is only emitted once both boots agree.
vectors = []
missing = []
for i, (h, kind, note) in enumerate(items):
outs = [r.get(h) for r in runs.values()]
if any(o is None for o in outs):
missing.append((i, h, kind))
continue
if len(set(outs)) != 1:
print(f"MISMATCH boot outputs for {h}: {outs}")
continue
meta = {"stage": "full", "boot": len(runs), "kind": kind, "index": i}
if note:
meta["note"] = note
vectors.append({"input_hex": h, "output_hex": outs[0], "meta": meta})
if missing:
print(f"WARNING: {len(missing)} vectors missing from a run: {missing[:5]}")
VECTORS_JSON.write_text(json.dumps(vectors, indent=1) + "\n")
print(f"wrote {VECTORS_JSON} ({len(vectors)} vectors)")
# ---------------- intermediate states ------------------------------
stage_path = None
if not args.no_run and not args.skip_stages:
stage_path = run_stages()
if stage_path is None:
stage_path = EVID / "stages.txt" if (EVID / "stages.txt").exists() else None
# ---------------- cross-check against the live TCP probes -----------
by_input = {v["input_hex"]: v["output_hex"] for v in vectors}
live_ok, live_bad = 0, []
for name, wire, expected in LIVE_PROBES:
h = swap_words(wire).hex()
got = by_input.get(h)
if got is not None and got[:16] == expected:
live_ok += 1
else:
live_bad.append((name, h, expected, got))
print(f"live-probe agreement: {live_ok}/{len(LIVE_PROBES)}")
for row in live_bad:
print(" MISMATCH", row)
# ---------------- characterisation ---------------------------------
report = {}
# determinism across boots
common = set(runs["runA"]) & set(runs.get("runB", runs["runA"]))
diffs = [h for h in common if len(runs) > 1 and
runs["runA"][h] != runs["runB"][h]]
report["determinism"] = {
"boots": len(runs),
"inputs_compared": len(common),
"differences": len(diffs),
"first_differences": diffs[:5],
}
# per-record independence from the dedicated grid
def out(h):
return by_input.get(h)
indep_errors = []
for h in [v["input_hex"] for v in vectors if v["meta"]["kind"] == "indep_a_zero"]:
first = bytes.fromhex(h)[:8]
o_zero = out((first + bytes(8)).hex())
o_ones = out((first + b"\xff" * 8).hex())
if o_zero and o_ones and o_zero[:16] != o_ones[:16]:
indep_errors.append(("a", h))
for h in [v["input_hex"] for v in vectors if v["meta"]["kind"] == "indep_b_zero"]:
second = bytes.fromhex(h)[8:]
o_zero = out((bytes(8) + second).hex())
o_ones = out((b"\xff" * 8 + second).hex())
if o_zero and o_ones and o_zero[16:] != o_ones[16:]:
indep_errors.append(("b", h))
report["per_record_independence"] = {
"errors": len(indep_errors),
"examples": indep_errors[:5],
}
# permutation / duplicates / fixed points
distinct_inputs = {}
for v in vectors:
if v["meta"]["kind"].startswith(("random", "flip", "indep")):
distinct_inputs.setdefault(v["input_hex"], v["output_hex"])
out_vals = list(distinct_inputs.values())
report["permutation"] = {
"distinct_inputs": len(distinct_inputs),
"distinct_outputs": len(set(out_vals)),
"fixed_points": [v["input_hex"] for v in vectors
if v["input_hex"] == v["output_hex"]],
}
# avalanche: single-bit flips of the ascending baseline
base = bytes(range(16))
base_out = out(base.hex())
aval = []
record_leaks = 0
if base_out:
base_out_b = bytes.fromhex(base_out)
for v in vectors:
if v["meta"]["kind"] != "flip_first8":
continue
ob = bytes.fromhex(v["output_hex"])
aval.append(hamming(ob[:8], base_out_b[:8]))
if ob[8:] != base_out_b[8:]:
record_leaks += 1
report["avalanche"] = {
"samples": len(aval),
"mean_output_bits_changed_first_record": (
round(sum(aval) / len(aval), 3) if aval else None),
"min": min(aval) if aval else None,
"max": max(aval) if aval else None,
"second_record_changed": record_leaks,
}
# first/second half outputs are identical for a doubled record
doubled = out((bytes.fromhex("0011223344556677") * 2).hex())
report["record_is_repeated"] = bool(
doubled and doubled[:16] == doubled[16:])
# intermediate states: with dwt_prf's INIT(1) the two "font render" calls
# are memcpy (their tables @1C0220/@1C0240 are NULL), so feistel_in ==
# input and pre_final_render == output.
if stage_path and stage_path.exists():
rows = []
for line in stage_path.read_text().splitlines():
p = line.split()
if len(p) == 5:
rows.append(p)
report["intermediate"] = {
"captured": len(rows),
"feistel_in_equals_input": all(r[2] == r[1] for r in rows),
"pre_final_render_equals_output": all(r[3] == r[4] for r in rows),
"file": str(stage_path.relative_to(PROJECT)),
}
# direction / convention notes are static; record the evidence sources
report["direction"] = {
"wire_challenge": LIVE_WIRE_CHALLENGE.hex(),
"challenge_post_ntohl": swap_words(LIVE_WIRE_CHALLENGE).hex(),
"before_transform": "buffer = received 16 bytes with each 32-bit word byte-swapped (dwt_prf ntohl, in place)",
"after_transform": "buffer = f(before) in place; dwt_prf memcmp's it against the host-order challenge words",
"pass_condition": "f(ntohl(reply_on_wire)) == host_order_challenge; reply = ntohl(f^-1(host_order_challenge))",
}
report["live_probe_agreement"] = {
"matched": live_ok,
"total": len(LIVE_PROBES),
"failures": live_bad,
}
report["vector_count"] = len(vectors)
(EVID / "characterisation.json").write_text(json.dumps(report, indent=2) + "\n")
print(json.dumps(report, indent=2))
return 0 if (not live_bad and not diffs and not missing) else 1
if __name__ == "__main__":
sys.exit(main(sys.argv))