o add mmio to trigger cart irq
o add snes irq handlers o add inline printf asm
This commit is contained in:
parent
aa649c89ee
commit
5dd4904f9c
@ -1,22 +1,34 @@
|
||||
.define debug_pointer $0080
|
||||
.define debug_pointer $080
|
||||
|
||||
.MACRO printf
|
||||
ldy.w #\1 ; load add of the string
|
||||
.MACRO printdb
|
||||
ldy.w #\1 ; load addr of the marco arg string
|
||||
sty.w debug_pointer ; store address in defined mem area
|
||||
ldy #0 ; zero y
|
||||
ldy #0 ; zero y index
|
||||
jsr do_printf
|
||||
.ENDM
|
||||
|
||||
|
||||
.MACRO prints
|
||||
|
||||
ldy.w #++ ; load addr of the marco arg string
|
||||
sty.w debug_pointer ; store address in defined mem area
|
||||
ldy #0 ; zero y index
|
||||
jsr do_printf
|
||||
jmp +++
|
||||
++:
|
||||
.db \1,10,0
|
||||
+++:
|
||||
|
||||
.ENDM
|
||||
|
||||
.BANK 0
|
||||
.SECTION "debug" SEMIFREE
|
||||
|
||||
do_printf:
|
||||
lda (debug_pointer),y ; get address of string
|
||||
sta $3000 ; write to MMIO debug reg
|
||||
iny
|
||||
cmp #0 ; len 5
|
||||
bne do_printf
|
||||
lda (debug_pointer),y ; get address of string via indirect mem area
|
||||
sta $3000 ; write to MMIO debug reg
|
||||
iny ; inc index
|
||||
cmp #0 ; look for null byte
|
||||
bne do_printf
|
||||
rts
|
||||
.ENDs
|
||||
|
||||
@ -34,19 +34,19 @@
|
||||
.ENDSNES
|
||||
|
||||
.SNESNATIVEVECTOR ; Define Native Mode interrupt vector table
|
||||
COP EmptyHandler
|
||||
BRK EmptyHandler
|
||||
ABORT EmptyHandler
|
||||
NMI EmptyHandler
|
||||
IRQ EmptyHandler
|
||||
COP COPHandler
|
||||
BRK BRKHandler
|
||||
ABORT ABRTHandler
|
||||
NMI NMIHandler
|
||||
IRQ IRQHandler
|
||||
.ENDNATIVEVECTOR
|
||||
|
||||
.SNESEMUVECTOR ; Define Emulation Mode interrupt vector table
|
||||
COP EmptyHandler
|
||||
ABORT EmptyHandler
|
||||
NMI EmptyHandler
|
||||
RESET Start
|
||||
IRQBRK EmptyHandler
|
||||
COP EmptyHandler
|
||||
ABORT EmptyHandler
|
||||
NMI EmptyHandler
|
||||
RESET Start
|
||||
IRQBRK EmptyHandler
|
||||
.ENDEMUVECTOR
|
||||
|
||||
.BANK 0 SLOT 0 ; Defines the ROM bank and the slot it is inserted in memory.
|
||||
|
||||
@ -46,21 +46,15 @@ Start_do:
|
||||
; Setup Video modes and other stuff, then turn on the screen
|
||||
jsr SetupVideo
|
||||
|
||||
lda #65
|
||||
sta $3000
|
||||
lda #66
|
||||
sta $3000
|
||||
lda #67
|
||||
sta $3000
|
||||
sei
|
||||
cop
|
||||
prints "Init done"
|
||||
stz $3001
|
||||
|
||||
printf str_COP
|
||||
cop
|
||||
|
||||
lda #65
|
||||
sta $3000
|
||||
lda #66
|
||||
sta $3000
|
||||
lda #67
|
||||
sta $3000
|
||||
lda #$81
|
||||
sta $4200
|
||||
|
||||
Infinity:
|
||||
jmp Infinity ; bwa hahahahaha
|
||||
@ -98,6 +92,28 @@ SetupVideo:
|
||||
plp
|
||||
rts
|
||||
|
||||
;.ENDS
|
||||
|
||||
;.SECTION "IRQHandlers"
|
||||
|
||||
COPHandler:
|
||||
prints "COPHandler"
|
||||
rti
|
||||
|
||||
BRKHandler:
|
||||
prints "BRKHandler"
|
||||
rti
|
||||
ABRTHandler:
|
||||
prints "ABRTHandler"
|
||||
rti
|
||||
NMIHandler:
|
||||
;prints "NMIHandler"
|
||||
rti
|
||||
|
||||
IRQHandler:
|
||||
prints "IRQHandler"
|
||||
rti
|
||||
|
||||
|
||||
str_COP:
|
||||
.db "COP",10,0
|
||||
|
||||
387
snesram.tmproj
387
snesram.tmproj
@ -3,7 +3,7 @@
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>currentDocument</key>
|
||||
<string>tools/bsnes/ppu/bppu/bppu_mmio.cpp</string>
|
||||
<string>snes/irqtest/debug.asm</string>
|
||||
<key>documents</key>
|
||||
<array>
|
||||
<dict>
|
||||
@ -63,20 +63,6 @@
|
||||
<key>firstVisibleLine</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
<key>snes/banktest/header.inc</key>
|
||||
<dict>
|
||||
<key>caret</key>
|
||||
<dict>
|
||||
<key>column</key>
|
||||
<integer>0</integer>
|
||||
<key>line</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
<key>firstVisibleColumn</key>
|
||||
<integer>0</integer>
|
||||
<key>firstVisibleLine</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
<key>snes/banktest/init.inc</key>
|
||||
<dict>
|
||||
<key>caret</key>
|
||||
@ -91,21 +77,79 @@
|
||||
<key>firstVisibleLine</key>
|
||||
<integer>211</integer>
|
||||
</dict>
|
||||
<key>snes/banktest/vram2.asm</key>
|
||||
<key>snes/irqtest/LoadGraphics.asm</key>
|
||||
<dict>
|
||||
<key>caret</key>
|
||||
<dict>
|
||||
<key>column</key>
|
||||
<integer>0</integer>
|
||||
<key>line</key>
|
||||
<integer>91</integer>
|
||||
<integer>45</integer>
|
||||
</dict>
|
||||
<key>firstVisibleColumn</key>
|
||||
<integer>0</integer>
|
||||
<key>firstVisibleLine</key>
|
||||
<integer>43</integer>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
<key>snes/mmio/data.h</key>
|
||||
<key>snes/irqtest/debug.asm</key>
|
||||
<dict>
|
||||
<key>caret</key>
|
||||
<dict>
|
||||
<key>column</key>
|
||||
<integer>0</integer>
|
||||
<key>line</key>
|
||||
<integer>22</integer>
|
||||
</dict>
|
||||
<key>firstVisibleColumn</key>
|
||||
<integer>0</integer>
|
||||
<key>firstVisibleLine</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
<key>snes/irqtest/header.inc</key>
|
||||
<dict>
|
||||
<key>caret</key>
|
||||
<dict>
|
||||
<key>column</key>
|
||||
<integer>0</integer>
|
||||
<key>line</key>
|
||||
<integer>36</integer>
|
||||
</dict>
|
||||
<key>firstVisibleColumn</key>
|
||||
<integer>0</integer>
|
||||
<key>firstVisibleLine</key>
|
||||
<integer>9</integer>
|
||||
</dict>
|
||||
<key>snes/irqtest/init.inc</key>
|
||||
<dict>
|
||||
<key>caret</key>
|
||||
<dict>
|
||||
<key>column</key>
|
||||
<integer>0</integer>
|
||||
<key>line</key>
|
||||
<integer>248</integer>
|
||||
</dict>
|
||||
<key>columnSelection</key>
|
||||
<false/>
|
||||
<key>firstVisibleColumn</key>
|
||||
<integer>0</integer>
|
||||
<key>firstVisibleLine</key>
|
||||
<integer>211</integer>
|
||||
<key>selectFrom</key>
|
||||
<dict>
|
||||
<key>column</key>
|
||||
<integer>0</integer>
|
||||
<key>line</key>
|
||||
<integer>246</integer>
|
||||
</dict>
|
||||
<key>selectTo</key>
|
||||
<dict>
|
||||
<key>column</key>
|
||||
<integer>0</integer>
|
||||
<key>line</key>
|
||||
<integer>248</integer>
|
||||
</dict>
|
||||
</dict>
|
||||
<key>snes/irqtest/intro.asm</key>
|
||||
<dict>
|
||||
<key>caret</key>
|
||||
<dict>
|
||||
@ -119,47 +163,19 @@
|
||||
<key>firstVisibleLine</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
<key>snes/mmio/debug.c</key>
|
||||
<key>snes/irqtest/irqtest.asm</key>
|
||||
<dict>
|
||||
<key>caret</key>
|
||||
<dict>
|
||||
<key>column</key>
|
||||
<integer>0</integer>
|
||||
<key>line</key>
|
||||
<integer>4</integer>
|
||||
<integer>67</integer>
|
||||
</dict>
|
||||
<key>firstVisibleColumn</key>
|
||||
<integer>0</integer>
|
||||
<key>firstVisibleLine</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
<key>snes/mmio/debug.h</key>
|
||||
<dict>
|
||||
<key>caret</key>
|
||||
<dict>
|
||||
<key>column</key>
|
||||
<integer>10</integer>
|
||||
<key>line</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
<key>firstVisibleColumn</key>
|
||||
<integer>0</integer>
|
||||
<key>firstVisibleLine</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
<key>snes/mmio/main.c</key>
|
||||
<dict>
|
||||
<key>caret</key>
|
||||
<dict>
|
||||
<key>column</key>
|
||||
<integer>0</integer>
|
||||
<key>line</key>
|
||||
<integer>7</integer>
|
||||
</dict>
|
||||
<key>firstVisibleColumn</key>
|
||||
<integer>0</integer>
|
||||
<key>firstVisibleLine</key>
|
||||
<integer>5</integer>
|
||||
<integer>49</integer>
|
||||
</dict>
|
||||
<key>tools/bsnes/cart/cart.cpp</key>
|
||||
<dict>
|
||||
@ -189,149 +205,67 @@
|
||||
<key>firstVisibleLine</key>
|
||||
<integer>24</integer>
|
||||
</dict>
|
||||
<key>tools/bsnes/cc.sh</key>
|
||||
<key>tools/bsnes/chip/cmmio/cmmio.cpp</key>
|
||||
<dict>
|
||||
<key>caret</key>
|
||||
<dict>
|
||||
<key>column</key>
|
||||
<integer>0</integer>
|
||||
<integer>1</integer>
|
||||
<key>line</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
<key>firstVisibleColumn</key>
|
||||
<integer>0</integer>
|
||||
<key>firstVisibleLine</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
<key>tools/bsnes/memory/memory.cpp</key>
|
||||
<dict>
|
||||
<key>caret</key>
|
||||
<dict>
|
||||
<key>column</key>
|
||||
<integer>4</integer>
|
||||
<key>line</key>
|
||||
<integer>37</integer>
|
||||
</dict>
|
||||
<key>firstVisibleColumn</key>
|
||||
<integer>0</integer>
|
||||
<key>firstVisibleLine</key>
|
||||
<integer>4</integer>
|
||||
</dict>
|
||||
<key>tools/bsnes/memory/memory.hpp</key>
|
||||
<dict>
|
||||
<key>caret</key>
|
||||
<dict>
|
||||
<key>column</key>
|
||||
<integer>0</integer>
|
||||
<key>line</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
<key>firstVisibleColumn</key>
|
||||
<integer>0</integer>
|
||||
<key>firstVisibleLine</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
<key>tools/bsnes/memory/smemory/mapper/chip.cpp</key>
|
||||
<dict>
|
||||
<key>caret</key>
|
||||
<dict>
|
||||
<key>column</key>
|
||||
<integer>0</integer>
|
||||
<key>line</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
<key>firstVisibleColumn</key>
|
||||
<integer>0</integer>
|
||||
<key>firstVisibleLine</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
<key>tools/bsnes/memory/smemory/mapper/generic.cpp</key>
|
||||
<dict>
|
||||
<key>caret</key>
|
||||
<dict>
|
||||
<key>column</key>
|
||||
<integer>42</integer>
|
||||
<key>line</key>
|
||||
<integer>93</integer>
|
||||
</dict>
|
||||
<key>firstVisibleColumn</key>
|
||||
<integer>0</integer>
|
||||
<key>firstVisibleLine</key>
|
||||
<integer>39</integer>
|
||||
</dict>
|
||||
<key>tools/bsnes/memory/smemory/mapper/system.cpp</key>
|
||||
<dict>
|
||||
<key>caret</key>
|
||||
<dict>
|
||||
<key>column</key>
|
||||
<integer>0</integer>
|
||||
<key>line</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
<key>firstVisibleColumn</key>
|
||||
<integer>0</integer>
|
||||
<key>firstVisibleLine</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
<key>tools/bsnes/memory/smemory/smemory.cpp</key>
|
||||
<dict>
|
||||
<key>caret</key>
|
||||
<dict>
|
||||
<key>column</key>
|
||||
<integer>0</integer>
|
||||
<key>line</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
<key>firstVisibleColumn</key>
|
||||
<integer>0</integer>
|
||||
<key>firstVisibleLine</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
<key>tools/bsnes/ppu/bppu/bppu.cpp</key>
|
||||
<dict>
|
||||
<key>caret</key>
|
||||
<dict>
|
||||
<key>column</key>
|
||||
<integer>0</integer>
|
||||
<key>line</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
<key>firstVisibleColumn</key>
|
||||
<integer>0</integer>
|
||||
<key>firstVisibleLine</key>
|
||||
<integer>67</integer>
|
||||
</dict>
|
||||
<key>tools/bsnes/ppu/bppu/bppu.hpp</key>
|
||||
<dict>
|
||||
<key>caret</key>
|
||||
<dict>
|
||||
<key>column</key>
|
||||
<integer>13</integer>
|
||||
<key>line</key>
|
||||
<integer>166</integer>
|
||||
<integer>17</integer>
|
||||
</dict>
|
||||
<key>columnSelection</key>
|
||||
<false/>
|
||||
<key>firstVisibleColumn</key>
|
||||
<integer>0</integer>
|
||||
<key>firstVisibleLine</key>
|
||||
<integer>134</integer>
|
||||
<integer>0</integer>
|
||||
<key>selectFrom</key>
|
||||
<dict>
|
||||
<key>column</key>
|
||||
<integer>9</integer>
|
||||
<integer>0</integer>
|
||||
<key>line</key>
|
||||
<integer>166</integer>
|
||||
<integer>17</integer>
|
||||
</dict>
|
||||
<key>selectTo</key>
|
||||
<dict>
|
||||
<key>column</key>
|
||||
<integer>13</integer>
|
||||
<integer>1</integer>
|
||||
<key>line</key>
|
||||
<integer>166</integer>
|
||||
<integer>17</integer>
|
||||
</dict>
|
||||
</dict>
|
||||
<key>tools/bsnes/ppu/bppu/bppu_mmio.cpp</key>
|
||||
<key>tools/bsnes/cpu/scpu/memory/memory.cpp</key>
|
||||
<dict>
|
||||
<key>caret</key>
|
||||
<dict>
|
||||
<key>column</key>
|
||||
<integer>1</integer>
|
||||
<key>line</key>
|
||||
<integer>56</integer>
|
||||
</dict>
|
||||
<key>columnSelection</key>
|
||||
<false/>
|
||||
<key>firstVisibleColumn</key>
|
||||
<integer>0</integer>
|
||||
<key>firstVisibleLine</key>
|
||||
<integer>56</integer>
|
||||
<key>selectFrom</key>
|
||||
<dict>
|
||||
<key>column</key>
|
||||
<integer>0</integer>
|
||||
<key>line</key>
|
||||
<integer>56</integer>
|
||||
</dict>
|
||||
<key>selectTo</key>
|
||||
<dict>
|
||||
<key>column</key>
|
||||
<integer>2</integer>
|
||||
<key>line</key>
|
||||
<integer>56</integer>
|
||||
</dict>
|
||||
</dict>
|
||||
<key>tools/bsnes/cpu/scpu/memory/memory.hpp</key>
|
||||
<dict>
|
||||
<key>caret</key>
|
||||
<dict>
|
||||
@ -343,30 +277,30 @@
|
||||
<key>firstVisibleColumn</key>
|
||||
<integer>0</integer>
|
||||
<key>firstVisibleLine</key>
|
||||
<integer>220</integer>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
<key>tools/bsnes/ppu/bppu/bppu_render_mode7.cpp</key>
|
||||
<key>tools/bsnes/cpu/scpu/mmio/mmio.cpp</key>
|
||||
<dict>
|
||||
<key>caret</key>
|
||||
<dict>
|
||||
<key>column</key>
|
||||
<integer>32</integer>
|
||||
<integer>0</integer>
|
||||
<key>line</key>
|
||||
<integer>33</integer>
|
||||
<integer>485</integer>
|
||||
</dict>
|
||||
<key>firstVisibleColumn</key>
|
||||
<integer>0</integer>
|
||||
<key>firstVisibleLine</key>
|
||||
<integer>0</integer>
|
||||
<integer>459</integer>
|
||||
</dict>
|
||||
<key>tools/bsnes/ppu/ppu.cpp</key>
|
||||
<key>tools/bsnes/memory/memory.cpp</key>
|
||||
<dict>
|
||||
<key>caret</key>
|
||||
<dict>
|
||||
<key>column</key>
|
||||
<integer>0</integer>
|
||||
<integer>6</integer>
|
||||
<key>line</key>
|
||||
<integer>0</integer>
|
||||
<integer>22</integer>
|
||||
</dict>
|
||||
<key>firstVisibleColumn</key>
|
||||
<integer>0</integer>
|
||||
@ -376,94 +310,21 @@
|
||||
</dict>
|
||||
<key>openDocuments</key>
|
||||
<array>
|
||||
<string>snes/irqtest/debug.asm</string>
|
||||
<string>tools/bsnes/cpu/scpu/mmio/mmio.cpp</string>
|
||||
<string>tools/bsnes/chip/cmmio/cmmio.cpp</string>
|
||||
<string>tools/bsnes/cpu/scpu/memory/memory.cpp</string>
|
||||
<string>tools/bsnes/memory/memory.cpp</string>
|
||||
<string>tools/bsnes/ppu/ppu.cpp</string>
|
||||
<string>tools/bsnes/ppu/bppu/bppu.cpp</string>
|
||||
<string>tools/bsnes/ppu/bppu/bppu_mmio.cpp</string>
|
||||
<string>tools/bsnes/ppu/bppu/bppu.hpp</string>
|
||||
<string>tools/bsnes/ppu/bppu/bppu_render_mode7.cpp</string>
|
||||
<string>tools/bsnes/cc.sh</string>
|
||||
<string>snes/mmio/main.c</string>
|
||||
<string>snes/mmio/data.h</string>
|
||||
<string>snes/mmio/debug.h</string>
|
||||
<string>snes/mmio/debug.c</string>
|
||||
<string>tools/bsnes/memory/memory.hpp</string>
|
||||
<string>tools/bsnes/cpu/scpu/memory/memory.hpp</string>
|
||||
<string>snes/irqtest/irqtest.asm</string>
|
||||
<string>snes/irqtest/intro.asm</string>
|
||||
<string>snes/irqtest/LoadGraphics.asm</string>
|
||||
<string>snes/irqtest/init.inc</string>
|
||||
<string>snes/irqtest/header.inc</string>
|
||||
</array>
|
||||
<key>showFileHierarchyDrawer</key>
|
||||
<false/>
|
||||
<key>showFileHierarchyPanel</key>
|
||||
<true/>
|
||||
<key>treeState</key>
|
||||
<dict>
|
||||
<key>snesram</key>
|
||||
<dict>
|
||||
<key>isExpanded</key>
|
||||
<true/>
|
||||
<key>subItems</key>
|
||||
<dict>
|
||||
<key>snes</key>
|
||||
<dict>
|
||||
<key>isExpanded</key>
|
||||
<true/>
|
||||
<key>subItems</key>
|
||||
<dict/>
|
||||
</dict>
|
||||
<key>tools</key>
|
||||
<dict>
|
||||
<key>isExpanded</key>
|
||||
<true/>
|
||||
<key>subItems</key>
|
||||
<dict>
|
||||
<key>bsnes</key>
|
||||
<dict>
|
||||
<key>isExpanded</key>
|
||||
<true/>
|
||||
<key>subItems</key>
|
||||
<dict>
|
||||
<key>lib</key>
|
||||
<dict>
|
||||
<key>isExpanded</key>
|
||||
<true/>
|
||||
<key>subItems</key>
|
||||
<dict/>
|
||||
</dict>
|
||||
<key>memory</key>
|
||||
<dict>
|
||||
<key>isExpanded</key>
|
||||
<true/>
|
||||
<key>subItems</key>
|
||||
<dict/>
|
||||
</dict>
|
||||
<key>ppu</key>
|
||||
<dict>
|
||||
<key>isExpanded</key>
|
||||
<true/>
|
||||
<key>subItems</key>
|
||||
<dict>
|
||||
<key>bppu</key>
|
||||
<dict>
|
||||
<key>isExpanded</key>
|
||||
<true/>
|
||||
<key>subItems</key>
|
||||
<dict/>
|
||||
</dict>
|
||||
</dict>
|
||||
</dict>
|
||||
<key>ui_qt</key>
|
||||
<dict>
|
||||
<key>isExpanded</key>
|
||||
<true/>
|
||||
<key>subItems</key>
|
||||
<dict/>
|
||||
</dict>
|
||||
</dict>
|
||||
</dict>
|
||||
</dict>
|
||||
</dict>
|
||||
</dict>
|
||||
</dict>
|
||||
</dict>
|
||||
<key>windowFrame</key>
|
||||
<string>{{0, 58}, {720, 820}}</string>
|
||||
<string>{{0, 59}, {895, 819}}</string>
|
||||
</dict>
|
||||
</plist>
|
||||
|
||||
@ -35,6 +35,12 @@ void CMMIO::mmio_write(unsigned addr, uint8 data) {
|
||||
fprintf(stderr,"%c",data);
|
||||
fflush(stderr);
|
||||
}
|
||||
if (addr == 0x3001){
|
||||
fprintf(stderr,"Trigger IRQ\n");
|
||||
fflush(stderr);
|
||||
cpu.triggerIRQ();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
CMMIO::CMMIO() {
|
||||
|
||||
@ -23,6 +23,10 @@ void sCPU::power() {
|
||||
reset();
|
||||
}
|
||||
|
||||
void sCPU::triggerIRQ() {
|
||||
status.irq_pending = true;
|
||||
}
|
||||
|
||||
void sCPU::reset() {
|
||||
CPU::reset();
|
||||
|
||||
|
||||
@ -88,6 +88,7 @@ public:
|
||||
|
||||
void power();
|
||||
void reset();
|
||||
void triggerIRQ();
|
||||
|
||||
sCPU();
|
||||
~sCPU();
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user