Previous 15994 Revisions Next

r1371 Tuesday 4th December, 2007 at 07:52:39 UTC by Curt Coder
[QL] Added sound.
[docs]messnew.txt
[src/mess/drivers]ql.c

src/mess/drivers/ql.c
r1370r1371
33#include "cpu/m68000/m68000.h"
44#include "devices/cartslot.h"
55#include "includes/serial.h"
6#include "sound/speaker.h"
67#include "video/generic.h"
78#include "video/zx8301.h"
89#include "inputx.h"
r1370r1371
1718
1819   TODO:
1920
21   - unicode for port char macros
22   - get rid of keyboard not 100% prompt
23   - microdrive simulation
2024   - RTC register write
21   - proper pound key code (£)
22   - speaker sound
23   - microdrive simulation
24   - M68008 opcode reading interface
2525   - serial data latching?
2626   - transmit interrupt timing
2727   - interface interrupt
2828   - accurate screen timings
29   - ZX8301 cycle stealing
2930   - emulate COMCTL properly
30   - ZX8301 cycle stealing
3131
3232*/
3333
r1370r1371
8282   int ser2_txd, ser2_dtr;
8383   int netout, netin;
8484   int mdrdw, mdselck, mdseld, erase, raw1, raw2;
85   int mdv_motor;
8586} zx8302;
8687
8788static emu_timer *zx8302_txd_timer, *zx8302_ipc_timer, *zx8302_rtc_timer, *zx8302_gap_timer;
r1370r1371
158159
159160static TIMER_CALLBACK( zx8302_gap_tick )
160161{
161   zx8302_interrupt(ZX8302_INT_GAP);
162   if (zx8302.mdv_motor)
163   {
164      zx8302_interrupt(ZX8302_INT_GAP);
165   }
162166}
163167
164168static READ8_HANDLER( zx8302_rtc_r )
r1370r1371
229233   timer_set(ATTOTIME_IN_NSEC(480), NULL, data, zx8302_delayed_ipc_command);
230234}
231235
236/*
237static int zx8302_get_selected_microdrive(void)
238{
239   int i;
240
241   for (i = 0; i < 8; i++)
242   {
243      if (BIT(zx8302.mdv_motor, i)) return 8 - i;
244   }
245
246   return 0;
247}
248*/
249
232250static WRITE8_HANDLER( zx8302_mdv_control_w )
233251{
234252   /*
253     
254      bit      description
255     
256      0      MDSELDH
257      1      MDSELCKH
258      2      MDRDWL
259      3      ERASE
260      4     
261      5     
262      6     
263      7     
264
265   */
266
267   /*
235268   MDV control
236269   at reset; and after data transfer of any mdv
237270      (02 00) 8 times         stop all motors
r1370r1371
256289      get 4 bytes
257290      (02 02) indication to skip PLL sequence: 6*00,2*ff
258291   */
292
293   zx8302.mdseld = BIT(data, 0);
294   zx8302.mdselck = BIT(data, 1);
295   zx8302.mdrdw = BIT(data, 2) ? 0 : 1;
296   zx8302.erase = BIT(data, 3);
297
298   // Microdrive selection shift register
299
300   if (zx8302.mdselck)
301   {
302      zx8302.mdv_motor >>= 1;
303      zx8302.mdv_motor |= (zx8302.mdseld << 7);
304
305//      logerror("MDV selected %u\n", zx8302_get_selected_microdrive());
306   }
307
308//   logerror("MDV control %x\n", data);
259309}
260310
261311static READ8_HANDLER( zx8302_irq_status_r )
r1370r1371
412462      break;
413463   }
414464
465   speaker_level_w(0, BIT(data, 1));
466
415467   ipc.ser2_cts = BIT(data, 4);
416468   ipc.ser1_dtr = BIT(data, 5);
417469
r1370r1371
807859   MDRV_PALETTE_INIT(zx8301)
808860   MDRV_VIDEO_START(zx8301)
809861   MDRV_VIDEO_UPDATE(zx8301)
862
863   // sound hardware
864   MDRV_SPEAKER_STANDARD_MONO("mono")
865   MDRV_SOUND_ADD(SPEAKER, 0)
866   MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
810867MACHINE_DRIVER_END
811868
812869static MACHINE_DRIVER_START( ql_ntsc )
r1370r1371
10431100/* Computer Drivers */
10441101
10451102/*    YEAR  NAME    PARENT  COMPAT  MACHINE     INPUT   INIT    CONFIG  COMPANY                     FULLNAME        FLAGS */
1046COMP( 1984, ql,     0,      0,      ql,         ql,     0,      ql,     "Sinclair Research Ltd",    "QL (UK)",      GAME_NO_SOUND )
1047COMP( 1985, ql_us,  ql,     0,      ql_ntsc,    ql,     0,      ql,     "Sinclair Research Ltd",    "QL (USA)",     GAME_NO_SOUND )
1048COMP( 1985, ql_es,  ql,     0,      ql,         ql_es,  0,      ql,     "Sinclair Research Ltd",    "QL (Spain)",   GAME_NO_SOUND )
1049COMP( 1985, ql_fr,  ql,     0,      ql,         ql,     0,      ql,     "Sinclair Research Ltd",    "QL (France)",  GAME_NO_SOUND )
1050COMP( 1985, ql_de,  ql,     0,      ql,         ql_de,  0,      ql,     "Sinclair Research Ltd",    "QL (Germany)", GAME_NO_SOUND )
1051COMP( 1985, ql_it,  ql,     0,      ql,         ql_it,  0,      ql,     "Sinclair Research Ltd",    "QL (Italy)",   GAME_NO_SOUND )
1052COMP( 1985, ql_se,  ql,     0,      ql,         ql,     0,      ql,     "Sinclair Research Ltd",    "QL (Sweden)",  GAME_NO_SOUND )
1103COMP( 1984, ql,     0,      0,      ql,         ql,     0,      ql,     "Sinclair Research Ltd",    "QL (UK)",      GAME_SUPPORTS_SAVE )
1104COMP( 1985, ql_us,  ql,     0,      ql_ntsc,    ql,     0,      ql,     "Sinclair Research Ltd",    "QL (USA)",     GAME_SUPPORTS_SAVE )
1105COMP( 1985, ql_es,  ql,     0,      ql,         ql_es,  0,      ql,     "Sinclair Research Ltd",    "QL (Spain)",   GAME_SUPPORTS_SAVE )
1106COMP( 1985, ql_fr,  ql,     0,      ql,         ql,     0,      ql,     "Sinclair Research Ltd",    "QL (France)",  GAME_SUPPORTS_SAVE )
1107COMP( 1985, ql_de,  ql,     0,      ql,         ql_de,  0,      ql,     "Sinclair Research Ltd",    "QL (Germany)", GAME_SUPPORTS_SAVE )
1108COMP( 1985, ql_it,  ql,     0,      ql,         ql_it,  0,      ql,     "Sinclair Research Ltd",    "QL (Italy)",   GAME_SUPPORTS_SAVE )
1109COMP( 1985, ql_se,  ql,     0,      ql,         ql,     0,      ql,     "Sinclair Research Ltd",    "QL (Sweden)",  GAME_SUPPORTS_SAVE )
10531110COMP( 1985, ql_dk,  ql,     0,      ql,         ql,     0,      ql,     "Sinclair Research Ltd",    "QL (Denmark)", GAME_NOT_WORKING )
1054COMP( 1985, ql_gr,  ql,     0,      ql,         ql,     0,      ql,     "Sinclair Research Ltd",    "QL (Greece)",  GAME_NO_SOUND )
1111COMP( 1985, ql_gr,  ql,     0,      ql,         ql,     0,      ql,     "Sinclair Research Ltd",    "QL (Greece)",  GAME_SUPPORTS_SAVE )
docs/messnew.txt
r1370r1371
99System Driver Changes:
1010----------------------
1111- [FAMICOM] Fixed reads to $4031-2 when a disk is not mounted.  [MAMEPlus Team]
12- [QL] Added sound. [Curt Coder]
1213
1314
1415

Previous 15994 Revisions Next


© 1998-2018 The MESS Team