Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
alexbevi
GitHub Repository: alexbevi/BizHawk
Path: blob/master/libsnes/bsnes/snes/smp/iplrom.cpp
2 views
1
#ifdef SMP_CPP
2
3
//this is the IPLROM for the S-SMP coprocessor.
4
//the S-SMP does not allow writing to the IPLROM.
5
//all writes are instead mapped to the extended
6
//RAM region, accessible when $f1.d7 is clear.
7
8
const uint8 SMP::iplrom[64] = {
9
/*ffc0*/ 0xcd, 0xef, //mov x,#$ef
10
/*ffc2*/ 0xbd, //mov sp,x
11
/*ffc3*/ 0xe8, 0x00, //mov a,#$00
12
/*ffc5*/ 0xc6, //mov (x),a
13
/*ffc6*/ 0x1d, //dec x
14
/*ffc7*/ 0xd0, 0xfc, //bne $ffc5
15
/*ffc9*/ 0x8f, 0xaa, 0xf4, //mov $f4,#$aa
16
/*ffcc*/ 0x8f, 0xbb, 0xf5, //mov $f5,#$bb
17
/*ffcf*/ 0x78, 0xcc, 0xf4, //cmp $f4,#$cc
18
/*ffd2*/ 0xd0, 0xfb, //bne $ffcf
19
/*ffd4*/ 0x2f, 0x19, //bra $ffef
20
/*ffd6*/ 0xeb, 0xf4, //mov y,$f4
21
/*ffd8*/ 0xd0, 0xfc, //bne $ffd6
22
/*ffda*/ 0x7e, 0xf4, //cmp y,$f4
23
/*ffdc*/ 0xd0, 0x0b, //bne $ffe9
24
/*ffde*/ 0xe4, 0xf5, //mov a,$f5
25
/*ffe0*/ 0xcb, 0xf4, //mov $f4,y
26
/*ffe2*/ 0xd7, 0x00, //mov ($00)+y,a
27
/*ffe4*/ 0xfc, //inc y
28
/*ffe5*/ 0xd0, 0xf3, //bne $ffda
29
/*ffe7*/ 0xab, 0x01, //inc $01
30
/*ffe9*/ 0x10, 0xef, //bpl $ffda
31
/*ffeb*/ 0x7e, 0xf4, //cmp y,$f4
32
/*ffed*/ 0x10, 0xeb, //bpl $ffda
33
/*ffef*/ 0xba, 0xf6, //movw ya,$f6
34
/*fff1*/ 0xda, 0x00, //movw $00,ya
35
/*fff3*/ 0xba, 0xf4, //movw ya,$f4
36
/*fff5*/ 0xc4, 0xf4, //mov $f4,a
37
/*fff7*/ 0xdd, //mov a,y
38
/*fff8*/ 0x5d, //mov x,a
39
/*fff9*/ 0xd0, 0xdb, //bne $ffd6
40
/*fffb*/ 0x1f, 0x00, 0x00, //jmp ($0000+x)
41
/*fffe*/ 0xc0, 0xff //reset vector location ($ffc0)
42
};
43
44
#endif
45
46