1// From https://problemkaputt.github.io/fullsnes.htm#snesapumaincpucommunicationport
2#[rustfmt::skip]
3pub const SPC700_BOOT_ROM: &[u8; 64] = &[
4    // MOV X, $EF
5    0xCD, 0xEF,
6    // MOV SP, X
7    0xBD,
8    // MOV A, $00
9    0xE8, 0x00,
10    // MOV (X), A
11    0xC6,
12    // DEC X
13    0x1D,
14    // BNE -4
15    0xD0, 0xFC,
16    // MOV ($F4), $AA
17    0x8F, 0xAA, 0xF4,
18    // MOV ($F5), $BB
19    0x8F, 0xBB, 0xF5,
20    // CMP ($F4), $CC
21    0x78, 0xCC, 0xF4,
22    // BNE -5
23    0xD0, 0xFB,
24    // BRA 25
25    0x2F, 0x19,
26    // MOV Y, ($F4)
27    0xEB, 0xF4,
28    // BNE -4
29    0xD0, 0xFC,
30    // CMP Y, ($F4)
31    0x7E, 0xF4,
32    // BNE 11
33    0xD0, 0x0B,
34    // MOV A, ($F5)
35    0xE4, 0xF5,
36    // MOV ($F4), Y
37    0xCB, 0xF4,
38    // MOV (($00)+Y), A
39    0xD7, 0x00,
40    // INC Y
41    0xFC,
42    // BNE -13
43    0xD0, 0xF3,
44    // INC ($01)
45    0xAB, 0x01,
46    // BPL -17
47    0x10, 0xEF,
48    // CMP Y, ($F4)
49    0x7E, 0xF4,
50    // BPL -21
51    0x10, 0xEB,
52    // MOVW YA, ($F6)
53    0xBA, 0xF6,
54    // MOVW ($00), YA
55    0xDA, 0x00,
56    // MOVW YA, ($F4)
57    0xBA, 0xF4,
58    // MOV ($F4), A
59    0xC4, 0xF4,
60    // MOV A, Y
61    0xDD,
62    // MOV X, A
63    0x5D,
64    // BNE -37
65    0xD0, 0xDB,
66    // JMP ($0000+X)
67    0x1F, 0x00, 0x00,
68    // Reset vector ($FFC0)
69    0xC0, 0xFF,
70];