]> git.sur5r.net Git - cc65/blob - asminc/pce.inc
fixed VDC register assignments
[cc65] / asminc / pce.inc
1 ;
2 ; PCE definitions. By Groepaz/Hitmem.
3 ;
4
5 ; FIXME: optimize zeropage usage
6 CURS_X          = $30
7 CURS_Y          = $31
8 SCREEN_PTR      = $32           ;2
9 CHARCOLOR       = $34
10 RVS             = $35
11 BGCOLOR         = $36
12 tickcount       = $37           ;4
13
14 ; FIXME: screen dimensions my change according to selected video mode
15 screenrows      = (224/8)
16 charsperline    = 61
17
18 CH_HLINE        = 1
19 CH_VLINE        = 2
20
21 ; huc6270 - Video Display Controller (VDC)
22
23 VDC_MAWR        = 0             ; Memory Address Write Register
24 VDC_MARR        = 1             ; Memory Address Read Register
25 VDC_VWR         = 2             ; VRAM Write Register (write only)
26 VDC_VRR         = 2             ; VRAM Read Register (read only)
27 VDC_UNK03       = 3             ; (unknown)
28 VDC_UNK04       = 4             ; (unknown)
29 VDC_CR          = 5             ; Control Register
30 VDC_RCR         = 6             ; Raster Counter Register
31 VDC_BXR         = 7             ; Background X-Scroll Register
32 VDC_BYR         = 8             ; Background Y-Scroll Register
33 VDC_MWR         = 9             ; Memory-access Width Register
34 VDC_HSR         = 10            ; Horizontal Sync Register
35 VDC_HDR         = 11            ; Horizontal Display Register
36 VDC_VPR         = 12            ; Vertical synchronous register
37 VDC_VDW         = 13            ; Vertical display register
38 VDC_VCR         = 14            ; Vertical display END position register
39 VDC_DCR         = 15            ; (DMA) Control Register
40 VDC_SOUR        = 16            ; (DMA) Source Register
41 VDC_DESR        = 17            ; (DMA) Destination Register
42 VDC_LENR        = 18            ; (DMA) Length Register
43 VDC_SATB        = 19            ; Sprite Attribute Table
44
45 ; VDC port
46 ; Note: absolute addressing mode must be used when writing to this port
47
48 VDC_CTRL        = $0000
49 VDC_DATA_LO     = $0002
50 VDC_DATA_HI     = $0003
51
52 ; huc6260 - Video Color Encoder (vce)
53
54 ; The DAC has a palette of 512 colours.
55 ; bitmap of the palette data is this: 0000000gggrrrbbb.
56 ; You can read and write the DAC-registers.
57
58 VCE             = $0400         ; base
59
60 VCE_CTRL        = $0400         ; write$00 to reset
61 VCE_ADDR_LO     = $0402         ; LSB of byte offset into palette
62 VCE_ADDR_HI     = $0403         ; MSB of byte offset into palette
63 VCE_DATA_LO     = $0404         ; LSB of 16-bit palette data
64 VCE_DATA_HI     = $0405         ; MSB of 16-bit palette data
65
66 ; programmable sound generator (PSG)
67
68 PSG             = $0800         ; base
69
70 PSG_CHAN_SELECT = $0800
71 PSG_GLOBAL_PAN  = $0801
72 PSG_FREQ_LO     = $0802
73 PSG_FREQ_HI     = $0803
74 PSG_CHAN_CTRL   = $0804
75 PSG_CHAN_PAN    = $0805
76 PSG_CHAN_DATA   = $0806
77 PSG_NOISE       = $0807
78 PSG_LFO_FREQ    = $0808
79 PSG_LFO_CTRL    = $0809
80
81 ; timer
82
83 TIMER           = $0c00         ; base
84
85 TIMER_COUNT     = $0c00
86 TIMER_CTRL      = $0c01
87
88 JOY_CTRL        = $1000
89
90 IRQ_MASK        = $1402
91 IRQ_STATUS      = $1403
92
93 CDR_MEM_DISABLE = $1803
94 CDR_MEM_ENABLE  = $1807
95
96 ; Write VDC register
97 .macro VREG arg1,arg2
98         st0     #arg1
99         st1     #<(arg2)
100         st2     #>(arg2)
101 .endmacro