X-Git-Url: http://git.joshuawise.com/fpgaboy.git/blobdiff_plain/20204e795d54fb0758a79f0abd5fb443c0178a54..039167e484194ff9f12fca2cc474f866a212f0cd:/rom.asm diff --git a/rom.asm b/rom.asm index 02f095b..cd3cf2d 100644 --- a/rom.asm +++ b/rom.asm @@ -16,7 +16,7 @@ main: call waitsw - jp main + jr main signon: db $0D,$0A,$1B,"[1mFPGABoy Diagnostic ROM",$1B,"[0m",$0D,$0A,0 @@ -33,10 +33,10 @@ memtest: ld [hli],a ld a, $DF cp h - jp nz, .wr + jr nz, .wr ld a, $80 cp l - jp nz, .wr + jr nz, .wr ld hl, $C000 ; Read loop .rd: @@ -45,14 +45,14 @@ memtest: ld b,a ld a, [hli] cp b - jp nz, .memfail + jr nz, .memfail ld a, $DF cp h - jp nz, .rd + jr nz, .rd ld a, $80 cp l - jp nz, .rd + jr nz, .rd ld hl, testokstr ; Say we're OK call puts @@ -113,11 +113,11 @@ waitsw: .loop1: ld a,[c] cp b - jp z,.loop1 + jr z,.loop1 .loop2: ld a,[c] cp b - jp nz,.loop2 + jr nz,.loop2 ret waitswstr: @@ -138,28 +138,46 @@ insntest: ld hl, .pushpopfail ld a, d cp b - jp nz,.fail + jr nz,.fail ld a, e cp c - jp nz,.fail + jr nz,.fail ; Test ALU (HL). ld hl, .ff ld a, $FF xor [hl] ld hl, .xorhlfail - jp nz, .fail + jr nz, .fail + + ; Test JP (HL) + ld hl, .jphl + jp [hl] + ld hl, .jphlfail + jr .fail + rst $00 +.jphl: + + ; Test JR + ld a, $FF + ld b, $00 + cp b + jr nz,.jr + ld hl, .jrfail + jr .fail + rst $00 +.jr: ; Test CP. ld hl, .cpfail ld a, $10 ld b, $20 cp b - jp nc,.fail + jr nc,.fail ld a, $20 ld b, $10 cp b - jp c,.fail + jr c,.fail ; Test CPL ld hl, .cplfail @@ -167,7 +185,7 @@ insntest: ld b, $AA cpl cp b - jp nz,.fail + jr nz,.fail ld hl, .ok call puts @@ -183,6 +201,10 @@ insntest: db $FF .xorhlfail: db "XOR [HL] test failed.",$0D,$0A,0 +.jphlfail: + db "JP [HL] test failed.",$0D,$0A,0 +.jrfail: + db "JR test failed.",$0D,$0A,0 .cpfail: db "CP test failed.",$0D,$0A,0 .cplfail: @@ -198,7 +220,7 @@ putc: .waitport: ld a,[c] cp b - jp nz,.waitport + jr nz,.waitport pop af ld [c],a ret @@ -207,9 +229,9 @@ puts: ld a, [hli] ld b, $00 cp b - jp z, .done + jr z, .done call putc - jp puts + jr puts .done: ret