]> git.sur5r.net Git - cc65/blob - asminc/c128.inc
Fix duplicated variables
[cc65] / asminc / c128.inc
1 ;
2 ; C128 generic definitions. Stolen from Elite128
3 ;
4
5
6 ; ---------------------------------------------------------------------------
7 ; Zero page, Commodore stuff
8
9 TXTPTR          := $3D          ; Pointer into BASIC source code
10 TIME            := $A0          ; 60HZ clock
11 FNAM_LEN        := $B7          ; Length of filename
12 SECADR          := $B9          ; Secondary address
13 DEVNUM          := $BA          ; Device number
14 FNAM            := $BB          ; Address of filename
15 FNAM_BANK       := $C7          ; Bank for filename
16 KEY_COUNT       := $D0          ; Number of keys in input buffer
17 FKEY_COUNT      := $D1          ; Characters for function key
18 MODE            := $D7          ; 40-/80-column mode (bit 7: 80 columns)
19 GRAPHM          := $D8          ; Graphics mode flags (bits 5-7)
20 CHARDIS         := $D9          ; Bit 2 shadow for location $01
21 CURS_X          := $EC          ; Cursor column
22 CURS_Y          := $EB          ; Cursor row
23 SCREEN_PTR      := $E0          ; Pointer to current char in text screen
24 CRAM_PTR        := $E2          ; Pointer to current char in color RAM
25
26 CHARCOLOR       := $F1
27 RVS             := $F3          ; Reverse output flag
28 SCROLL          := $F8          ; Disable scrolling flag
29
30 BASIC_BUF       := $0200        ; Location of command-line
31 BASIC_BUF_LEN   = 162           ; Maximum length of command-line
32
33 FETCH           := $02A2        ; Fetch subroutine in RAM
34 FETVEC          := $02AA        ; Vector patch location for FETCH
35 STASH           := $02AF        ; Stash routine in RAM
36 STAVEC          := $02B9        ; Vector patch location for STASH
37 IRQInd          := $02FD        ; JMP $0000 -- used as indirect IRQ vector
38 PALFLAG         := $0A03        ; $FF=PAL, $00=NTSC
39 INIT_STATUS     := $0A04        ; Flags: Reset/Restore initiation status
40 VM2             := $0A2D        ; VIC-IIe shadow for $D018 -- graphics mode
41 FKEY_LEN        := $1000        ; Function key lengths
42 FKEY_TEXT       := $100A        ; Function key texts
43
44 KBDREPEAT       := $028a
45 KBDREPEATRATE   := $028b
46 KBDREPEATDELAY  := $028c
47
48 ; ---------------------------------------------------------------------------
49 ; Kernal routines
50
51 ; Direct entries
52 CURS_SET        := $CD57
53 CURS_ON         := $CD6F
54 CURS_OFF        := $CD9F
55 CLRSCR          := $C142
56 KBDREAD         := $C006
57 NEWLINE         := $C363
58 PRINT           := $C322
59 NMIEXIT         := $FF33
60 INDFET          := $FF74
61
62 ; ---------------------------------------------------------------------------
63 ; Vectors
64
65 IRQVec          := $0314
66 BRKVec          := $0316
67 NMIVec          := $0318
68 KeyStoreVec     := $033C
69
70 ; ---------------------------------------------------------------------------
71 ; I/O: VIC
72
73 VIC             := $D000
74 VIC_SPR0_X      := $D000
75 VIC_SPR0_Y      := $D001
76 VIC_SPR1_X      := $D002
77 VIC_SPR1_Y      := $D003
78 VIC_SPR2_X      := $D004
79 VIC_SPR2_Y      := $D005
80 VIC_SPR3_X      := $D006
81 VIC_SPR3_Y      := $D007
82 VIC_SPR4_X      := $D008
83 VIC_SPR4_Y      := $D009
84 VIC_SPR5_X      := $D00A
85 VIC_SPR5_Y      := $D00B
86 VIC_SPR6_X      := $D00C
87 VIC_SPR6_Y      := $D00D
88 VIC_SPR7_X      := $D00E
89 VIC_SPR7_Y      := $D00F
90 VIC_SPR_HI_X    := $D010
91 VIC_SPR_ENA     := $D015
92 VIC_SPR_EXP_Y   := $D017
93 VIC_SPR_EXP_X   := $D01D
94 VIC_SPR_MCOLOR  := $D01C
95 VIC_SPR_BG_PRIO := $D01B
96
97 VIC_SPR_MCOLOR0 := $D025
98 VIC_SPR_MCOLOR1 := $D026
99
100 VIC_SPR0_COLOR  := $D027
101 VIC_SPR1_COLOR  := $D028
102 VIC_SPR2_COLOR  := $D029
103 VIC_SPR3_COLOR  := $D02A
104 VIC_SPR4_COLOR  := $D02B
105 VIC_SPR5_COLOR  := $D02C
106 VIC_SPR6_COLOR  := $D02D
107 VIC_SPR7_COLOR  := $D02E
108
109 VIC_CTRL1       := $D011
110 VIC_CTRL2       := $D016
111
112 VIC_HLINE       := $D012
113
114 VIC_LPEN_X      := $D013
115 VIC_LPEN_Y      := $D014
116
117 VIC_VIDEO_ADR   := $D018
118
119 VIC_IRR         := $D019        ; Interrupt request register
120 VIC_IMR         := $D01A        ; Interrupt mask register
121
122 VIC_BORDERCOLOR := $D020
123 VIC_BG_COLOR0   := $D021
124 VIC_BG_COLOR1   := $D022
125 VIC_BG_COLOR2   := $D023
126 VIC_BG_COLOR3   := $D024
127
128 ; 128 stuff:
129 VIC_KBD_128     := $D02F        ; Extended kbd bits (visible in 64 mode)
130 VIC_CLK_128     := $D030        ; Clock rate register (visible in 64 mode)
131
132
133 ; ---------------------------------------------------------------------------
134 ; I/O: SID
135
136 SID             := $D400
137 SID_S1Lo        := $D400
138 SID_S1Hi        := $D401
139 SID_PB1Lo       := $D402
140 SID_PB1Hi       := $D403
141 SID_Ctl1        := $D404
142 SID_AD1         := $D405
143 SID_SUR1        := $D406
144
145 SID_S2Lo        := $D407
146 SID_S2Hi        := $D408
147 SID_PB2Lo       := $D409
148 SID_PB2Hi       := $D40A
149 SID_Ctl2        := $D40B
150 SID_AD2         := $D40C
151 SID_SUR2        := $D40D
152
153 SID_S3Lo        := $D40E
154 SID_S3Hi        := $D40F
155 SID_PB3Lo       := $D410
156 SID_PB3Hi       := $D411
157 SID_Ctl3        := $D412
158 SID_AD3         := $D413
159 SID_SUR3        := $D414
160
161 SID_FltLo       := $D415
162 SID_FltHi       := $D416
163 SID_FltCtl      := $D417
164 SID_Amp         := $D418
165 SID_ADConv1     := $D419
166 SID_ADConv2     := $D41A
167 SID_Noise       := $D41B
168 SID_Read3       := $D41C
169
170 ; ---------------------------------------------------------------------------
171 ; I/O: VDC (128 only)
172
173 VDC_INDEX       := $D600        ; register address port
174 VDC_DATA        := $D601        ; data port
175
176 ; Registers
177 VDC_DATA_HI     = 18            ; video RAM address (big endian)
178 VDC_DATA_LO     = 19
179 VDC_CSET        = 28
180 VDC_RAM_RW      = 31            ; RAM port
181
182 ; ---------------------------------------------------------------------------
183 ; I/O: Complex Interface Adapters
184
185 CIA1            := $DC00
186 CIA1_PRA        := $DC00        ; Port A
187 CIA1_PRB        := $DC01        ; Port B
188 CIA1_DDRA       := $DC02        ; Data direction register for port A
189 CIA1_DDRB       := $DC03        ; Data direction register for port B
190 CIA1_TA         := $DC04        ; 16-bit timer A
191 CIA1_TB         := $DC06        ; 16-bit timer B
192 CIA1_TOD10      := $DC08        ; Time-of-day tenths of a second
193 CIA1_TODSEC     := $DC09        ; Time-of-day seconds
194 CIA1_TODMIN     := $DC0A        ; Time-of-day minutes
195 CIA1_TODHR      := $DC0B        ; Time-of-day hours
196 CIA1_SDR        := $DC0C        ; Serial data register
197 CIA1_ICR        := $DC0D        ; Interrupt control register
198 CIA1_CRA        := $DC0E        ; Control register for timer A
199 CIA1_CRB        := $DC0F        ; Control register for timer B
200
201 CIA2            := $DD00
202 CIA2_PRA        := $DD00
203 CIA2_PRB        := $DD01
204 CIA2_DDRA       := $DD02
205 CIA2_DDRB       := $DD03
206 CIA2_TA         := $DD04
207 CIA2_TB         := $DD06
208 CIA2_TOD10      := $DD08
209 CIA2_TODSEC     := $DD09
210 CIA2_TODMIN     := $DD0A
211 CIA2_TODHR      := $DD0B
212 CIA2_SDR        := $DD0C
213 CIA2_ICR        := $DD0D
214 CIA2_CRA        := $DD0E
215 CIA2_CRB        := $DD0F
216
217 ; ---------------------------------------------------------------------------
218 ; I/O: MMU
219
220 MMU_CR          := $FF00
221 MMU_CFG_CC65    := %00001110    ; Bank 0 with kernal ROM
222 MMU_CFG_RAM0    := %00111111    ; Bank 0 full RAM
223 MMU_CFG_RAM1    := %01111111    ; Bank 1 full RAM
224 MMU_CFG_RAM2    := %10111111    ; Bank 2 full RAM
225 MMU_CFG_RAM3    := %11111111    ; Bank 3 full RAM
226 MMU_CFG_IFROM   := %01010111    ; Bank 1 with Internal Function RAM/ROM
227 MMU_CFG_EFROM   := %01101011    ; Bank 1 with External Function RAM/ROM
228
229 ; ---------------------------------------------------------------------------
230 ; Super CPU
231
232 SCPU_VIC_Bank1  := $D075
233 SCPU_Slow       := $D07A
234 SCPU_Fast       := $D07B
235 SCPU_EnableRegs := $D07E
236 SCPU_DisableRegs:= $D07F
237 SCPU_Detect     := $D0BC