CP $34 ; $0030
JR NZ, Addr_0027 ; $0032
- LD DE,$00d8 ; $0034 Load 8 additional bytes into Video RAM
+ LD DE,Addr_00D8 ; $0034 Load 8 additional bytes into Video RAM
LD B,$08 ; $0037
Addr_0039:
LD A,[DE] ; $0039
INC HL ; $00a6
RET ; $00a7
-Addr_00A8:
+NintendoLogo:
;Nintendo Logo
DB $CE,$ED,$66,$66,$CC,$0D,$00,$0B,$03,$73,$00,$83,$00,$0C,$00,$0D
DB $00,$08,$11,$1F,$88,$89,$00,$0E,$DC,$CC,$6E,$E6,$DD,$DD,$D9,$99
Addr_00E0:
LD HL,$0104 ; $00e0 ; point HL to Nintendo logo in cart
- LD DE,$00a8 ; $00e3 ; point DE to Nintendo logo in DMG rom
+ LD DE,NintendoLogo ; $00e3 ; point DE to Nintendo logo in DMG rom
Addr_00E6:
LD A,[DE] ; $00e6
LD A,$01 ; $00fc
LD [$FF50],A ; $00fe ;turn off DMG rom
+
+
+ SECTION "b",HOME[$100]
+boot: jr .running ; $0100
+ nop ; $0102
+ nop ; $0103
+ ;Nintendo Logo ; $0104
+ DB $CE,$ED,$66,$66,$CC,$0D,$00,$0B,$03,$73,$00,$83,$00,$0C,$00,$0D
+ DB $00,$08,$11,$1F,$88,$89,$00,$0E,$DC,$CC,$6E,$E6,$DD,$DD,$D9,$99
+ DB $BB,$BB,$67,$63,$6E,$0E,$EC,$CC,$DD,$DC,$99,$9F,$BB,$B9,$33,$3E
+ ;$0134
+ DB $00,$E7,$00,$00,$00,$00,$00,$00, $00,$00,$00,$00,$00,$00,$00,$00
+ ;$0144
+ DB $00,$00,$00,$00,$00,$00,$00,$00, $00,$00,$00,$00,$00,$00,$00,$00
+.running:
+ ld a, $FF
+ ld [$FF51], A
+.diq: jr .diq
1: begin // SPECIAL CASE: cycle does NOT increase linearly with ret!
`EXEC_INC_PC // cycle 1 is skipped if we are not retcc
case (opcode[4:3])
- `INSN_cc_NZ: if (registers[`REG_F][7]) `EXEC_NEWCYCLE
- `INSN_cc_Z: if (~registers[`REG_F][7]) `EXEC_NEWCYCLE
- `INSN_cc_NC: if (registers[`REG_F][4]) `EXEC_NEWCYCLE
- `INSN_cc_C: if (~registers[`REG_F][4]) `EXEC_NEWCYCLE
+ `INSN_cc_NZ: if (`_F[7]) `EXEC_NEWCYCLE
+ `INSN_cc_Z: if (~`_F[7]) `EXEC_NEWCYCLE
+ `INSN_cc_NC: if (`_F[4]) `EXEC_NEWCYCLE
+ `INSN_cc_C: if (~`_F[4]) `EXEC_NEWCYCLE
endcase
`EXEC_READ(`_SP) // retry the read
end