2 ; C64 generic definitions. Stolen from Elite128
6 ; ---------------------------------------------------------------------------
7 ; Zero page, Commodore stuff
9 VARTAB := $2D ; Pointer to start of BASIC variables
10 MEMSIZE := $37 ; Pointer to highest BASIC RAM location (+1)
11 TXTPTR := $7A ; Pointer into BASIC source code
12 TIME := $A0 ; 60 HZ clock
13 FNAM_LEN := $B7 ; Length of filename
14 SECADR := $B9 ; Secondary address
15 DEVNUM := $BA ; Device number
16 FNAM := $BB ; Pointer to filename
17 KEY_COUNT := $C6 ; Number of keys in input buffer
18 RVS := $C7 ; Reverse flag
19 CURS_FLAG := $CC ; 1 = cursor off
20 CURS_BLINK := $CD ; Blink counter
21 CURS_CHAR := $CE ; Character under the cursor
22 CURS_STATE := $CF ; Cursor blink state
23 SCREEN_PTR := $D1 ; Pointer to current char in text screen
24 CURS_X := $D3 ; Cursor column
25 CURS_Y := $D6 ; Cursor row
26 CRAM_PTR := $F3 ; Pointer to current char in color RAM
27 FREKZP := $FB ; Five unused bytes
29 BASIC_BUF := $200 ; Location of command-line
30 BASIC_BUF_LEN = 89 ; Maximum length of command-line
33 CURS_COLOR := $287 ; Color under the cursor
34 PALFLAG := $2A6 ; $01 = PAL, $00 = NTSC
38 KBDREPEATDELAY := $28c
40 ; ---------------------------------------------------------------------------
41 ; Vector and other locations
47 ; ---------------------------------------------------------------------------
53 ; ---------------------------------------------------------------------------
75 VIC_SPR_EXP_Y := $D017
76 VIC_SPR_EXP_X := $D01D
77 VIC_SPR_MCOLOR := $D01C
78 VIC_SPR_BG_PRIO := $D01B
80 VIC_SPR_MCOLOR0 := $D025
81 VIC_SPR_MCOLOR1 := $D026
83 VIC_SPR0_COLOR := $D027
84 VIC_SPR1_COLOR := $D028
85 VIC_SPR2_COLOR := $D029
86 VIC_SPR3_COLOR := $D02A
87 VIC_SPR4_COLOR := $D02B
88 VIC_SPR5_COLOR := $D02C
89 VIC_SPR6_COLOR := $D02D
90 VIC_SPR7_COLOR := $D02E
100 VIC_VIDEO_ADR := $D018
102 VIC_IRR := $D019 ; Interrupt request register
103 VIC_IMR := $D01A ; Interrupt mask register
105 VIC_BORDERCOLOR := $D020
106 VIC_BG_COLOR0 := $D021
107 VIC_BG_COLOR1 := $D022
108 VIC_BG_COLOR2 := $D023
109 VIC_BG_COLOR3 := $D024
112 VIC_KBD_128 := $D02F ; Extended kbd bits (visible in 64 mode)
113 VIC_CLK_128 := $D030 ; Clock rate register (visible in 64 mode)
116 ; ---------------------------------------------------------------------------
153 ; ---------------------------------------------------------------------------
154 ; I/O: VDC (128 only)
159 ; ---------------------------------------------------------------------------
160 ; I/O: Complex Interface Adapters
163 CIA1_PRA := $DC00 ; Port A
164 CIA1_PRB := $DC01 ; Port B
165 CIA1_DDRA := $DC02 ; Data direction register for port A
166 CIA1_DDRB := $DC03 ; Data direction register for port B
167 CIA1_TA := $DC04 ; 16-bit timer A
168 CIA1_TB := $DC06 ; 16-bit timer B
169 CIA1_TOD10 := $DC08 ; Time-of-day tenths of a second
170 CIA1_TODSEC := $DC09 ; Time-of-day seconds
171 CIA1_TODMIN := $DC0A ; Time-of-day minutes
172 CIA1_TODHR := $DC0B ; Time-of-day hours
173 CIA1_SDR := $DC0C ; Serial data register
174 CIA1_ICR := $DC0D ; Interrupt control register
175 CIA1_CRA := $DC0E ; Control register for timer A
176 CIA1_CRB := $DC0F ; Control register for timer B
194 ; ---------------------------------------------------------------------------
197 SCPU_VIC_Bank1 := $D075
200 SCPU_EnableRegs := $D07E
201 SCPU_DisableRegs:= $D07F
205 ; ---------------------------------------------------------------------------
206 ; Processor Port at $01
208 LORAM = $01 ; Enable the basic rom
209 HIRAM = $02 ; Enable the kernal rom
210 IOEN = $04 ; Enable I/O
211 CASSDATA = $08 ; Cassette data
212 CASSPLAY = $10 ; Cassette: Play
213 CASSMOT = $20 ; Cassette motor on
214 TP_FAST = $80 ; Switch Rossmoeller TurboProcess to fast mode
216 RAMONLY = $F8 ; (~(LORAM | HIRAM | IOEN)) & $FF