lazyboy-0.2.0.1: src/Lazyboy/Constants.hs
{-|
Module : Lazyboy.Constants
Description : Constant definitions for Lazyboy
Copyright : (c) Rose 2019
License : BSD3
Maintainer : rose@lain.org.uk
Stability : experimental
Portability : POSIX
This module provides definitions of constants referring to the Game Boy hardware.
-}
module Lazyboy.Constants where
import Data.Word
-- | Work RAM (WRAM) Bank 0
wram0 :: Word16
wram0 = 0xC000
-- | Work RAM (WRAM) Bank 1
wram1 :: Word16
wram1 = 0xD000
-- | Player 1 Joypad
joypad :: Word16
joypad = 0xFF00
-- | LCD Control
lcdc :: Word16
lcdc = 0xFF40
-- | LCD state
lcdstate :: Word16
lcdstate = 0xFF41
-- | Scroll X
scx :: Word16
scx = 0xFF42
-- | Scroll Y
scy :: Word16
scy = 0xFF43
-- | LCDC Y-coordinate
ly :: Word16
ly = 0xFF44
-- | LCDC Y-compare
lyc :: Word16
lyc = 0xFF45
-- | DMA start address
dma :: Word16
dma = 0xFF46
-- | Background Palette Data
bgp :: Word16
bgp = 0xFF47
-- | Video RAM (VRAM)
vram :: Word16
vram = 0x8000
-- | Start of 32x32 tile background map #1
background1 :: Word16
background1 = 0x9800
-- | Start of 32x32 tile background map #2
background2 :: Word16
background2 = 0x9C00
-- | High RAM (HRAM)
hram :: Word16
hram = 0xFF80
-- | OAM
oam :: Word16
oam = 0xFE00
-- | Screen width
screenWidth :: Word8
screenWidth = 160
-- | Screen height
screenHeight :: Word8
screenHeight = 144