2 ; C128 generic definitions. Stolen from Elite128
6 ; ---------------------------------------------------------------------------
7 ; Zero page, Commodore stuff
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
27 RVS := $F3 ; Reverse output flag
28 SCROLL := $F8 ; Disable scrolling flag
30 BASIC_BUF := $0200 ; Location of command-line
31 BASIC_BUF_LEN = 162 ; Maximum length of command-line
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
45 KBDREPEATRATE := $028b
46 KBDREPEATDELAY := $028c
48 ; ---------------------------------------------------------------------------
62 ; ---------------------------------------------------------------------------
70 ; ---------------------------------------------------------------------------
92 VIC_SPR_EXP_Y := $D017
93 VIC_SPR_EXP_X := $D01D
94 VIC_SPR_MCOLOR := $D01C
95 VIC_SPR_BG_PRIO := $D01B
97 VIC_SPR_MCOLOR0 := $D025
98 VIC_SPR_MCOLOR1 := $D026
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
117 VIC_VIDEO_ADR := $D018
119 VIC_IRR := $D019 ; Interrupt request register
120 VIC_IMR := $D01A ; Interrupt mask register
122 VIC_BORDERCOLOR := $D020
123 VIC_BG_COLOR0 := $D021
124 VIC_BG_COLOR1 := $D022
125 VIC_BG_COLOR2 := $D023
126 VIC_BG_COLOR3 := $D024
129 VIC_KBD_128 := $D02F ; Extended kbd bits (visible in 64 mode)
130 VIC_CLK_128 := $D030 ; Clock rate register (visible in 64 mode)
133 ; ---------------------------------------------------------------------------
170 ; ---------------------------------------------------------------------------
171 ; I/O: VDC (128 only)
173 VDC_INDEX := $D600 ; register address port
174 VDC_DATA := $D601 ; data port
177 VDC_DATA_HI = 18 ; video RAM address (big endian)
180 VDC_RAM_RW = 31 ; RAM port
182 ; ---------------------------------------------------------------------------
183 ; I/O: Complex Interface Adapters
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
217 ; ---------------------------------------------------------------------------
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
229 ; ---------------------------------------------------------------------------
232 SCPU_VIC_Bank1 := $D075
235 SCPU_EnableRegs := $D07E
236 SCPU_DisableRegs:= $D07F