ld hl, signon
call puts
+ ld a, $91
+ ld [$FF40], a
+
call putscreen
ei
db $0D,$0A,$1B,"[1mFPGABoy Diagnostic ROM",$1B,"[0m",$0D,$0A,0
tiles:
- db %11111111
- db %11111111
- db %11000011
- db %11000011
- db %11000011
- db %11000011
- db %11111111
- db %11111111
-
- db %00000000
- db %00000000
- db %00000000
- db %00000000
+ 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 hl, $8000 ; Copy two tiles.
ld de, tiles
- ld c, $10
-.cloop: push hl
- ld h, d
- ld l, e
- ld a, [hl]
+ ld c, $20
+.cloop: ld a, [de]
inc de
- pop hl
ld [hli], a
ld [hli], a
dec c
.vloop: call .vblwait
ld c, $40
ld b, 0
-.loop: inc b
- ld a, b
- and $01
+.loop: ld a, b
+ inc b
+ and $03
ld [hli], a
ld a, h
cp $9C
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: