]> git.sur5r.net Git - cc65/blob - asminc/cbm510.inc
Merge branch 'master' into c1p
[cc65] / asminc / cbm510.inc
1 ;
2 ; Zero page variables and I/O definitions for the CBM 510
3 ;
4 ; Taken from a kernal disassembly done by myself in 2000/2001.
5 ;
6 ; 2001-09-13, Ullrich von Bassewitz
7 ; 2013-08-26, Greg King
8
9
10 ;-----------------------------------------------------------------------------
11 ; Zeropage stuff
12
13 ExecReg         := $00          ; Controls execution memory bank
14 IndReg          := $01          ; Controls indirect indexed load-store bank
15
16 TXTPTR          := $85          ; Far pointer into BASIC source code
17
18 ; ---------------------------------------------------------------------------
19 ; Screen size
20
21 XSIZE           = 40
22 YSIZE           = 25
23
24 ;-----------------------------------------------------------------------------
25 ; I/O Definitions
26 ; Note:  These numbers aren't addresses.  They are offsets from the start of
27 ; each chip's register set.  They are used in the indirect indexed addressing
28 ; mode.
29
30 ; I/O  $d800: VIC-II
31
32 VIC_SPR0_X      = $00
33 VIC_SPR0_Y      = $01
34 VIC_SPR1_X      = $02
35 VIC_SPR1_Y      = $03
36 VIC_SPR2_X      = $04
37 VIC_SPR2_Y      = $05
38 VIC_SPR3_X      = $06
39 VIC_SPR3_Y      = $07
40 VIC_SPR4_X      = $08
41 VIC_SPR4_Y      = $09
42 VIC_SPR5_X      = $0A
43 VIC_SPR5_Y      = $0B
44 VIC_SPR6_X      = $0C
45 VIC_SPR6_Y      = $0D
46 VIC_SPR7_X      = $0E
47 VIC_SPR7_Y      = $0F
48 VIC_SPR_HI_X    = $10
49 VIC_SPR_ENA     = $15
50 VIC_SPR_EXP_Y   = $17
51 VIC_SPR_EXP_X   = $1D
52 VIC_SPR_MCOLOR  = $1C
53 VIC_SPR_BG_PRIO = $1B
54
55 VIC_SPR_MCOLOR0 = $25
56 VIC_SPR_MCOLOR1 = $26
57
58 VIC_SPR0_COLOR  = $27
59 VIC_SPR1_COLOR  = $28
60 VIC_SPR2_COLOR  = $29
61 VIC_SPR3_COLOR  = $2A
62 VIC_SPR4_COLOR  = $2B
63 VIC_SPR5_COLOR  = $2C
64 VIC_SPR6_COLOR  = $2D
65 VIC_SPR7_COLOR  = $2E
66
67 VIC_CTRL1       = $11
68 VIC_CTRL2       = $16
69
70 VIC_HLINE       = $12
71
72 VIC_LPEN_X      = $13
73 VIC_LPEN_Y      = $14
74
75 VIC_VIDEO_ADR   = $18
76
77 VIC_IRR         = $19           ; Interrupt request register
78 VIC_IMR         = $1A           ; Interrupt mask register
79
80 VIC_BORDERCOLOR = $20
81 VIC_BG_COLOR0   = $21
82 VIC_BG_COLOR1   = $22
83 VIC_BG_COLOR2   = $23
84 VIC_BG_COLOR3   = $24
85
86
87 ; I/O  $da00: SID 6581
88
89 SID_S1Lo        = $00
90 SID_S1Hi        = $01
91 SID_PB1Lo       = $02
92 SID_PB1Hi       = $03
93 SID_Ctl1        = $04
94 SID_AD1         = $05
95 SID_SUR1        = $06
96
97 SID_S2Lo        = $07
98 SID_S2Hi        = $08
99 SID_PB2Lo       = $09
100 SID_PB2Hi       = $0A
101 SID_Ctl2        = $0B
102 SID_AD2         = $0C
103 SID_SUR2        = $0D
104
105 SID_S3Lo        = $0E
106 SID_S3Hi        = $0F
107 SID_PB3Lo       = $10
108 SID_PB3Hi       = $11
109 SID_Ctl3        = $12
110 SID_AD3         = $13
111 SID_SUR3        = $14
112
113 SID_FltLo       = $15
114 SID_FltHi       = $16
115 SID_FltCtl      = $17
116 SID_Amp         = $18
117 SID_ADConv1     = $19
118 SID_ADConv2     = $1A
119 SID_Noise       = $1B
120 SID_Read3       = $1C
121
122
123 ; I/O  $db00: CIA 6526, Inter Process Communication
124 ; I/O  $dc00: CIA 6526
125
126 .struct CIA
127         PRA     .byte
128         PRB     .byte
129         DDRA    .byte
130         DDRB    .byte
131         .union
132             .struct
133                 TALO    .byte
134                 TAHI    .byte
135             .endstruct
136             TA          .word
137         .endunion
138         .union
139             .struct
140                 TBLO    .byte
141                 TBHI    .byte
142             .endstruct
143             TB          .word
144         .endunion
145         TOD10   .byte
146         TODSEC  .byte
147         TODMIN  .byte
148         TODHR   .byte
149         SDR     .byte
150         ICR     .byte
151         CRA     .byte
152         CRB     .byte
153 .endstruct
154
155
156 ; I/O  $dd00: ACIA 6551
157
158 .struct ACIA
159         DATA    .byte
160         STATUS  .byte
161         CMD     .byte
162         CTRL    .BYTE
163 .endstruct
164
165
166 ; I/O  $de00: Triport #1 6525
167 ; I/O  $df00: Triport #2 6525
168
169 .struct TPI
170         PRA     .byte
171         PRB     .byte
172         .union
173                 PRC     .byte
174                 INT     .byte
175         .endunion
176         DDRA    .byte
177         DDRB    .byte
178         .union
179                 DDRC    .byte
180                 IMR     .byte
181         .endunion
182         CR      .byte
183         AIR     .byte
184 .endstruct
185
186
187 ;-----------------------------------------------------------------------------
188 ; Our video memory address
189
190 COLOR_RAM       := $D400        ; System bank
191
192
193 ;-----------------------------------------------------------------------------
194
195 BASIC_BUF       := $FB5E        ; Bank 0 location of command-line
196 BASIC_BUF_LEN   = 162           ; Maximum length of command-line