Från commodore64.se - Datorernas folkvagn
Hoppa till: navigering, sök

Commodore 64 InputOutput Assignments

; Commodore 64 I/O Map
; V1.1 1 Jun 1994
COMMODORE 64 INPUT/OUTPUT ASSIGNMENTS
HEX DECIMAL  BITS DESCRIPTION
0000 0  7-0 MOS 6510 Data Direction 
    Register (xx101111)
    Bit= 1: Output, Bit=0: 
    Input, x=Don't Care 
0001 1   MOS 6510 Micro-Processor
    On-Chip I/O Port 
  0 /LORAM Signal (0=Switch BASIC ROM Out)
  1 /HIRAM Signal (0=Switch Kernal ROM Out)
  2 /CHAREN Signal (O=Swith Char. ROM In)
  3 Cassette Data Output Line
  4 Cassette Switch Sense: 1 = Switch Closed
  5 Cassette Motor Control
   O = ON, 1 = OFF
  6-7 Undefined
D000-D02E 53248-54271 MOS 6566 VIDEO INTERFACE CONTROLLER (VIC)
D000  53248  Sprite O X Pos
D001  53249  Sprite O Y Pos
D002  53250  Sprite 1 X Pos  
D003  53251  Sprite 1 Y Pos  
D004  53252  Sprite 2 X Pos
D005  53253  Sprite 2 Y Pos  
D006  53254  Sprite 3 X Pos  
D007  53255  Sprite 3 Y Pos
D008  53256  Sprite 4 X Pos
D009  53257  Sprite 4 Y Pos
D00A  53258  Sprite 5 X Pos
D00B  53259  Sprite 5 Y Pos
D00C  53260  Sprite 6 X Pos
D00D  53261  Sprite 6 Y Pos
D00E  53262  Sprite 7 X Pos
D00F  53263  Sprite 7 Y Pos
D010  53264  Sprites 0-7 X Pos (msb of X coord.)
D011  53265  VIC Control Register
  7 Raster Compare: (Bit 8) See 53266
  6 Extended Color Text Mode 1 = Enable 
  5 Bit Map Mode. 1 = Enable
  4 Blank Screen to Border Color: O = Blank
  3 Select 24/25 Row Text Display: 1 = 25 Rows
  2-0 Smooth Scroll to Y Dot-Position (0-7)
D012 53266   Read Raster / Write Raster Value for Compare IRQ
D013 53267   Light-Pen Latch X Pos
D014 53268   Light-Pen Latch Y Pos
D015 53269   Sprite display Enable: 1 = Enable
D016 53270   VIC Control Register
  7-6 Unused
  5 ALWAYS SET THIS BIT TO 0 !
  4 Multi-Color Mode: 1 = Enable (Text or Bit-Map)
  3 Select 38/40 Column Text Display: 1 = 40 Cols
  2-0 Smooth Scroll to X Pos
D017 53271   Sprites O-7 Expand 2x Vertical (Y)
D018 53272   VIC Memory Control Register
  7-4 Video Matrix Base Address (inside VIC)
  3-1 Character Dot-Data Base Address (inside VIC)
  0 Select upper/lower Character Set
D019 53273   VIC Interrupt Flag Register (Bit = 1: IRQ Occurred)
  7 Set on Any Enabled VIC IRQ Condition
  3 Light-Pen Triggered IRQ Flag
  2 Sprite to Sprite Collision IRQ Flag
  1 Sprite to Background Collision IRQ Flag
  0 Raster Compare IRQ Flag
D01A 53274   IRQ Mask Register: 1 = Interrupt Enabled
D01B 53275   Sprite to Background Display Priority: 1 = Sprite
D01C 53276   Sprites O-7 Multi-Color Mode Select: 1 = M.C.M.
D01D 53277   Sprites 0-7 Expand 2x Horizontal (X)
D01E 53278   Sprite to Sprite Collision Detect
D01F 53279   Sprite to Background Collision Detect
D020 53280   Border Color
D021 53281   Background Color O
D022 53282   Background Color 1
D023 53283   Background Color 2
D024 53284   Background Color 3
D025 53285   Sprite Multi-Color Register 0
D026 53286   Sprite Multi-Color Register 1
D027 53287   Sprite O Color
D028 53288   Sprite 1 Color
D029 53289   Sprite 2 Color
D02A 53290   Sprite 3 Color
D02B 53291   Sprite 4 Color
D02C 53292   Sprite 5 Color
D02D 53293   Sprite 6 Color
D02E 53294   Sprite 7 Color
D400-D7FF 54272-55295 MOS 6581 SOUND INTERFACE DEVICE (SID)
D400 54272   Voice 1: Frequency Control - Low-Byte
D401 54273   Voice 1: Frequency Control - High-Byte
D402 54274   Voice 1: Pulse Waveform Width - Low-Byte
D403 54275  7-4 Unused
  3-0 Voice 1: Pulse Waveform Width - High-Nybble
D404 54276   Voice 1: Control Register
  7 Select Random Noise Waveform, 1 = On
  6 Select Pulse Waveform, 1 = On
  5 Select Sawtooth Waveform, 1 = On
  4 Select Triangle Waveform, 1 = On
  3 Test Bit: 1 = Disable Oscillator 1
  2 Ring Modulate Osc. 1 with Osc. 3 Output, 1 = On
  1 Synchronize Osc. 1 with Osc. 3 Frequency, 1 = On
  0 Gate Bit: 1 = Start Att/Dec/Sus, 0 = Start Release
D405 54277   Envelope Generator 1: Attack / Decay Cycle Control
  7-4 Select Attack Cycle Duration: O-15
  3-0 Select Decay Cycle Duration: 0-15
D406 54278   Envelope Generator 1: Sustain / Release Cycle Control
  7-4 Select Sustain Cycle Duration: O-15
  3-0 Select Release Cycle Duration: O-15
D407 54279   Voice 2: Frequency Control - Low-Byte
D408 54280   Voice 2: Frequency Control - High-Byte
D409 54281   Voice 2: Pulse Waveform Width - Low-Byte
D40A 54282  7-4 Unused
  3-0 Voice 2: Pulse Waveform Width - High-Nybble
D40B 54283   Voice 2: Control Register
  7 Select Random Noise Waveform, 1 = On
  6 Select Pulse Waveform, 1 = On
  5 Select Sawtooth Waveform, 1 = On
  4 Select Triangle Waveform, 1 = On
  3 Test Bit: 1 = Disable Oscillator 1
  2 Ring Modulate Osc. 2 with Osc. 1 Output, 1 = On
  1 Synchronize Osc. 2 with Osc. 1 Frequency, 1 = On
  0 Gate Bit: 1 = Start Att/Dec/Sus, 0 = Start Release
D40C 54284   Envelope Generator 2: Attack / Decay Cycle Control
  7-4 Select Attack Cycle Duration: O-15
  3-0 Select Decay Cycle Duration: 0-15
D40D 54285   Envelope Generator 2: Sustain / Release Cycle Control
  7-4 Select Sustain Cycle Duration: O-15
  3-0 Select Release Cycle Duration: O-15
D40E 54286   Voice 3: Frequency Control - Low-Byte
D40F 54287   Voice 3: Frequency Control - High-Byte
D410 54288   Voice 3: Pulse Waveform Width - Low-Byte
D411 54289  7-4 Unused
  3-0 Voice 3: Pulse Waveform Width - High-Nybble
D412 54290   Voice 3: Control Register
  7 Select Random Noise Waveform, 1 = On
  6 Select Pulse Waveform, 1 = On
  5 Select Sawtooth Waveform, 1 = On
  4 Select Triangle Waveform, 1 = On
  3 Test Bit: 1 = Disable Oscillator 1
  2 Ring Modulate Osc. 3 with Osc. 2 Output, 1 = On
  1 Synchronize Osc. 3 with Osc. 2 Frequency, 1 = On
  0 Gate Bit: 1 = Start Att/Dec/Sus, 0 = Start Release
D413 54291  Envelope Generator 3: Attac/Decay Cycle Control 
  7-4 Select Attack Cycle Duration: O-15
  3-0 Select Decay Cycle Duration: 0-15
D414 54285   Envelope Generator 3: Sustain / Release Cycle Control
  7-4 Select Sustain Cycle Duration: O-15
  3-0 Select Release Cycle Duration: O-15
D415 54293   Filter Cutoff Frequency: Low-Nybble (Bits 2-O)
D416 54294   Filter Cutoff Frequency: High-Byte
D417 54295   Filter Resonance Control / Voice Input Control
  7-4 Select Filter Resonance: 0-15
  3 Filter External Input: 1 = Yes, 0 = No
  2 Filter Voice 3 Output: 1 = Yes, 0 = No
   Filter Voice 2 Output: 1 = Yes, 0 = No
  0 Filter Voice 1 Output: 1 = Yes, 0 = No
D418 54296   Select Filter Mode and Volume
  7 Cut-Off Voice 3 Output: 1 = Off, O = On
  6 Select Filter High-Pass Mode: 1 = On
  5 Select Filter Band-Pass Mode: 1 = On
  4 Select Filter Low-Pass Mode: 1 = On
  3-0 Select Output Volume: 0-15
D419 54297   Analog/Digital Converter: Game Paddle 1 (O-255)
D41A 54298   Analog/Digital Converter Game Paddle 2 (O-255)
D41B 54299   Oscillator 3 Random Number Generator
D41C 54230   Envelope Generator 3 Output
D500-D7FF 54528-55295 SID IMAGES
D800-DBFF 55296-56319 Color RAM (Nybbles)
DC00-DCFF 56320-56575 MOS 6526 Complex Interface Adapter (CIA) #1
DC00 56320   Data Port A (Keyboard, Joystick, Paddles, Light-Pen)
  7-0 Write Keyboard Column Values for Keyboard Scan
  7-6 Read Paddles on Port A / B (01 = Port A, 10 = Port B)
  4 Joystick A Fire Button: 1 = Fire
  3-2 Paddle Fire Buttons
  3-0 Joystick A Direction (0-15)
DC01 56321   Data Port B (Keyboard, Joystick, Paddles): Game Port 1
  7-0 Read Keyboard Row Values for Keyboard Scan
  7 Timer B Toggle/Pulse Output
  6 Timer A: Toggle/Pulse Output
  4 Joystick 1 Fire Button: 1 = Fire
  3-2 Paddle Fire Buttons
  3-0 Joystick 1 Direction
DC02 56322   Data Direction Register - Port A (56320)
DC03 56323   Data Direction Register - Port B (56321)
DC04 56324   Timer A: Low-Byte
DC05 56325   Timer A: High-Byte
DC06 56326   Timer B: Low-Byte
DC07 56327   Timer B: High-Byte
DC08 56328   Time-of-Day Clock: 1/10 Seconds
DC09 56329   Time-of-Day Clock: Seconds
DC0A 56330   Time-of-Day Clock: Minutes
DC0B 56331   Time-of-Day Clock: Hours + AM/PM Flag (Bit 7)
DC0C 56332   Synchronous Serial I/O Data Buffer
DC0D 56333   CIA Interrupt Control Register (Read IRQs/Write Mask)
  7 IRQ Flag (1 = IRQ Occurred) / Set-Clear Flag
  4 FLAG1 IRQ (Cassette Read / Serial Bus SRQ Input)
  3 Serial Port Interrupt
  2 Time-of-Day Clock Alarm Interrupt
  1 Timer B Interrupt
  0 Timer A Interrupt
DC0E 56334   CIA Control Register A
  7 Time-of-Day Clock Frequency: 1 = 50 Hz, 0 = 60 Hz
  6 Serial Port I/O Mode Output, 0 = Input
  5 Timer A Counts: 1 = CNT Signals, 0 = System 02 Clock
  4 Force Load Timer A: 1 = Yes
  3 Timer A Run Mode: 1 = One-Shot, 0 = Continuous
  2 Timer A Output Mode to PB6: 1 = Toggle, 0 = Pulse
  1 Timer A Output on PB6: 1 = Yes, 0 = No
  0 Start/Stop Timer A: 1 = Start, 0 = Stop
DC0F 56335   CIA Control Register B
  7 Set Alarm/TOD-Clock: 1 = Alarm, 0 = Clock
  6-5 Timer B Mode Select:
    00 = Count System 02 Clock Pulses
    01 = Count Positive CNT Transitions
    10 = Count Timer A Underflow Pulses
    11 = Count Timer A Underflows While CNT Positive
  4-0 Same as CIA Control Reg. A - for Timer B
DD00-DDFF 56576-56831  MOS 6526 Complex Interface Adapter (CIA) #2
DD00 56576   Data Port A (Serial Bus, RS-232, VIC Memory Control)
  7 Serial Bus Data Input
  6 Serial Bus Clock Pulse Input
  5 Serial Bus Data Output
  4 Serial Bus Clock Pulse Output
  3 Serial Bus ATN Signal Output
  2 RS-232 Data Output (User Port)
  1-O VIC Chip System Memory Bank Select (Default = 11)
DD01 56577  Data Port B (User Port, RS-232)
  7 User / RS-232 Data Set Ready
  6 User / RS-232 Clear to Send
  5 User
  4 User / RS-232 Carrier Detect
  3 User / RS-232 Ring Indicator
  2 User / RS-232 Data Terminal Ready
  1 User / RS-232 Request to Send
  0 User / RS-232 Received Data
DD02 56578   Data Direction Register - Port A
DD03 56579   Data Direction Register - Port B
DD04 56580   Timer A: Low-Byte
DD05 56581   Timer A: High-Byte
DD06 56582   Timer B: Low-Byte
DD07 56583   Timer B: High-Byte
DD08 56584   Time-of-Day Clock: 1/10 Seconds
DD09 56585   Time-of-Day Clock: Seconds
DD0A 56586   Time-of-Day Clock: Minutes
DD0B 56587   Time-of-Day Clock: Hours + AM/PM Flag (Bit 7)
DD0C 56588   Synchronous Serial I/O Data Buffer
DD0D 56589   CIA Interrupt Control Register (Read NMls/Write Mask)
  7 NMI Flag (1 = NMI Occurred) / Set-Clear Flag
  4 FLAG1 NMI (User/RS-232 Received Data Input)
  3 Serial Port Interrupt
  1 Timer B Interrupt
  0 Timer A Interrupt
DD0E 56590   CIA Control Register A
  7 Time-of-Day Clock Frequency: 1 = 50 Hz, 0 = 60 Hz
  6 Serial Port I/O Mode Output, 0 = Input
  5 Timer A Counts: 1 = CNT Signals, 0 = System 02 Clock
  4 Force Load Timer A: 1 = Yes
  3 Timer A Run Mode: 1 = One-Shot, 0 = Continuous
  2 Timer A Output Mode to PB6: 1 = Toggle, 0 = Pulse
  1 Timer A Output on PB6: 1 = Yes, 0 = No
  0 Start/Stop Timer A: 1 = Start, 0 = Stop
DD0F 56591   CIA Control Register B
  7 Set Alarm/TOD-Clock: 1 = Alarm, 0 = Clock
  6-5 Timer B Mode Select:
    00 = Count System 02 Clock Pulses
    01 = Count Positive CNT Transitions
    10 = Count Timer A Underflow Pulses
    11 = Count Timer A Underflows While CNT Positive
  4-0 Same as CIA Control Reg. A - for Timer B
DEOO-DEFF 56832-57087 Reserved for Future I/O Expansion
DFOO-DFFF 57088-57343 Reserved for Future I/O Expansion


Marko Mäkelä

Banners

vintagegames.se Retrogaming community - Online since: 16-Mar-2005   The C64 Banner Exchange Missa inte Retrogathering