; ============================================================================= ; Nintendo Entertainment System hardware symbols ; ============================================================================= ; ----------------------------------------------------------------------------- ; PPU registers ; ----------------------------------------------------------------------------- PPUCTRL = $2000 PPUMASK = $2001 PPUSTATUS = $2002 OAMADDR = $2003 OAMDATA = $2004 PPUSCROLL = $2005 PPUADDR = $2006 PPUDATA = $2007 OAMDMA = $4014 ; ----------------------------------------------------------------------------- ; Controller ports ; ; $4016: ; Write: controller strobe ; Read: controller port 1 ; ; $4017: ; Read: controller port 2 ; Write: APU frame counter ; ----------------------------------------------------------------------------- JOY1 = $4016 JOY2 = $4017 ; ----------------------------------------------------------------------------- ; APU pulse channel 1 ; ----------------------------------------------------------------------------- APUPULSE1CTRL = $4000 APUPULSE1SWEEP = $4001 APUPULSE1TIMERLO = $4002 APUPULSE1TIMERHI = $4003 ; ----------------------------------------------------------------------------- ; APU pulse channel 2 ; ----------------------------------------------------------------------------- APUPULSE2CTRL = $4004 APUPULSE2SWEEP = $4005 APUPULSE2TIMERLO = $4006 APUPULSE2TIMERHI = $4007 ; ----------------------------------------------------------------------------- ; APU triangle channel ; ----------------------------------------------------------------------------- APUTRIANGLECTRL = $4008 APUTRIANGLETIMERLO = $400A APUTRIANGLETIMERHI = $400B ; ----------------------------------------------------------------------------- ; APU noise channel ; ----------------------------------------------------------------------------- APUNOISECTRL = $400C APUNOISEPERIOD = $400E APUNOISELENGTH = $400F ; ----------------------------------------------------------------------------- ; APU DMC channel ; ----------------------------------------------------------------------------- APUDMCCTRL = $4010 APUDMCDIRECT = $4011 APUDMCADDR = $4012 APUDMCLENGTH = $4013 ; ----------------------------------------------------------------------------- ; APU status and frame counter ; ; $4015: ; Write: enable or disable the five APU channels ; Read: channel and interrupt status ; ; $4017: ; Write: APU frame-counter mode and IRQ inhibit ; Read: controller port 2 ; ----------------------------------------------------------------------------- APUSTATUS = $4015 APUFRAMECOUNTER = $4017 ; ----------------------------------------------------------------------------- ; Controller masks ; ----------------------------------------------------------------------------- PAD_RIGHT = $01 PAD_LEFT = $02 PAD_DOWN = $04 PAD_UP = $08 PAD_START = $10 PAD_SELECT = $20 PAD_B = $40 PAD_A = $80 PAD_HORIZONTAL = PAD_LEFT | PAD_RIGHT PAD_VERTICAL = PAD_UP | PAD_DOWN PAD_DPAD = PAD_HORIZONTAL | PAD_VERTICAL