trunk/src/mess/drivers/cat.c
| r31333 | r31334 | |
| 282 | 282 | data, though track 0 is just a disk "unique" identifier for the cat |
| 283 | 283 | meaning 404480 usable bytes |
| 284 | 284 | * (Once the floppy is working I'd declare the system working) |
| 285 | | - Centronics port finishing touches: verify where the paper out, slct/err, and IPP pins map in memory |
| 285 | - Centronics port finishing touches: verify where the paper out, slct/err, and |
| 286 | IPP pins map in memory. The firmware doesn't actually use them, but they must |
| 287 | map somewhere as they connect to the ASIC. |
| 286 | 288 | - RS232C port and Modem "port" connected to the DUART's two ports |
| 287 | 289 | These are currently optionally debug-logged but don't connect anywhere |
| 288 | 290 | - DTMF generator chip (connected to DUART 'user output' pins OP4,5,6,7) |
| r31333 | r31334 | |
| 314 | 316 | |
| 315 | 317 | * Swyft |
| 316 | 318 | - Figure out the keyboard (interrupts are involved? or maybe an NMI on a |
| 317 | | timer/vblank? It iss possible this uses a similar 'keyboard read int' |
| 319 | timer/vblank? It is possible this uses a similar 'keyboard read int' |
| 318 | 320 | to what the cat does) |
| 319 | 321 | - get the keyboard scanning actually working; the VIAs are going nuts right now. |
| 320 | 322 | - Beeper (on one of the vias?) |
| r31333 | r31334 | |
| 705 | 707 | { |
| 706 | 708 | UINT16 retVal = 0; |
| 707 | 709 | // Read country code |
| 708 | | if (m_pr_cont == 0x0900) |
| 710 | if ((m_pr_cont&0xFF00) == 0x0900) |
| 709 | 711 | retVal = m_dipsw->read(); |
| 710 | 712 | |
| 711 | 713 | // Regular keyboard read |
| 712 | | if (m_pr_cont == 0x0800 || m_pr_cont == 0x0a00) |
| 714 | if ((m_pr_cont&0xFF00) == 0x0800 || (m_pr_cont&0xFF00) == 0x0a00) |
| 713 | 715 | { |
| 714 | 716 | retVal=0xff00; |
| 715 | 717 | switch(m_keyboard_line) |
| r31333 | r31334 | |
| 725 | 727 | } |
| 726 | 728 | } |
| 727 | 729 | #if 0 |
| 728 | | if ((m_pr_cont != 0x0800) && (m_pr_cont != 0x0900) && (m_pr_cont != 0x0a00)) |
| 730 | if (((m_pr_cont&0xFF00) != 0x0800) && ((m_pr_cont&0xFF00) != 0x0900) && ((m_pr_cont&0xFF00) != 0x0a00)) |
| 729 | 731 | { |
| 730 | 732 | fprintf(stderr,"Read from keyboard in %06X with unexpected pr_cont %04X\n", 0x80000a+(offset<<1), m_pr_cont); |
| 731 | 733 | } |
| r31333 | r31334 | |
| 938 | 940 | AM_RANGE(0x80000c, 0x80000d) AM_READ(cat_0080_r) AM_MIRROR(0x18FFE0) // Open bus? |
| 939 | 941 | AM_RANGE(0x80000e, 0x80000f) AM_READWRITE(cat_battery_r,cat_printer_control_w) AM_MIRROR(0x18FFE0) // Centronics Printer Control, keyboard led and country code enable |
| 940 | 942 | AM_RANGE(0x800010, 0x80001f) AM_READ(cat_0080_r) AM_MIRROR(0x18FFE0) // Open bus? |
| 941 | | //AM_RANGE(0x810000, 0x81001f) AM_DEVREADWRITE8("duartn68681", mc68681_device, read, write, 0xff00 ) AM_MIRROR(0x18FFE0) |
| 942 | 943 | AM_RANGE(0x810000, 0x81001f) AM_DEVREADWRITE8("duartn68681", mc68681_device, read, write, 0xff ) AM_MIRROR(0x18FFE0) |
| 943 | 944 | AM_RANGE(0x820000, 0x82003f) AM_READWRITE(cat_modem_r,cat_modem_w) AM_MIRROR(0x18FFC0) // AMI S35213 Modem Chip, all access is on bit 7 |
| 944 | 945 | AM_RANGE(0x830000, 0x830001) AM_READ(cat_6ms_counter_r) AM_MIRROR(0x18FFFE) // 16bit 6ms counter clocked by output of another 16bit counter clocked at 10mhz |