This is an old revision of the document!


The 6846 is the main PIA chip in all machines for the TO range. It handles the tape drive, memory banks communations, 50Hz interrupt (actually programmable, it's generated using the timer), and a few extra things.

Register map

AddressNameComments
E7C0 CSR composite status register
E7C1 CRC Port C control
E7C2 DDRCPort C direction
E7C3 PRC Port C data
E7C4 composite status register
E7C5 TCR timer control
E7C6 TMSBtimer most significant byte
E7C7 TLSBtimer least significant byte

Ports

P0: Video RAM mapping

This bit allows switching the video RAM page for the CPU. when set to 0, the “color” (attributes) page is mapped. When set to 1, the “shape” (pixels) page is mapped.

P2 and P6: "RAMDisk" expansion control

These two bits allows mapping of the “RAM Disk” memory (external expansion on the TO9). When no internal RAM is selected (bits PB3-PB7 from System 6821 PIA are all 1), the value of these two bits define the mapped RAM disk page.

P6P2PB7PB6PB5PB4PB3Mapped memory at A000-DFFF
X X 1 1 1 X X TO7 32K expansion mappings
X X 1 1 1 1 0 Internal bank 0
X X 1 1 1 0 1 Internal bank 1
X X X X 0 1 1 TO9 extra internal RAM mappings
X X 0 0 0 1 1 Internal bank 2
X X 1 0 0 1 1 Internal bank 3
X X 0 1 0 1 1 Internal bank 4
X X 1 1 0 1 1 Internal bank 5
X X 1 1 1 1 1 TO9 external RAM mappings
0 0 1 1 1 1 1 RAMdisk 1
1 0 1 1 1 1 1 RAMdisk 2
0 1 1 1 1 1 1 RAMdisk 3
1 1 1 1 1 1 1 RAMdisk 4

Seriously, this system is a mess. Use the new banking from the gate array if you can.

P4 and P5: Cartridge slot selection

On TO9 and later, these two bits are used to switch between different mappings for the cartridge area (0000-3FFF). It allows software (un)mapping of cartridges.

P4P5Bank 0 Bank 1 Bank 2 Bank 3
0 0 BASIC 128 Extramon BASIC 1.0 Icon DOS
0 1 Paragraphe
1 0 Fiches et Dossiers
1 1 External cartridge

Each slot may have up to 4 banks, switching by the banks is done by writing anywhere between 0000 and 1FFF. The two low-order address bits define the bank number.

  • Writing to 0000 selects bank 0
  • Writing to 0001 selects bank 1
  • Writing to 1F01 selects bank 1
  • Writing to 1E02 selects bank 2

Monitor entry EC03 (COMSLOT) allows calling code from one ROM bank to another.

documentations/devices/6846.1395783013.txt.gz · Last modified: 2015/02/28 18:08 (external edit)
CC0 1.0 Universal
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0