Previous 199869 Revisions Next

r20292 Wednesday 16th January, 2013 at 23:16:12 UTC by Robbbert
(MESS) Placeholder for new system (nw)
[src/mess]mess.lst
[src/mess/drivers]binbug.c

trunk/src/mess/mess.lst
r20291r20292
21962196nectk85
21972197nd80z
21982198binbug
2199dgosz80
trunk/src/mess/drivers/binbug.c
r20291r20292
1919        video output. Method of output is through a DG640 board (sold by
2020        Applied Technology) which uses a MCM6574 as a character generator.
2121        The DG640 also supports blinking, reverse-video, and LORES graphics.
22        It is a S100 card.
22        It is a S100 card, also known as ETI-640.
2323
2424        Keyboard input, like PIPBUG, is via a serial device.
2525        The baud rate is 300, 8N1.
r20291r20292
3636        - 5.2 ACOS tape system, 1200 baud terminal
3737
3838
39   Status:
40   - DG640 is completely emulated, even though BINBUG doesn't use most
39        Status:
40        - DG640 is completely emulated, even though BINBUG doesn't use most
4141          of its features.
4242        - BINBUG works except that the cassette interface isn't the same as
4343          real hardware. But you can save, and load it back.
r20291r20292
7373   UINT8 m_framecnt;
7474   virtual void video_start();
7575   UINT32 screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
76   required_device<serial_keyboard_device> m_keyboard;
77   required_device<cassette_image_device> m_cass;
76   optional_device<serial_keyboard_device> m_keyboard;
77   optional_device<cassette_image_device> m_cass;
7878   required_shared_ptr<const UINT8> m_p_videoram;
7979   required_shared_ptr<const UINT8> m_p_attribram;
8080};
r20291r20292
330330
331331/*    YEAR  NAME    PARENT  COMPAT   MACHINE    INPUT   CLASS         INIT    COMPANY   FULLNAME       FLAGS */
332332COMP( 1980, binbug, pipbug,   0,     binbug,    binbug, driver_device, 0,  "MicroByte", "BINBUG 3.6", 0 )
333
334
335
336/******************************************************************************************************************/
337
338/*
339
340DGOS-Z80 (ETI-680)
341
342ROM is a bad dump, corrections are being made.
343*/
344
345
346#include "cpu/z80/z80.h"
347#include "machine/z80ctc.h"
348#include "machine/z80pio.h"
349
350class dgosz80_state : public binbug_state
351{
352public:
353   dgosz80_state(const machine_config &mconfig, device_type type, const char *tag)
354      : binbug_state(mconfig, type, tag),
355   m_maincpu(*this, "maincpu"),
356   m_ctc(*this, "z80ctc"),
357   m_pio(*this, "z80pio")
358   { }
359
360   DECLARE_READ8_MEMBER(porta_r);
361   DECLARE_WRITE8_MEMBER(kbd_put);
362   UINT8 m_term_data;
363   virtual void machine_reset();
364   required_device<cpu_device> m_maincpu;
365   required_device<z80ctc_device> m_ctc;
366   required_device<z80pio_device> m_pio;
367};
368
369static ADDRESS_MAP_START(dgosz80_mem, AS_PROGRAM, 8, dgosz80_state)
370   ADDRESS_MAP_UNMAP_HIGH
371   AM_RANGE( 0x0000, 0xcfff) AM_RAM
372   AM_RANGE( 0xd000, 0xd7ff) AM_ROM
373   AM_RANGE( 0xd800, 0xefff) AM_RAM
374   AM_RANGE( 0xf000, 0xf3ff) AM_RAM AM_SHARE("videoram")
375   AM_RANGE( 0xf400, 0xf7ff) AM_RAM AM_SHARE("attribram")
376ADDRESS_MAP_END
377
378static ADDRESS_MAP_START(dgosz80_io, AS_IO, 8, dgosz80_state)
379   ADDRESS_MAP_UNMAP_HIGH
380   ADDRESS_MAP_GLOBAL_MASK(0xff)
381   AM_RANGE(0x00,0x03) AM_DEVREADWRITE("z80pio", z80pio_device, read_alt, write_alt)
382   AM_RANGE(0x04,0x07) AM_DEVREADWRITE("z80ctc", z80ctc_device, read, write)
383   //AM_RANGE(0x08,0x08) SWP Control and Status
384   //AM_RANGE(0x09,0x09) parallel input port
385   // Optional AM9519 Programmable Interrupt Controller (port c = data, port d = control)
386   //AM_RANGE(0x0c,0x0d) AM_DEVREADWRITE("am9519", am9519_device, read, write)
387ADDRESS_MAP_END
388
389void dgosz80_state::machine_reset()
390{
391   m_maincpu->set_pc(0xd000);
392}
393
394/* Input ports */
395static INPUT_PORTS_START( dgosz80 )
396INPUT_PORTS_END
397
398WRITE8_MEMBER( dgosz80_state::kbd_put )
399{
400   m_term_data = data;
401   m_pio->port_a_write(data);//keyb_r(generic_space(),0,0xff));
402}
403
404static ASCII_KEYBOARD_INTERFACE( dgosz80_keyboard_intf )
405{
406   DEVCB_DRIVER_MEMBER(dgosz80_state, kbd_put)
407};
408
409READ8_MEMBER( dgosz80_state::porta_r )
410{
411   UINT8 data = m_term_data;
412   m_term_data = 0;
413   return data;
414}
415
416static Z80PIO_INTERFACE( z80pio_intf )
417{
418   DEVCB_CPU_INPUT_LINE("maincpu", INPUT_LINE_IRQ0), //IRQ
419   DEVCB_DRIVER_MEMBER(dgosz80_state, porta_r),  // in port A
420   DEVCB_NULL,  // out port A
421   DEVCB_NULL,
422   DEVCB_NULL, // in port B
423   DEVCB_NULL,                 // out port B
424   DEVCB_NULL
425};
426
427static Z80CTC_INTERFACE( z80ctc_intf )
428{
429   DEVCB_CPU_INPUT_LINE("maincpu", INPUT_LINE_IRQ0),       // interrupt handler
430   DEVCB_DEVICE_LINE_MEMBER("z80ctc", z80ctc_device, trg1),        // ZC/TO0 callback
431   DEVCB_DEVICE_LINE_MEMBER("z80ctc", z80ctc_device, trg2),        // ZC/TO1 callback, beep interface
432   DEVCB_DEVICE_LINE_MEMBER("z80ctc", z80ctc_device, trg3)     // ZC/TO2 callback
433};
434
435static MACHINE_CONFIG_START( dgosz80, dgosz80_state )
436   /* basic machine hardware */
437   MCFG_CPU_ADD("maincpu",Z80, XTAL_8MHz / 4)
438   MCFG_CPU_PROGRAM_MAP(dgosz80_mem)
439   MCFG_CPU_IO_MAP(dgosz80_io)
440
441   /* video hardware */
442   MCFG_SCREEN_ADD("screen", RASTER)
443   MCFG_SCREEN_REFRESH_RATE(50)
444   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
445   MCFG_SCREEN_UPDATE_DRIVER(binbug_state, screen_update)
446   MCFG_SCREEN_SIZE(512, 256)
447   MCFG_SCREEN_VISIBLE_AREA(0, 511, 0, 255)
448   MCFG_GFXDECODE(dg640)
449   MCFG_PALETTE_LENGTH(2)
450   MCFG_PALETTE_INIT(monochrome_amber)
451
452   /* Keyboard */
453   MCFG_ASCII_KEYBOARD_ADD("keyb", dgosz80_keyboard_intf)
454
455   /* Devices */
456   MCFG_Z80CTC_ADD( "z80ctc", XTAL_8MHz / 4, z80ctc_intf )
457   MCFG_Z80PIO_ADD( "z80pio", XTAL_8MHz / 4, z80pio_intf )
458MACHINE_CONFIG_END
459
460
461/* ROM definition */
462ROM_START( dgosz80 )
463   ROM_REGION( 0x10000, "maincpu", 0 )
464   ROM_LOAD( "dgosz80.rom", 0xd000, 0x0800, NO_DUMP) //CRC(2cb1ac6e) SHA1(a969883fc767484d6b0fa103cfa4b4129b90441b) )
465
466   ROM_REGION( 0x0800, "chargen", 0 )
467   ROM_LOAD( "6574.bin", 0x0000, 0x0800, CRC(fd75df4f) SHA1(4d09aae2f933478532b7d3d1a2dee7123d9828ca) )
468ROM_END
469
470/* Driver */
471
472/*    YEAR  NAME     PARENT  COMPAT   MACHINE    INPUT    CLASS         INIT    COMPANY            FULLNAME       FLAGS */
473COMP( 1980, dgosz80, 0,      0,       dgosz80,   dgosz80, driver_device, 0,  "David Griffiths", "DGOS-Z80 1.4", GAME_NOT_WORKING | GAME_NO_SOUND_HW )

Previous 199869 Revisions Next


© 1997-2024 The MAME Team