C= commodore 64 

Commodore 128 Input/Output Assignments

;       Commodore 128 I/O Map
;       V1.2    22 Jun 1994


        COMMODORE 128 INPUT/OUTPUT ASSIGNMENTS


        Differences Between C64 and C128

        D500-D50B       MMU
        D600-D601       VDC
        FF00-FF05       Preconfiguration Registers



HEX     DECIMAL         BITS    DESCRIPTION

        8502 I/O Registers

        C128 mode:

0000    x       0       1       0       1       1       1       1
0001    x       Caps    Motor   Sense   Write   HIRAM   LORAM   CHAREN


        C64 mode:

0000    0               6-0     MOS 8502 Data Direction 
                                        Register (xx101111)
                                        Bit= 1: Output, Bit=0:  
                                        Input, x=Don't Care     

0001    1                       MOS 8502 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       Caps Lock (ASCII/CC, ASCII/DIN) key



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

D02F    53295           7-3     Unused
                        2-0     Additional Keyboard Columns

D030    53296           7-2     Unused
                        1       Test
                        0       2 MHz Mode



D400-D4FF       54272-52527     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



MMU  $D500 and $FF00

 C128 MMU  8722


D500            Configuration Register (CR)
        7-6     RAM-select 0-3
        5-4     High RAM/ROM
                        00 System ROM (Kernel, Edit)
                        01 Internal Function ROM
                        10 External Function ROM
                        11 RAM
                  NOTE: I/O overrides all of these.

        3-2     Mid RAM/ROM
                        00 System ROM (Basic HI)
                        01 Internal Function ROM
                        10 External Function ROM
                        11 RAM

        1       Lo RAM
                        0  System ROM (Basic LO)
                        1  RAM

        0       C.GEN
                        0  I/O
                        1  ROM/RAM


D501            Preconfiguration Registers
D502
D503
D504

D505    7       40/80 read only
        6       C64 Mode (0 = C128)
        5       EXROM: C64 (1 = C128) read only
        4       GAME:  C64 (1 = C128) read only
        3       FSDIR: Fast Disk Transfer Direction
        2-1     -
        0       Z80/8502

D506            RAM Configuration Register (RCR)

        7-6     Video-Bank
        5-4     -
        3       Shared RAM Hi
        2       Shared RAM Lo
        1-0     Shared RAM Size: 00 = 1K, 01 = 4K, 10 = 8K, 11 = 16K

D507            Zero Page Pointer Lo

        7-0     A15-A8

D508            Zero Page Pointer Hi

        7-4     -
        3-2     A19-A18 (Used in 1MB System)
        1-0     A17-A16 (256K System)

D509            Stack Page Pointer Lo
D50A            Stack Page Pointer Hi

D50B            MMU Version Register

        7-4     Bank Version (2 = 128K)
        3-0     MMU Version


        Default Memory Configurations

        Bank   FF00    Free RAM Space   RAM I/O  ROM

         0      3f      0000-ffff        0
         1      7f      0000-ffff        1
         2      bf      0000-ffff        2
         3      ff      0000-ffff        3

         4      16      0000-7fff        0  I/O  Int
         5      56      0000-7fff        1  I/O  Int
         6      96      0000-7fff        2  I/O  Int
         7      d6      0000-7fff        3  I/O  Int

         8      2a      0000-7fff        0  I/O  Ext
         9      6a      0000-7fff        1  I/O  Ext
        10      aa      0000-7fff        2  I/O  Ext
        11      ea      0000-7fff        3  I/O  Ext

        12      06      0000-7fff        0  I/O  Kernel Int_Rom_Low
        13      0a      0000-7fff        0  I/O  Kernel Ext_Rom_Low
        14      01      0000-3fff        0  Char Kernel Basic
        15      00      0000-3fff        0  I/O  Kernel Basic



  VDC  $D600

   This register map is from C-Hacking Magazine.


                      ----------------------------------
                      | VDC 8563  Register Definitions |
                      ----------------------------------
 
 Reg     7    6    5    4    3    2    1    0     Description              Notes
------ ---- ---- ---- ---- ---- ---- ---- ----   ------------------------ -----
     0  HzT7 HzT6 HzT5 HzT4 HzT3 HzT2 HzT1 HzT0   Horizontal Total          ^1  
     1  HzD7 HzD6 HzD5 HzD4 HzD3 HzD2 HzD1 HzD0   Horizontal Displayed      ^1
     2  HzS7 HzS6 HzS5 HzS4 HzS3 HzS2 HzS2 HzS0   Horizontal Sync Position  ^1
     3  VSW3 VSW2 VSW1 VSW0 HSW3 HSW2 HSW1 HSW0   Vert/Horiz. Sync Width    ^2
     4  VeT7 VeT6 VeT5 VeT4 VeT3 VeT2 VeT1 VeT0   Vertical Total            ^3
     5  .... .... .... VeA4 VeA3 VeA2 VeA1 VeA0   Vertical Total Fine Adju  ^3
     6  VeD7 VeD6 VeD5 VeD4 VeD3 VeD2 VeD1 VeD0   Vertical Displayed        ^3
     7  VeS7 VeS6 VeS5 VeS4 VeS3 VeS2 VeS1 VeS0   Vertical Sync Position    ^2
     8  .... .... .... .... .... .... Ilc1 Ilc0   Interlace Mode            ^4
     9  .... .... .... CTV4 CTV3 CTV2 CTV1 CTV0   Character Total Vertical  ^5
0a  10  .... CrM1 CrM0 Css4 Css3 Css2 Css1 Css0   Cursor Mode/ Start Scan   ^6
0b  11  .... .... .... Ces4 Ces3 Ces2 Ces1 Ces0   Cursor End Scan           ^6
0c  12  Ds15 Ds14 Ds13 Ds12 Ds11 Ds10 Ds09 Ds08   Display Start Adrs (Hi)   ^7
0d  13  Ds07 Ds06 Ds05 Ds04 Ds03 Ds02 Ds01 Ds00   Display Start Adrs (Lo)   ^7
0e  14  Cp15 Cp14 Cp13 Cp12 Cp11 Cp10 Cp09 Cp08   Cursor Position (Hi)      ^7
0f  15  Cp07 Cp06 Cp05 Cp04 Cp03 Cp02 Cp01 Cp00   Cursor Position (Lo)      ^7
10  16  LpV7 LpV6 LpV5 LpV4 LpV3 LpV2 LpV1 LpV0   Light Pen Veritcal        ^8
11  17  LpH7 LpH6 LpH5 LpH4 LpH3 LpH2 LpH1 LpH0   Light Pen Horizontal      ^8
12  18  Ua15 Ua14 Ua13 Ua12 Ua11 Ua10 Ua09 Ua08   Update Address (Hi)       ^9
13  19  Ua07 Ua06 Ua05 Ua04 Ua03 Ua02 Ua01 Ua00   Update Address (Lo)       ^9
14  20  At15 At14 At13 At12 At11 At10 At09 At08   Attribute Start Adrs (Hi) ^7
15  21  At07 At06 At05 At04 At03 At02 At01 At00   Attribute Start Adrs (Lo) ^7
16  22  HcP3 HcP2 HcP1 HcP0 IcS3 IcS2 IcS1 IcS0   Hz Chr Pxl Ttl/IChar Spc  ^A
17  23  .... .... .... VcP4 VcP3 VcP2 VcP1 VcP0   Vert. Character Pxl Spc   ^5
18  24  BlkM RvsS Vss5 Vss4 Vss3 Vss2 Vss1 Vss0   Block/Rvs Scr/V. Scroll ^9^B^C
19  25  Text Atri Semi Dble Hss3 Hss2 Hss1 Hss0   Diff. Mode Sw/H. Scroll  ^D,^E
1a  26  Fgd3 Fgd2 Fgd1 Fgd0 Bgd3 Bgd2 Bgd1 Bgd0   ForeGround/BackGround Col ^F
1b  27  Rin7 Rin6 Rin5 Rin4 Rin3 Rin2 Rin1 Rin0   Row/Adrs. Increment       ^G
1c  28  CSa2 CSa1 CSa0 RamT .... .... .... ....   Character Set Addrs/Ram   ^H,^I
1d  29  .... .... .... UdL4 UdL3 UdL2 UdL1 UdL0   Underline Scan Line       ^6
1e  30  WdC7 WdC6 WdC5 WdC4 WdC3 WdC2 WdC1 WdC0   Word Count (-1)           ^9
1f  31  Dta7 Dta6 Dta5 Dta4 Dta3 Dta2 Dta1 Dta0   Data                      ^9  
20  32  BlkF BlkE BlkD BlkC BlkB BlkA Blk9 Blk8   Block Copy Source (hi)    ^9
21  33  Blk7 Blk6 Blk5 Blk4 Blk3 Blk2 Blk1 Blk0   Block Copy Source (lo)    ^9
22  34  DeB7 DeB6 DeB5 DeB4 DeB3 DeB2 DeB1 DeB0   Display Enable Begin      ^J
23  35  DeE7 DeE6 DeE5 DeE4 DeE3 DeE2 DeE1 DeE0   Display Enable End        ^J
24  36  .... .... .... .... Drm3 Drm2 Drm1 Drm0   DRAM Refresh Rate         ^K





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


 DMA  $DF00


        8726 DMA Controller for C128 (512K REU)

 Note: The 8726 DMA controller for C128 is different from the C64 ones
 in registers 00,01,09 and 0a.

DF00  DMA ST    STATUS
                7       Interrupt Pending (1 = Int. waiting)
                6       End of Block (1 = Transfer complete)
                5       Fault  (1 = Block verify error)
                4       Size   (0 = 128K, 1 = 512K Exp. Memory)
                3-0     Version

DF01  DMA CMD   COMMAND
                7       Exec
                6       Reserved (normally 0)
                5       Load  (1 = Enable auto load)
                4       $FF00 (1 = Disable $FF00 decades)
                3-2     Reserved (normally 0)
                1-0     Mode
                                00 = Transfer from internal to external
                                01 = From ext to int
                                10 = Swap
                                11 = Verify

DF02  DMA ADL   HOST ADDRESS LOW
DF03  DMA ADH   HOST ADDRESS HIGH

DF04  DMA LO    EXPANSION ADDRESS LOW
DF05  DMA HI    EXPANSION ADDRESS HIGH
DF06  DMA BNK   EXPANSION BANK (bits 2-0 only)
                7-3     Unused
                2-0     Expansion Bank number

DF07  DMA DAL   TRANSFER LENGTH LOW
DF08  DMA DAH   TRANSFER LENGTH HIGH

DF09  DMA SUM   INTERRUPT MASK REGISTER
                7       Interrupt Enable (1 = Interrupts enabled)
                6       End of Block mask (1 = Interrupt on end of block)
                5       Verify Error (1 = Interrupt on verify error)
                4-0     Unused (normally all set)

DF0A  DMA VER   VERSION, MAXIMUM MEMORY
                7-6     Address Control
                                00 = Increment both addresses (default)
                                01 = Fix expansion address
                                10 = Fix C128 address
                                11 = Fix both addresses
                5-0     Unused (normally all set)




Converted to a human readable format by the IIRG