Previous 199869 Revisions Next

r34861 Thursday 5th February, 2015 at 11:33:07 UTC by Robbbert
(MESS) kaypro: kayproii, kaypro4, omni2 can boot from floppy, marked as working.
Kaypro4p88 and kaypro10 can also boot from floppy but have other issues.
[src/mame/drivers]megadrvb.c
[src/mame/machine]315-5838_317-0229_comp.c 315-5881_crypt.c 315_5296.c
[src/mess/drivers]kaypro.c
[src/mess/includes]kaypro.h
[src/mess/machine]kaypro.c
[src/tools]chdman.c

trunk/src/mame/drivers/megadrvb.c
r243372r243373
886886GAME( 1994, ssf2mdb,  0, megadrvb_6b,  ssf2mdb,  md_boot_state,  ssf2mdb,  ROT0, "bootleg / Capcom", "Super Street Fighter II - The New Challengers (bootleg of Japanese MegaDrive version)", 0)
887887GAME( 1993, srmdb,    0, megadrvb,     srmdb,    md_boot_state,  srmdb,    ROT0, "bootleg / Konami", "Sunset Riders (bootleg of Megadrive version)", 0)
888888GAME( 1995, topshoot, 0, md_bootleg,   topshoot, md_boot_state,  topshoot, ROT0, "Sun Mixing",       "Top Shooter", 0)
889GAME( 1993, sonic2mb, 0, megadrvb,     aladmdb,  md_boot_state,  aladmdb,  ROT0, "bootleg / Sega",   "Sonic The Hedgehog 2 (bootleg of Megadrive version)", GAME_NOT_WORKING )
889GAME( 1993, sonic2mb, 0, megadrvb,     aladmdb,  md_boot_state,  aladmdb,  ROT0, "bootleg / Sega",   "Sonic 2 (bootleg of Megadrive version)", GAME_NOT_WORKING )
trunk/src/mame/machine/315-5838_317-0229_comp.c
r243372r243373
3939//#define DEBUG_DATA_DUMP
4040
4141sega_315_5838_comp_device::sega_315_5838_comp_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
42   : device_t(mconfig, SEGA315_5838_COMP, "Sega 315-5838 / 317-0029 Compression (Encryption?)", tag, owner, clock, "sega315_5838", __FILE__)
42   : device_t(mconfig, SEGA315_5838_COMP, "Sega 315-5838 / 317-0029 Compression (Encryption?)", tag, owner, clock, "SEGA315_5838", __FILE__)
4343{
4444}
4545
trunk/src/mame/machine/315-5881_crypt.c
r243372r243373
1919
2020
2121sega_315_5881_crypt_device::sega_315_5881_crypt_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
22   : device_t(mconfig, SEGA315_5881_CRYPT, "Sega 315-5881 Encryption", tag, owner, clock, "sega315_5881", __FILE__)
22   : device_t(mconfig, SEGA315_5881_CRYPT, "Sega 315-5881 Encryption", tag, owner, clock, "SEGA315_5881", __FILE__)
2323{
2424}
2525
trunk/src/mame/machine/315_5296.c
r243372r243373
3030//-------------------------------------------------
3131
3232sega_315_5296_device::sega_315_5296_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
33   : device_t(mconfig, SEGA_315_5296, "Sega 315-5296 I/O", tag, owner, clock, "315_5296", __FILE__),
33   : device_t(mconfig, SEGA_315_5296, "Sega 315-5296 I/O", tag, owner, clock, "315-5296", __FILE__),
3434   m_in_pa_cb(*this),
3535   m_in_pb_cb(*this),
3636   m_in_pc_cb(*this),
trunk/src/mess/drivers/kaypro.c
r243372r243373
99    telephone cord, complete with modular plug on each end. The keyboard carries
1010    its own Intel 87C51 processor and is an intelligent device.
1111
12    Things that need doing:
12    ToDo:
1313
1414    - See about getting keyboard to work as a serial device.
1515    - Need dump of 87C51 cpu in the keyboard.
1616
17    - Only kayproii boots up, the remainder have floppy-disk problems.
17    - Kaypro 2x, 4a: floppy not working "No operating system present on this disk"
18    - Kaypro 10: Boots from floppy, but B drive not working "Bdos Err on B: Bad Sector"
19    - Kaypro 4p88: works as a normal Kaypro 4, extra hardware not done
20    - Kaypro Robie: has twin 2.6MB 5.25 floppy drives which we don't support, no software available
1821
19    - The DSK format needs to be supported. It is commented out until the code gets written.
20
2122    - Hard Disk not emulated.
2223      The controller is a WD1002 (original version, for Winchester drives).
2324
r243372r243373
162163
163164************************************************************/
164165
165//FLOPPY_FORMATS_MEMBER( kaypro_state::kayproii_floppy_formats )
166//  FLOPPY_KAYPROII_FORMAT
167//FLOPPY_FORMATS_END
168
169//FLOPPY_FORMATS_MEMBER( kaypro_state::kaypro2x_floppy_formats )
170//  FLOPPY_KAYPRO2X_FORMAT
171//FLOPPY_FORMATS_END
172
173166static SLOT_INTERFACE_START( kaypro_floppies )
174   SLOT_INTERFACE( "525dd", FLOPPY_525_DD )
167   SLOT_INTERFACE( "drive0", FLOPPY_525_DD )
168   SLOT_INTERFACE( "drive1", FLOPPY_525_DD )
175169SLOT_INTERFACE_END
176170
177171
r243372r243373
180174   MCFG_CPU_ADD("maincpu", Z80, XTAL_20MHz / 8)
181175   MCFG_CPU_PROGRAM_MAP(kaypro_map)
182176   MCFG_CPU_IO_MAP(kayproii_io)
183   MCFG_CPU_VBLANK_INT_DRIVER("screen", kaypro_state, kay_kbd_interrupt)  /* this doesn't actually exist, it is to run the keyboard */
177   MCFG_CPU_VBLANK_INT_DRIVER("screen", kaypro_state, kay_kbd_interrupt)  /* this doesn't actually exist, it is to run the keyboard */
184178   MCFG_CPU_CONFIG(kayproii_daisy_chain)
185179
186180   MCFG_MACHINE_START_OVERRIDE(kaypro_state, kayproii )
r243372r243373
230224   MCFG_WD_FDC_INTRQ_CALLBACK(WRITELINE(kaypro_state, fdc_intrq_w))
231225   MCFG_WD_FDC_DRQ_CALLBACK(WRITELINE(kaypro_state, fdc_drq_w))
232226   MCFG_WD_FDC_FORCE_READY
233   //MCFG_FLOPPY_DRIVE_ADD("fdc:0", kaypro_floppies, "525dd", kaypro_state::kayproii_floppy_formats)
234   //MCFG_FLOPPY_DRIVE_ADD("fdc:1", kaypro_floppies, "525dd", kaypro_state::kayproii_floppy_formats)
235   MCFG_FLOPPY_DRIVE_ADD("fdc:0", kaypro_floppies, "525dd", floppy_image_device::default_floppy_formats)
236   MCFG_FLOPPY_DRIVE_ADD("fdc:1", kaypro_floppies, "525dd", floppy_image_device::default_floppy_formats)
227   MCFG_FLOPPY_DRIVE_ADD("fdc:0", kaypro_floppies, "drive0", floppy_image_device::default_floppy_formats)
228   MCFG_FLOPPY_DRIVE_ADD("fdc:1", kaypro_floppies, "drive1", floppy_image_device::default_floppy_formats)
237229   MCFG_SOFTWARE_LIST_ADD("flop_list","kayproii")
238230MACHINE_CONFIG_END
239231
r243372r243373
250242   MCFG_CPU_ADD("maincpu", Z80, XTAL_16MHz / 4)
251243   MCFG_CPU_PROGRAM_MAP(kaypro_map)
252244   MCFG_CPU_IO_MAP(kaypro2x_io)
253   MCFG_CPU_VBLANK_INT_DRIVER("screen", kaypro_state, kay_kbd_interrupt)
245   MCFG_CPU_VBLANK_INT_DRIVER("screen", kaypro_state, kay_kbd_interrupt)
254246   MCFG_CPU_CONFIG(kaypro2x_daisy_chain)
255247
256248   MCFG_MACHINE_RESET_OVERRIDE(kaypro_state, kaypro )
r243372r243373
266258
267259   MCFG_GFXDECODE_ADD("gfxdecode", "palette", kaypro2x)
268260   MCFG_PALETTE_ADD("palette", 3)
269   MCFG_PALETTE_INIT_OWNER(kaypro_state,kaypro)
261   MCFG_PALETTE_INIT_OWNER(kaypro_state, kaypro)
270262
271263   /* sound hardware */
272264   MCFG_SPEAKER_STANDARD_MONO("mono")
r243372r243373
295287   MCFG_WD_FDC_INTRQ_CALLBACK(WRITELINE(kaypro_state, fdc_intrq_w))
296288   MCFG_WD_FDC_DRQ_CALLBACK(WRITELINE(kaypro_state, fdc_drq_w))
297289   MCFG_WD_FDC_FORCE_READY
298   //MCFG_FLOPPY_DRIVE_ADD("fdc:0", kaypro_floppies, "525dd", kaypro_state::kaypro2x_floppy_formats)
299   //MCFG_FLOPPY_DRIVE_ADD("fdc:1", kaypro_floppies, "525dd", kaypro_state::kaypro2x_floppy_formats)
300   MCFG_FLOPPY_DRIVE_ADD("fdc:0", kaypro_floppies, "525dd", floppy_image_device::default_floppy_formats)
301   MCFG_FLOPPY_DRIVE_ADD("fdc:1", kaypro_floppies, "525dd", floppy_image_device::default_floppy_formats)
290   MCFG_FLOPPY_DRIVE_ADD("fdc:0", kaypro_floppies, "drive0", floppy_image_device::default_floppy_formats)
291   MCFG_FLOPPY_DRIVE_ADD("fdc:1", kaypro_floppies, "drive1", floppy_image_device::default_floppy_formats)
302292MACHINE_CONFIG_END
303293
304294static MACHINE_CONFIG_DERIVED( omni2, kaypro4 )
r243372r243373
431421
432422/*    YEAR  NAME      PARENT    COMPAT  MACHINE   INPUT    CLASS         INIT         COMPANY                 FULLNAME */
433423COMP( 1982, kayproii,   0,        0,    kayproii, kay_kbd, kaypro_state, kaypro, "Non Linear Systems",  "Kaypro II - 2/83" , 0 )
434COMP( 1983, kaypro4,    kayproii, 0,    kaypro4,  kay_kbd, kaypro_state, kaypro, "Non Linear Systems",  "Kaypro 4 - 4/83" , GAME_NOT_WORKING ) // model 81-004
424COMP( 1983, kaypro4,    kayproii, 0,    kaypro4,  kay_kbd, kaypro_state, kaypro, "Non Linear Systems",  "Kaypro 4 - 4/83" , 0 ) // model 81-004
435425COMP( 1983, kaypro4p88, kayproii, 0,    kaypro4,  kay_kbd, kaypro_state, kaypro, "Non Linear Systems",  "Kaypro 4 plus88 - 4/83" , GAME_NOT_WORKING ) // model 81-004 with an added 8088 daughterboard and rom
436COMP( 198?, omni2,      kayproii, 0,    omni2,    kay_kbd, kaypro_state, kaypro, "Non Linear Systems",  "Omni II" , GAME_NOT_WORKING )
426COMP( 198?, omni2,      kayproii, 0,    omni2,    kay_kbd, kaypro_state, kaypro, "Non Linear Systems",  "Omni II Logic Analyzer" , 0 )
437427COMP( 1984, kaypro2x,   0,        0,    kaypro2x, kay_kbd, kaypro_state, kaypro, "Non Linear Systems",  "Kaypro 2x" , GAME_NOT_WORKING ) // model 81-025
438428COMP( 1984, kaypro4a,   kaypro2x, 0,    kaypro2x, kay_kbd, kaypro_state, kaypro, "Non Linear Systems",  "Kaypro 4 - 4/84" , GAME_NOT_WORKING ) // model 81-015
439429// Kaypro 4/84 plus 88 goes here, model 81-015 with an added 8088 daughterboard and rom
trunk/src/mess/includes/kaypro.h
r243372r243373
2121   };
2222
2323   kaypro_state(const machine_config &mconfig, device_type type, const char *tag)
24      : driver_device(mconfig, type, tag),
25      m_maincpu(*this, "maincpu"),
26      m_pio_g(*this, "z80pio_g"),
27      m_pio_s(*this, "z80pio_s"),
28      m_sio(*this, "z80sio"),
29      m_sio2x(*this, "z80sio_2x"),
30      m_centronics(*this, "centronics"),
31      m_fdc(*this, "fdc"),
32      m_floppy0(*this, "fdc:0"),
33      m_floppy1(*this, "fdc:1"),
34      m_crtc(*this, "crtc"),
35      m_beep(*this, "beeper"),
36      m_palette(*this, "palette")
24      : driver_device(mconfig, type, tag)
25      , m_palette(*this, "palette")
26      , m_maincpu(*this, "maincpu")
27      , m_pio_g(*this, "z80pio_g")
28      , m_pio_s(*this, "z80pio_s")
29      , m_sio(*this, "z80sio")
30      , m_sio2x(*this, "z80sio_2x")
31      , m_centronics(*this, "centronics")
32      , m_fdc(*this, "fdc")
33      , m_floppy0(*this, "fdc:0")
34      , m_floppy1(*this, "fdc:1")
35      , m_crtc(*this, "crtc")
36      , m_beep(*this, "beeper")
3737   {}
3838
3939   DECLARE_WRITE_LINE_MEMBER(write_centronics_busy);
r243372r243373
5959   DECLARE_PALETTE_INIT(kaypro);
6060   DECLARE_MACHINE_RESET(kay_kbd);
6161   DECLARE_DRIVER_INIT(kaypro);
62   DECLARE_FLOPPY_FORMATS(kayproii_floppy_formats);
63   DECLARE_FLOPPY_FORMATS(kaypro2x_floppy_formats);
6462   UINT32 screen_update_kayproii(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
6563   UINT32 screen_update_kaypro2x(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
6664   UINT32 screen_update_omni2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
6765   INTERRUPT_GEN_MEMBER(kay_kbd_interrupt);
68   DECLARE_WRITE_LINE_MEMBER(kaypro_interrupt);
6966   DECLARE_READ8_MEMBER(kaypro_sio_r);
7067   DECLARE_WRITE8_MEMBER(kaypro_sio_w);
7168   MC6845_UPDATE_ROW(kaypro2x_update_row);
r243372r243373
7875   UINT8 *m_p_videoram;
7976   kay_kbd_t *m_kbd;
8077   int m_centronics_busy;
78   required_device<palette_device> m_palette;
8179
82protected:
83   virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr);
84
8580private:
81   bool m_is_motor_off;
82   UINT8 m_fdc_rq;
8683   UINT8 m_system_port;
8784   UINT16 m_mc6845_video_address;
8885   floppy_image_device *m_floppy;
8986   void mc6845_cursor_configure();
9087   void mc6845_screen_configure();
88   virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr);
9189   required_device<cpu_device> m_maincpu;
9290   optional_device<z80pio_device> m_pio_g;
9391   optional_device<z80pio_device> m_pio_s;
r243372r243373
9997   required_device<floppy_connector> m_floppy1;
10098   optional_device<mc6845_device> m_crtc;
10199   required_device<beep_device> m_beep;
102public:
103   required_device<palette_device> m_palette;
104100};
105101
106102
trunk/src/mess/machine/kaypro.c
r243372r243373
1313
1414************************************************************/
1515
16WRITE_LINE_MEMBER(kaypro_state::kaypro_interrupt)
17{
18   m_maincpu->set_input_line(0, state);
19}
20
2116WRITE_LINE_MEMBER( kaypro_state::write_centronics_busy )
2217{
2318   m_centronics_busy = state;
r243372r243373
4843
4944   membank("bankr0")->set_entry(BIT(data, 7));
5045   membank("bank3")->set_entry(BIT(data, 7));
46   m_is_motor_off = BIT(data, 6);
5147
5248   m_floppy = NULL;
5349   if (BIT(data, 0))
r243372r243373
6258   if (m_floppy)
6359   {
6460      m_floppy->mon_w(BIT(data, 6)); // motor on
61      m_floppy->ss_w(!BIT(data, 2)); // signal exists even though drives are single sided
6562   }
6663
6764   output_set_value("ledA", BIT(data, 0));     /* LEDs in artwork */
r243372r243373
107104
108105   membank("bankr0")->set_entry(BIT(data, 7));
109106   membank("bank3")->set_entry(BIT(data, 7));
107   m_is_motor_off = !BIT(data, 4);
110108
111109   m_floppy = NULL;
112110   if (!BIT(data, 0))
r243372r243373
116114      m_floppy = m_floppy1->get_device();
117115
118116   m_fdc->set_floppy(m_floppy);
119   //m_fdc->dden_w(BIT(data, 5)); // not connected
117   m_fdc->dden_w(BIT(data, 5)); // not connected
120118
121119   if (m_floppy)
122120   {
r243372r243373
195193
196194void kaypro_state::device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr)
197195{
196   bool halt;
198197   switch (id)
199198   {
200199   case TIMER_FLOPPY:
201      if (m_maincpu->state_int(Z80_HALT))
200      halt = (bool)m_maincpu->state_int(Z80_HALT);
201      if (m_is_motor_off)
202      {
203         timer_set(attotime::from_hz(10), TIMER_FLOPPY);
204         break;
205      }
206      if ((halt) && (m_fdc_rq & 3) && (m_fdc_rq < 0x80))
207      {
202208         m_maincpu->set_input_line(INPUT_LINE_NMI, ASSERT_LINE);
209         m_fdc_rq |= 0x80;
210      }
211      else
212      if ((m_fdc_rq == 0x80) || ((!halt) && BIT(m_fdc_rq, 7)))
213      {
214         m_maincpu->set_input_line(INPUT_LINE_NMI, CLEAR_LINE);
215         m_fdc_rq &= 0x7f;
216      }
217      timer_set(attotime::from_hz(1e5), TIMER_FLOPPY);
218
203219      break;
204220   default:
205221      assert_always(FALSE, "Unknown id in kaypro_state::device_timer");
r243372r243373
208224
209225WRITE_LINE_MEMBER( kaypro_state::fdc_intrq_w )
210226{
211   if (state)
212      timer_set(attotime::zero, TIMER_FLOPPY);
213   else
214      m_maincpu->set_input_line(INPUT_LINE_NMI, CLEAR_LINE);
227   m_fdc_rq = (m_fdc_rq & 0x82) | state;
215228}
216229
217230WRITE_LINE_MEMBER( kaypro_state::fdc_drq_w )
218231{
219   if (state)
220      timer_set(attotime::zero, TIMER_FLOPPY);
221   else
222      m_maincpu->set_input_line(INPUT_LINE_NMI, CLEAR_LINE);
223
232   m_fdc_rq = (m_fdc_rq & 0x81) | (state << 1);
224233}
225234
226235
r243372r243373
241250   membank("bankw0")->set_entry(0); // always write to ram
242251   membank("bank3")->set_entry(1); // point at video ram
243252   m_system_port = 0x80;
253   m_fdc_rq = 0;
244254   m_maincpu->reset();
255   timer_set(attotime::from_hz(1), TIMER_FLOPPY);   /* timer for rtc */
245256}
246257
247258
trunk/src/tools/chdman.c
r243372r243373
25882588         // read the hunk into the buffers
25892589         chd_error err = input_chd.read_hunk(framenum, NULL);
25902590         if (err != CHDERR_NONE)
2591         {
2592            UINT64 filepos = core_ftell(input_chd);
2593            report_error(1, "Error reading hunk %" I64FMT "d at offset %" I64FMT "d from CHD file (%s): %s\n", framenum, filepos, params.find(OPTION_INPUT)->cstr(), chd_file::error_string(err));
2594         }
2591            report_error(1, "Error reading hunk %" I64FMT "d from CHD file (%s): %s\n", framenum, params.find(OPTION_INPUT)->cstr(), chd_file::error_string(err));
25952592
25962593         // write audio
25972594         for (int chnum = 0; chnum < channels; chnum++)


Previous 199869 Revisions Next


© 1997-2024 The MAME Team