trunk/src/mess/drivers/poly.c
| r23614 | r23615 | |
| 21 | 21 | - Almost Everything! |
| 22 | 22 | - Connect up the device ports & lines |
| 23 | 23 | - Find out about graphics mode and how it is selected |
| 24 | | - There is a beeper or speaker connected to the 6840 - how? |
| 25 | 24 | - Fix Keyboard so that the Enter key tells BASIC to do something |
| 26 | | - Fix If ^G is pressed, the system pauses for about 30 seconds. |
| 27 | 25 | - Find out how to make 2nd teletext screen to display |
| 28 | 26 | |
| 29 | 27 | ****************************************************************************/ |
| r23614 | r23615 | |
| 37 | 35 | #include "machine/mc6854.h" |
| 38 | 36 | #include "video/saa5050.h" |
| 39 | 37 | #include "machine/keyboard.h" |
| 38 | #include "sound/speaker.h" |
| 40 | 39 | |
| 41 | 40 | |
| 41 | |
| 42 | 42 | class poly_state : public driver_device |
| 43 | 43 | { |
| 44 | 44 | public: |
| r23614 | r23615 | |
| 47 | 47 | m_maincpu(*this, "maincpu"), |
| 48 | 48 | m_pia0(*this, "pia0"), |
| 49 | 49 | m_pia1(*this, "pia1"), |
| 50 | m_speaker(*this, "speaker"), |
| 50 | 51 | m_videoram(*this, "videoram") |
| 51 | 52 | { } |
| 52 | 53 | |
| 53 | 54 | required_device<cpu_device> m_maincpu; |
| 54 | 55 | required_device<pia6821_device> m_pia0; |
| 55 | 56 | required_device<pia6821_device> m_pia1; |
| 57 | required_device<speaker_sound_device> m_speaker; |
| 56 | 58 | required_shared_ptr<UINT8> m_videoram; |
| 59 | DECLARE_WRITE_LINE_MEMBER(speaker_w); |
| 57 | 60 | DECLARE_WRITE8_MEMBER(kbd_put); |
| 58 | 61 | DECLARE_READ8_MEMBER(pia1_b_in); |
| 59 | 62 | DECLARE_READ_LINE_MEMBER(pia1_cb1_in); |
| r23614 | r23615 | |
| 142 | 145 | DEVCB_CPU_INPUT_LINE("maincpu", M6809_IRQ_LINE) |
| 143 | 146 | }; |
| 144 | 147 | |
| 148 | WRITE_LINE_MEMBER( poly_state::speaker_w ) |
| 149 | { |
| 150 | m_speaker->level_w(state); |
| 151 | } |
| 152 | |
| 145 | 153 | static const ptm6840_interface poly_ptm_intf = |
| 146 | 154 | { |
| 147 | 155 | XTAL_12MHz / 3, |
| 148 | 156 | { 0, 0, 0 }, |
| 149 | 157 | { DEVCB_NULL, |
| 150 | | DEVCB_NULL, |
| 151 | | DEVCB_NULL }, |
| 152 | | DEVCB_NULL |
| 158 | DEVCB_DEVICE_LINE_MEMBER("ptm", ptm6840_device, set_c1), |
| 159 | DEVCB_DRIVER_LINE_MEMBER(poly_state, speaker_w) }, |
| 160 | DEVCB_CPU_INPUT_LINE("maincpu", M6809_IRQ_LINE) |
| 153 | 161 | }; |
| 154 | 162 | |
| 155 | 163 | static ACIA6850_INTERFACE( acia_intf ) |
| r23614 | r23615 | |
| 209 | 217 | MCFG_CPU_ADD("maincpu", M6809E, XTAL_12MHz / 3) // 12.0576MHz |
| 210 | 218 | MCFG_CPU_PROGRAM_MAP(poly_mem) |
| 211 | 219 | |
| 212 | | |
| 213 | 220 | /* video hardware */ |
| 214 | 221 | MCFG_SCREEN_ADD("screen", RASTER) |
| 215 | 222 | MCFG_SCREEN_REFRESH_RATE(50) |
| r23614 | r23615 | |
| 218 | 225 | MCFG_SCREEN_VISIBLE_AREA(0, 40 * 12 - 1, 0, 24 * 20 - 1) |
| 219 | 226 | MCFG_SCREEN_UPDATE_DEVICE("saa5050", saa5050_device, screen_update) |
| 220 | 227 | |
| 228 | /* sound hardware */ |
| 229 | MCFG_SPEAKER_STANDARD_MONO("mono") |
| 230 | MCFG_SOUND_ADD("speaker", SPEAKER_SOUND, 0) |
| 231 | MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) |
| 232 | |
| 221 | 233 | /* Devices */ |
| 222 | 234 | MCFG_SAA5050_ADD("saa5050", 6000000, poly_saa5050_intf) |
| 223 | 235 | MCFG_PIA6821_ADD( "pia0", poly_pia0_intf ) |
| r23614 | r23615 | |
| 253 | 265 | |
| 254 | 266 | /* Driver */ |
| 255 | 267 | |
| 256 | | /* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ |
| 257 | | COMP( 1981, poly1, 0, 0, poly, poly, driver_device, 0, "Polycorp", "Poly-1 Educational Computer", GAME_NOT_WORKING | GAME_NO_SOUND ) |
| 268 | /* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */ |
| 269 | COMP( 1981, poly1, 0, 0, poly, poly, driver_device, 0, "Polycorp", "Poly-1 Educational Computer", GAME_NOT_WORKING ) |