trunk/src/mess/drivers/cfx9850.c
| r20502 | r20503 | |
| 25 | 25 | { |
| 26 | 26 | public: |
| 27 | 27 | cfx9850_state(const machine_config &mconfig, device_type type, const char *tag) |
| 28 | | : driver_device(mconfig, type, tag), |
| 29 | | m_video_ram(*this, "video_ram"), |
| 30 | | m_display_ram(*this, "display_ram") { } |
| 28 | : driver_device(mconfig, type, tag) |
| 29 | , m_video_ram(*this, "video_ram") |
| 30 | , m_display_ram(*this, "display_ram") |
| 31 | , m_ko1(*this, "KO1") |
| 32 | , m_ko2(*this, "KO2") |
| 33 | , m_ko3(*this, "KO3") |
| 34 | , m_ko4(*this, "KO4") |
| 35 | , m_ko5(*this, "KO5") |
| 36 | , m_ko6(*this, "KO6") |
| 37 | , m_ko7(*this, "KO7") |
| 38 | , m_ko8(*this, "KO8") |
| 39 | , m_ko9(*this, "KO9") |
| 40 | , m_ko10(*this, "KO10") |
| 41 | , m_ko11(*this, "KO11") |
| 42 | , m_ko12(*this, "KO12") |
| 43 | { } |
| 31 | 44 | |
| 32 | 45 | DECLARE_WRITE8_MEMBER(cfx9850_kol_w); |
| 33 | 46 | DECLARE_WRITE8_MEMBER(cfx9850_koh_w); |
| r20502 | r20503 | |
| 38 | 51 | UINT16 m_ko; /* KO lines KO1 - KO14 */ |
| 39 | 52 | virtual void palette_init(); |
| 40 | 53 | UINT32 screen_update_cfx9850(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); |
| 54 | |
| 55 | protected: |
| 56 | required_ioport m_ko1; |
| 57 | required_ioport m_ko2; |
| 58 | required_ioport m_ko3; |
| 59 | required_ioport m_ko4; |
| 60 | required_ioport m_ko5; |
| 61 | required_ioport m_ko6; |
| 62 | required_ioport m_ko7; |
| 63 | required_ioport m_ko8; |
| 64 | required_ioport m_ko9; |
| 65 | required_ioport m_ko10; |
| 66 | required_ioport m_ko11; |
| 67 | required_ioport m_ko12; |
| 41 | 68 | }; |
| 42 | 69 | |
| 43 | 70 | |
| r20502 | r20503 | |
| 66 | 93 | |
| 67 | 94 | READ8_MEMBER( cfx9850_state::cfx9850_ki_r ) |
| 68 | 95 | { |
| 69 | | UINT8 i, data = 0; |
| 70 | | char kbdrow[8]; |
| 96 | UINT8 data = 0; |
| 71 | 97 | |
| 72 | | for (i = 0; i < 13; i++) |
| 73 | | { |
| 74 | | if (BIT(m_ko, i)) |
| 75 | | { |
| 76 | | sprintf(kbdrow,"KO%d", i+1); |
| 77 | | data |= ioport(kbdrow)->read(); |
| 78 | | } |
| 79 | | } |
| 98 | if ( m_ko & ( 1 << 0 ) ) data |= m_ko1->read(); |
| 99 | if ( m_ko & ( 1 << 1 ) ) data |= m_ko2->read(); |
| 100 | if ( m_ko & ( 1 << 2 ) ) data |= m_ko3->read(); |
| 101 | if ( m_ko & ( 1 << 3 ) ) data |= m_ko4->read(); |
| 102 | if ( m_ko & ( 1 << 4 ) ) data |= m_ko5->read(); |
| 103 | if ( m_ko & ( 1 << 5 ) ) data |= m_ko6->read(); |
| 104 | if ( m_ko & ( 1 << 6 ) ) data |= m_ko7->read(); |
| 105 | if ( m_ko & ( 1 << 7 ) ) data |= m_ko8->read(); |
| 106 | if ( m_ko & ( 1 << 8 ) ) data |= m_ko9->read(); |
| 107 | if ( m_ko & ( 1 << 9 ) ) data |= m_ko10->read(); |
| 108 | if ( m_ko & ( 1 << 10 ) ) data |= m_ko11->read(); |
| 109 | if ( m_ko & ( 1 << 11 ) ) data |= m_ko12->read(); |
| 80 | 110 | |
| 81 | 111 | return data; |
| 82 | 112 | } |