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 18:27] – pulkomandy | documentations:devices:6846 [2015/02/28 17: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 81: | Line 81: | ||
===== TO8/9+/8D ===== | ===== TO8/9+/8D ===== | ||
- | ==== PB2: Cartrige | + | ==== PB2: Cartridge |
Only 2 banks are available. | Only 2 banks are available. | ||
Line 89: | Line 89: | ||
also switches the floppy ROM banks. | also switches the floppy ROM banks. | ||
- | ==== PB5: keyboard | + | ==== PB5 and CP1: keyboard |
+ | === 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 ==== | ==== PB6: printer busy bit ==== |