Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
documentations:devices:6846 [2014/03/27 19:22] pulkomandydocumentations: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, it's generated using the timer), and a few extra things.+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, it's generated using the timer), and a few extra things.
  
 ====== 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 "color" (attributes) page is mapped. When set to 1, the "shape" (pixels) page is mapped. when set to 0, the "color" (attributes) page is mapped. When set to 1, the "shape" (pixels) page is mapped.
 +
 +(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:syscalls#ec03_comslot|EC03 (COMSLOT)]] allows calling code from one ROM bank to another. Monitor entry [[documentations:monitor:syscalls#ec03_comslot|EC03 (COMSLOT)]] allows calling code from one ROM bank to another.
  
 +===== 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), then leave PB5 low for the right amount of time.
 +  * 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 ====
documentations/devices/6846.1395944553.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