Previous 199869 Revisions Next

r34845 Wednesday 4th February, 2015 at 21:49:31 UTC by Angelo Salese
Basic KB hookup, thinks that GRAPH is always on for whatever reason ...
[src/mame/includes]toki.h
[src/mess/drivers]c65.c

trunk/src/mame/includes/toki.h
r243356r243357
4141   tilemap_t *m_foreground_layer;
4242   tilemap_t *m_text_layer;
4343
44   DECLARE_WRITE16_MEMBER(tokib_soundcommand16_w);
45   DECLARE_READ16_MEMBER(pip16_r);
44   DECLARE_WRITE16_MEMBER(tokib_soundcommand_w);
45   DECLARE_READ16_MEMBER(pip_r);
4646   DECLARE_WRITE16_MEMBER(toki_control_w);
4747   DECLARE_WRITE16_MEMBER(foreground_videoram_w);
4848   DECLARE_WRITE16_MEMBER(background1_videoram_w);
4949   DECLARE_WRITE16_MEMBER(background2_videoram_w);
50   DECLARE_WRITE8_MEMBER(toki_adpcm_control_w);
51   DECLARE_WRITE8_MEMBER(toki_adpcm_data_w);
52   DECLARE_WRITE_LINE_MEMBER(toki_adpcm_int);
50   DECLARE_WRITE8_MEMBER(tokib_adpcm_control_w);
51   DECLARE_WRITE8_MEMBER(tokib_adpcm_data_w);
52   DECLARE_WRITE_LINE_MEMBER(tokib_adpcm_int);
5353
5454   DECLARE_DRIVER_INIT(tokib);
5555   DECLARE_DRIVER_INIT(jujuba);
trunk/src/mess/drivers/c65.c
r243356r243357
5858   required_device<gfxdecode_device> m_gfxdecode;
5959
6060   UINT8 *m_iplrom;
61
61   UINT8 m_keyb_input[10];
62   UINT8 m_keyb_mux;
6263   
6364   DECLARE_READ8_MEMBER(vic4567_dummy_r);
6465   DECLARE_WRITE8_MEMBER(vic4567_dummy_w);
r243356r243357
6869   DECLARE_WRITE8_MEMBER(DMAgic_w);
6970   DECLARE_READ8_MEMBER(CIASelect_r);
7071   DECLARE_WRITE8_MEMBER(CIASelect_w);
72   DECLARE_READ8_MEMBER(cia0_porta_r);
73   DECLARE_WRITE8_MEMBER(cia0_porta_w);
74   DECLARE_READ8_MEMBER(cia0_portb_r);
75   DECLARE_WRITE8_MEMBER(cia0_portb_w);
76   DECLARE_WRITE_LINE_MEMBER(cia0_irq);
7177   
7278   DECLARE_READ8_MEMBER(dummy_r);
73   DECLARE_WRITE_LINE_MEMBER(cia0_irq);
74   
79
7580   // screen updates
7681   UINT32 screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
7782   DECLARE_PALETTE_INIT(c65);
r243356r243357
161166      case 0x12:
162167         res = (m_screen->vpos() & 0xff);
163168         return res;
169      case 0x15:
170         return 0xff; // silence log for now
164171      case 0x19:
165172         return m_VIC2_IRQPend;
166173     
r243356r243357
361368   
362369}
363370
371READ8_MEMBER(c65_state::cia0_porta_r)
372{
373
374   return 0xff;
375}
376
377READ8_MEMBER(c65_state::cia0_portb_r)
378{
379   static const char *const c64ports[] = { "ROW0", "ROW1", "ROW2", "ROW3", "ROW4", "ROW5", "ROW6", "ROW7" };
380   UINT8 res;
381   
382   res = 0xff;
383   for(int i=0;i<8;i++)
384   {
385     
386      m_keyb_input[i] = machine().root_device().ioport(c64ports[i])->read();
387
388      if(m_keyb_mux & 1 << (i))
389         res &= m_keyb_input[i];
390   }
391
392   return res;
393}
394
395WRITE8_MEMBER(c65_state::cia0_porta_w)
396{
397   m_keyb_mux = ~data;
398   printf("%02x\n",m_keyb_mux);
399}
400
401WRITE8_MEMBER(c65_state::cia0_portb_w)
402{
403}
404
364405READ8_MEMBER(c65_state::dummy_r)
365406{
366407   return 0;
r243356r243357
395436
396437
397438static INPUT_PORTS_START( c65 )
398   /* dummy active high structure */
399   PORT_START("SYSA")
400   PORT_DIPNAME( 0x01, 0x00, "SYSA" )
401   PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
402   PORT_DIPSETTING(    0x01, DEF_STR( On ) )
403   PORT_DIPNAME( 0x02, 0x00, DEF_STR( Unknown ) )
404   PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
405   PORT_DIPSETTING(    0x02, DEF_STR( On ) )
406   PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unknown ) )
407   PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
408   PORT_DIPSETTING(    0x04, DEF_STR( On ) )
409   PORT_DIPNAME( 0x08, 0x00, DEF_STR( Unknown ) )
410   PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
411   PORT_DIPSETTING(    0x08, DEF_STR( On ) )
412   PORT_DIPNAME( 0x10, 0x00, DEF_STR( Unknown ) )
413   PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
414   PORT_DIPSETTING(    0x10, DEF_STR( On ) )
415   PORT_DIPNAME( 0x20, 0x00, DEF_STR( Unknown ) )
416   PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
417   PORT_DIPSETTING(    0x20, DEF_STR( On ) )
418   PORT_DIPNAME( 0x40, 0x00, DEF_STR( Unknown ) )
419   PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
420   PORT_DIPSETTING(    0x40, DEF_STR( On ) )
421   PORT_DIPNAME( 0x80, 0x00, DEF_STR( Unknown ) )
422   PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
423   PORT_DIPSETTING(    0x80, DEF_STR( On ) )
439   PORT_START( "ROW0" )
440   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("Crsr Down Up") PORT_CODE(KEYCODE_RALT)        PORT_CHAR(UCHAR_MAMEKEY(DOWN)) PORT_CHAR(UCHAR_MAMEKEY(UP))
441   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_F3)                                    PORT_CHAR(UCHAR_MAMEKEY(F5))
442   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_F2)                                    PORT_CHAR(UCHAR_MAMEKEY(F3))
443   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_F1)                                    PORT_CHAR(UCHAR_MAMEKEY(F1))
444   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_F4)                                    PORT_CHAR(UCHAR_MAMEKEY(F7))
445   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("Crsr Right Left") PORT_CODE(KEYCODE_RCONTROL) PORT_CHAR(UCHAR_MAMEKEY(RIGHT)) PORT_CHAR(UCHAR_MAMEKEY(LEFT))
446   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("Return") PORT_CODE(KEYCODE_ENTER)             PORT_CHAR(13)
447   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("INST DEL") PORT_CODE(KEYCODE_BACKSPACE)       PORT_CHAR(8) PORT_CHAR(UCHAR_MAMEKEY(INSERT))
424448
425   /* dummy active low structure */
426   PORT_START("DSWA")
427   PORT_DIPNAME( 0x01, 0x01, "DSWA" )
428   PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
429   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
430   PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) )
431   PORT_DIPSETTING(    0x02, DEF_STR( Off ) )
432   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
433   PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) )
434   PORT_DIPSETTING(    0x04, DEF_STR( Off ) )
435   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
436   PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) )
437   PORT_DIPSETTING(    0x08, DEF_STR( Off ) )
438   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
439   PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) )
440   PORT_DIPSETTING(    0x10, DEF_STR( Off ) )
441   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
442   PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) )
443   PORT_DIPSETTING(    0x20, DEF_STR( Off ) )
444   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
445   PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) )
446   PORT_DIPSETTING(    0x40, DEF_STR( Off ) )
447   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
448   PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) )
449   PORT_DIPSETTING(    0x80, DEF_STR( Off ) )
450   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
449   PORT_START( "ROW1" )
450   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("Shift (Left)") PORT_CODE(KEYCODE_LSHIFT)      PORT_CHAR(UCHAR_SHIFT_1)
451   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_E)         PORT_CHAR('E')
452   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_S)         PORT_CHAR('S')
453   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_Z)         PORT_CHAR('Z')
454   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_4)         PORT_CHAR('4') PORT_CHAR('$')
455   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_A)         PORT_CHAR('A')
456   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_W)         PORT_CHAR('W')
457   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_3)         PORT_CHAR('3') PORT_CHAR('#')
458
459   PORT_START( "ROW2" )
460   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_X)         PORT_CHAR('X')
461   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_T)         PORT_CHAR('T')
462   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_F)         PORT_CHAR('F')
463   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_C)         PORT_CHAR('C')
464   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_6)         PORT_CHAR('6') PORT_CHAR('&')
465   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_D)         PORT_CHAR('D')
466   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_R)         PORT_CHAR('R')
467   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_5)         PORT_CHAR('5') PORT_CHAR('%')
468
469   PORT_START( "ROW3" )
470   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_V)         PORT_CHAR('V')
471   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_U)         PORT_CHAR('U')
472   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_H)         PORT_CHAR('H')
473   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_B)         PORT_CHAR('B')
474   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_8)         PORT_CHAR('8') PORT_CHAR('(')
475   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_G)         PORT_CHAR('G')
476   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_Y)         PORT_CHAR('Y')
477   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_7)         PORT_CHAR('7') PORT_CHAR('\'')
478
479   PORT_START( "ROW4" )
480   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_N)         PORT_CHAR('N')
481   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_O)         PORT_CHAR('O')
482   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_K)         PORT_CHAR('K')
483   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_M)         PORT_CHAR('M')
484   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_0)         PORT_CHAR('0')
485   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_J)         PORT_CHAR('J')
486   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_I)         PORT_CHAR('I')
487   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_9)         PORT_CHAR('9') PORT_CHAR(')')
488
489   PORT_START( "ROW5" )
490   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_COMMA)     PORT_CHAR(',') PORT_CHAR('<')
491   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_OPENBRACE) PORT_CHAR('@')
492   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_COLON)     PORT_CHAR(':') PORT_CHAR('[')
493   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_STOP)      PORT_CHAR('.') PORT_CHAR('>')
494   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_EQUALS)    PORT_CHAR('-')
495   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_L)         PORT_CHAR('L')
496   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_P)         PORT_CHAR('P')
497   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_MINUS)     PORT_CHAR('+')
498
499   PORT_START( "ROW6" )
500   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_SLASH)                             PORT_CHAR('/') PORT_CHAR('?')
501   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("\xE2\x86\x91  Pi") PORT_CODE(KEYCODE_DEL) PORT_CHAR(0x2191) PORT_CHAR(0x03C0)
502   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_BACKSLASH)                         PORT_CHAR('=')
503   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("Shift (Right)") PORT_CODE(KEYCODE_RSHIFT) PORT_CHAR(UCHAR_SHIFT_1)
504   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("CLR HOME") PORT_CODE(KEYCODE_INSERT)      PORT_CHAR(UCHAR_MAMEKEY(HOME))
505   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_QUOTE)                             PORT_CHAR(';') PORT_CHAR(']')
506   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_CLOSEBRACE)                        PORT_CHAR('*')
507   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_BACKSLASH2)                        PORT_CHAR('\xA3')
508
509   PORT_START( "ROW7" )
510   PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("RUN STOP") PORT_CODE(KEYCODE_HOME)
511   PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_Q)                                 PORT_CHAR('Q')
512   PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("CBM") PORT_CODE(KEYCODE_LALT)
513   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_SPACE)                             PORT_CHAR(' ')
514   PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_2)                                 PORT_CHAR('2') PORT_CHAR('"')
515   PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_TAB)                               PORT_CHAR(UCHAR_SHIFT_2)
516   PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("\xE2\x86\x90") PORT_CODE(KEYCODE_TILDE)   PORT_CHAR(0x2190)
517   PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_CODE(KEYCODE_1)                                 PORT_CHAR('1') PORT_CHAR('!')
518
451519INPUT_PORTS_END
452520
453521
r243356r243357
500568
501569WRITE_LINE_MEMBER(c65_state::cia0_irq)
502570{
503   printf("%d\n",state);
571   printf("%d IRQ\n",state);
572
573#if 0
574   if(state)
575   {
576      static const char *const c64ports[] = { "ROW0", "ROW1", "ROW2", "ROW3", "ROW4", "ROW5", "ROW6", "ROW7" };
577      for(int i=0;i<8;i++)
578         m_keyb_input[i] = machine().root_device().ioport(c64ports[i])->read();
579   }   
580#endif
504581//   m_cia0_irq = state;
505582//   c65_irq(state || m_vicirq);
506583}
r243356r243357
515592   MCFG_DEVICE_ADD("cia_0", MOS6526, MAIN_CLOCK)
516593   MCFG_MOS6526_TOD(60)
517594   MCFG_MOS6526_IRQ_CALLBACK(WRITELINE(c65_state, cia0_irq))
518//   MCFG_MOS6526_PA_INPUT_CALLBACK(READ8(c65_state, c65_cia0_port_a_r))
519//   MCFG_MOS6526_PB_INPUT_CALLBACK(READ8(c65_state, c65_cia0_port_b_r))
520//   MCFG_MOS6526_PB_OUTPUT_CALLBACK(WRITE8(c65_state, c65_cia0_port_b_w))
595   MCFG_MOS6526_PA_INPUT_CALLBACK(READ8(c65_state, cia0_porta_r))
596   MCFG_MOS6526_PA_OUTPUT_CALLBACK(WRITE8(c65_state, cia0_porta_w))
597   MCFG_MOS6526_PB_INPUT_CALLBACK(READ8(c65_state, cia0_portb_r))
598   MCFG_MOS6526_PB_OUTPUT_CALLBACK(WRITE8(c65_state, cia0_portb_w))
521599
522600   MCFG_DEVICE_ADD("cia_1", MOS6526, MAIN_CLOCK)
523601   MCFG_MOS6526_TOD(60)


Previous 199869 Revisions Next


© 1997-2024 The MAME Team