]> Joshua Wise's Git repositories - fpgaboy.git/blobdiff - diag.asm
First attempt at fixing DAA. Add ld (nn), sp.
[fpgaboy.git] / diag.asm
index 50cefe73b0dff3747ce10de9d9d98202859e9b01..3a3d6659ac4ff8ad2e85bed4c338ec35d65f3639 100644 (file)
--- a/diag.asm
+++ b/diag.asm
@@ -1,9 +1,8 @@
-       section "end",HOME[1024]
-       nop
-
        SECTION "a",HOME[$00]
 
-start: jp main
+start: ld a, $AA
+       ld [$FF51], a
+       jr start
        
        section "vbl",HOME[$40]
        jp vbl
@@ -14,6 +13,19 @@ start: jp main
        section "tmro",HOME[$50]
        jp tmro
 
+       SECTION "b",HOME[$100]
+boot:  jr main         ; $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
+
 main:
        ld a, $FF
        ld c, $51
@@ -33,6 +45,9 @@ main:
        ld hl, signon
        call puts
 
+       ld a, $91
+       ld [$FF40], a
+
        call putscreen
        
        ei
@@ -50,59 +65,69 @@ main:
 signon:
        db $0D,$0A,$1B,"[1mFPGABoy Diagnostic ROM",$1B,"[0m",$0D,$0A,0
 
+tiles:
+       db %01111100
+       db %11000110
+       db %11000110
+       db %11111110
+       db %11000110
+       db %11000110
+       db %11000110
+       db %00000000
+       
+       db %11111100
+       db %11000110
+       db %11000110
+       db %11111100
+       db %11000110
+       db %11000110
+       db %11111100
+       db %00000000
+
+       db %01111100
+       db %11000110
+       db %11000010
+       db %11000000
+       db %11000010
+       db %11000110
+       db %01111100
+       db %00000000
+
+       db %11111100
+       db %11000110
+       db %11000110
+       db %11000110
+       db %11000110
+       db %11000110
+       db %11111100
+       db %00000000
+
 putscreen:
+       LD A,$fc                ; $001d  Setup BG palette
+       LD [$FF47],A    ; $001f
+
        ; Wait for vblank
        call .vblwait
 
        ld hl, $8000    ; Copy two tiles.
-       ld a, $AA
-       ld [hli], a
-       ld [hli], a
-       ld a, $55
-       ld [hli], a
-       ld [hli], a
-       ld a, $AA
-       ld [hli], a
-       ld [hli], a
-       ld a, $55
-       ld [hli], a
-       ld [hli], a
-       ld a, $AA
-       ld [hli], a
-       ld [hli], a
-       ld a, $55
-       ld [hli], a
-       ld [hli], a
-       ld a, $AA
-       ld [hli], a
-       ld [hli], a
-       ld a, $55
+       ld de, tiles
+       ld c, $20
+.cloop:        ld a, [de]
+       inc de
        ld [hli], a
        ld [hli], a
+       dec c
        xor a
-       ld [hli], a
-       ld [hli], a
-       ld [hli], a
-       ld [hli], a
-       ld [hli], a
-       ld [hli], a
-       ld [hli], a
-       ld [hli], a
-       ld [hli], a
-       ld [hli], a
-       ld [hli], a
-       ld [hli], a
-       ld [hli], a
-       ld [hli], a
-       ld [hli], a
-       ld [hli], a
+       cp c
+       jr nz, .cloop
        
        ld hl, $9800
 .vloop:        call .vblwait
        ld c, $40
-.loop: ld a, $01
-       ld [hli], a
-       xor a
+       ld b, 0
+.loop: ld a, b
+       inc b
+       and $03
        ld [hli], a
        ld a, h
        cp $9C
@@ -134,30 +159,19 @@ vbl:
        ld [$FF0F], a
 
        ld a, [$FF51]
-       ld b, a
-       and $80
-       cp $80
-       jr nz, .nothing
-       ld c, $0
+       bit 7, a
+       jr z, .nothing
 
-       ld a, b
-       and $1
-       cp c
+       bit 0, a
        call nz, .scyup
        
-       ld a, b
-       and $2
-       cp c
+       bit 1, a
        call nz, .scydown
        
-       ld a, b
-       and $4
-       cp c
+       bit 2, a
        call nz, .scxup
        
-       ld a, b
-       and $8
-       cp c
+       bit 3, a
        call nz, .scxdown
 
 .nothing:
@@ -319,8 +333,8 @@ waitsw:
        ld a,[c]
        cp $0
        jr z,.loop1
-.loop2:
-       ld a,[c]
+
+.loop2:        ld a,[c]
        cp $0
        jr nz,.loop2
        ret
@@ -463,14 +477,14 @@ insntest:
 
 ; Serial port manipulation functions.
 putc:
-       ld c, $50
+       ld c, $53
        push af
 .waitport:
        ld a,[c]
-       cp $00
+       and $01
        jr nz,.waitport
        pop af
-       ld [c],a
+       ld [$FF52],a
        ret
 
 puts:
This page took 0.031748 seconds and 4 git commands to generate.