Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
documentations:devices:6846 [2014/03/27 19:22] – pulkomandy | documentations:devices:6846 [2015/02/28 18:08] (current) – external edit 127.0.0.1 | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | 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, | + | The 6846 is the main PIA chip in all machines for the TO range. It handles the tape drive, memory banks commutations, 50Hz interrupt (actually programmable, |
====== Register map ====== | ====== Register map ====== | ||
Line 17: | Line 17: | ||
This bit allows switching the video RAM page for the CPU. | This bit allows switching the video RAM page for the CPU. | ||
when set to 0, the " | when set to 0, the " | ||
+ | |||
+ | (on TO8/9+/8D, this is not actually wired, but the Gate Array emulates it). | ||
==== P1: light pen button ===== | ==== P1: light pen button ===== | ||
Line 78: | Line 80: | ||
Monitor entry [[documentations: | Monitor entry [[documentations: | ||
+ | ===== TO8/9+/8D ===== | ||
+ | ==== PB2: Cartridge switch ==== | ||
+ | |||
+ | Only 2 banks are available. | ||
+ | |||
+ | ==== PB4: Monitor bank switch ==== | ||
+ | |||
+ | also switches the floppy ROM banks. | ||
+ | |||
+ | ==== PB5 and CP1: keyboard link ==== | ||
+ | === Reading keyboard state === | ||
+ | The keyboard link was implemented on the TO9 using a 6850 ACIA. To save costs, it is now implemented using a bit-bang serial link driven by the PIA. | ||
+ | |||
+ | When the keyboard controller want to send a byte, it raises CP1 high. The computer acknowledges by setting PB5 low. | ||
+ | |||
+ | The serial frame is made of: | ||
+ | * CNT key state | ||
+ | * SHIFT key state | ||
+ | * 7-bit keycode of first pressed key (unlike on TO9, this is not the ASCII code). | ||
+ | |||
+ | The signalling is: | ||
+ | * 56µs high pulse for 1 bit | ||
+ | * 38µs high pulse for 0 bit | ||
+ | |||
+ | === Configuring the keyboard === | ||
+ | The computer can send commands by pulling PB5 low, waiting for CP1 to become low (acknowledge), | ||
+ | * 670µS: keyboard reset. The keyboard enter caps lock mode (led is on), and send the keymap bit (French or Export) to the computer. | ||
+ | * 1300µS: enable caps lock | ||
+ | * 1900µS: disable caps lock | ||
+ | ==== PB6: printer busy bit ==== |