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