Add system-specific boot symbols and CPU instruction tests
Introduced symbol files for various Game Boy systems (CGB, AGB, MGB, SGB) to define boot sequences and functionalities. Included CPU instruction behavior tests, with detailed coverage of standard operations and interrupt handling. Added documentation for test execution and internal framework operations.
This commit is contained in:
80
cpu_instrs/source/common/build_rom.s
Normal file
80
cpu_instrs/source/common/build_rom.s
Normal file
@@ -0,0 +1,80 @@
|
||||
; Build as GB ROM
|
||||
|
||||
.memoryMap
|
||||
defaultSlot 0
|
||||
slot 0 $0000 size $4000
|
||||
slot 1 $C000 size $4000
|
||||
.endMe
|
||||
|
||||
.romBankSize $4000 ; generates $8000 byte ROM
|
||||
.romBanks 2
|
||||
|
||||
.cartridgeType 1 ; MBC1
|
||||
.computeChecksum
|
||||
.computeComplementCheck
|
||||
|
||||
|
||||
;;;; GB ROM header
|
||||
|
||||
; GB header read by bootrom
|
||||
.org $100
|
||||
nop
|
||||
jp reset
|
||||
|
||||
; Nintendo logo required for proper boot
|
||||
.byte $CE,$ED,$66,$66,$CC,$0D,$00,$0B
|
||||
.byte $03,$73,$00,$83,$00,$0C,$00,$0D
|
||||
.byte $00,$08,$11,$1F,$88,$89,$00,$0E
|
||||
.byte $DC,$CC,$6E,$E6,$DD,$DD,$D9,$99
|
||||
.byte $BB,$BB,$67,$63,$6E,$0E,$EC,$CC
|
||||
.byte $DD,$DC,$99,$9F,$BB,$B9,$33,$3E
|
||||
|
||||
; Internal name
|
||||
.ifdef ROM_NAME
|
||||
.byte ROM_NAME
|
||||
.endif
|
||||
|
||||
; CGB/DMG requirements
|
||||
.org $143
|
||||
.ifdef REQUIRE_CGB
|
||||
.byte $C0
|
||||
.else
|
||||
.ifndef REQUIRE_DMG
|
||||
.byte $80
|
||||
.endif
|
||||
.endif
|
||||
|
||||
.org $200
|
||||
|
||||
|
||||
;;;; Shell
|
||||
|
||||
.include "runtime.s"
|
||||
.include "console.s"
|
||||
|
||||
init_runtime:
|
||||
call console_init
|
||||
.ifdef TEST_NAME
|
||||
print_str TEST_NAME,newline,newline
|
||||
.endif
|
||||
ret
|
||||
|
||||
std_print:
|
||||
push af
|
||||
sta SB
|
||||
wreg SC,$81
|
||||
delay 2304
|
||||
pop af
|
||||
jp console_print
|
||||
|
||||
post_exit:
|
||||
call console_show
|
||||
call play_byte
|
||||
forever:
|
||||
wreg NR52,0 ; sound off
|
||||
- jr -
|
||||
|
||||
play_byte:
|
||||
ret
|
||||
|
||||
.ends
|
||||
Reference in New Issue
Block a user