]> git.sur5r.net Git - cc65/blob - libsrc/nes/nes.inc
1ee5ebc8f8b937a979042423926ca47f1857a8b6
[cc65] / libsrc / nes / nes.inc
1 ;
2 ; NES definitions. By Groepaz/Hitmem.
3 ;
4
5
6 ;; FIXME: optimize zeropage usage
7
8 SCREEN_PTR      = $62           ;2
9 CRAM_PTR        = $64           ;2
10 CHARCOLOR       = $66
11 BGCOLOR         = $67
12 RVS             = $68
13 CURS_X          = $69
14 CURS_Y          = $6a
15
16 tickcount       = $6b           ;2
17
18 VBLANK_FLAG     = $70
19
20 ringbuff        = $0200
21 ringwrite       = $71
22 ringread        = $72
23 ringcount       = $73
24
25 ppuhi           = $74
26 ppulo           = $75
27 ppuval          = $76
28
29 screenrows      = (30-1)
30 charsperline    = 32
31 xsize           = charsperline
32
33 ;; PPU defines
34
35 PPU_CTRL1       = $2000
36 PPU_CTRL2       = $2001
37 PPU_STATUS      = $2002
38 PPU_SPR_ADDR    = $2003
39 PPU_SPR_IO      = $2004
40 PPU_VRAM_ADDR1  = $2005
41 PPU_VRAM_ADDR2  = $2006
42 PPU_VRAM_IO     = $2007
43
44 ;; APU defines
45
46 APU_PULSE1CTRL  = $4000         ; Pulse #1 Control Register (W)
47 APU_PULSE1RAMP  = $4001         ; Pulse #1 Ramp Control Register (W)
48 APU_PULSE1FTUNE = $4002         ; Pulse #1 Fine Tune (FT) Register (W)
49 APU_PULSE1CTUNE = $4003         ; Pulse #1 Coarse Tune (CT) Register (W)
50 APU_PULSE2CTRL  = $4004         ; Pulse #2 Control Register (W)
51 APU_PULSE2RAMP  = $4005         ; Pulse #2 Ramp Control Register (W)
52 APU_PULSE2FTUNE = $4006         ; Pulse #2 Fine Tune Register (W)
53 APU_PULSE2STUNE = $4007         ; Pulse #2 Coarse Tune Register (W)
54 APU_TRICTRL1    = $4008         ; Triangle Control Register #1 (W)
55 APU_TRICTRL2    = $4009         ; Triangle Control Register #2 (?)
56 APU_TRIFREQ1    = $400A         ; Triangle Frequency Register #1 (W)
57 APU_TRIFREQ2    = $400B         ; Triangle Frequency Register #2 (W)
58 APU_NOISECTRL   = $400C         ; Noise Control Register #1 (W)
59 ;;APU_ = $400D  ; Unused (???)
60 APU_NOISEFREQ1  = $400E         ; Noise Frequency Register #1 (W)
61 APU_NOISEFREQ2  = $400F         ; Noise Frequency Register #2 (W)
62 APU_MODCTRL     = $4010         ; Delta Modulation Control Register (W)
63 APU_MODDA       = $4011         ; Delta Modulation D/A Register (W)
64 APU_MODADDR     = $4012         ; Delta Modulation Address Register (W)
65 APU_MODLEN      = $4013         ; Delta Modulation Data Length Register (W)
66 APU_SPR_DMA     = $4014         ; Sprite DMA Register (W)
67 APU_CHANCTRL    = $4015         ; Sound/Vertical Clock Signal Register (R)
68 APU_PAD1        = $4016         ; Joypad #1 (RW)
69 APU_PAD2        = $4017         ; Joypad #2/SOFTCLK (RW)
70
71
72 CH_HLINE        = 11
73 CH_VLINE        = 14
74 CH_ULCORNER     = 176
75 CH_URCORNER     = 174
76 CH_LLCORNER     = 173
77 CH_LRCORNER     = 189
78 CH_TTEE         = 178
79 CH_RTEE         = 179
80 CH_BTEE         = 177
81 CH_LTEE         = 171
82 CH_CROSS        = 123
83 CH_CURS_UP      = 145
84 CH_CURS_DOWN    = 17
85 CH_CURS_LEFT    = 157
86 CH_CURS_RIGHT   = 29
87 CH_PI           = 126
88 CH_DEL          = 20
89 CH_INS          = 148
90 CH_ENTER        = 10
91 CH_STOP         = 3
92 CH_ESC          = 27
93