Previous 199869 Revisions Next

r26195 Saturday 16th November, 2013 at 12:06:23 UTC by Curt Coder
(MESS) abc800: Added support for raw 640KB disk images. [Curt Coder]

(MESS) abc800: Fixed fast controller Z80 daisy chain, formatting a disk works now except for a not ready status after the last track. (nw)
[src/emu/bus/abcbus]lux21046.c lux21046.h
[src/lib]lib.mak
[src/lib/formats]abc800_dsk.c* abc800_dsk.h*

trunk/src/emu/bus/abcbus/lux21046.c
r26194r26195
151151
152152static ADDRESS_MAP_START( luxor_55_21046_io, AS_IO, 8, luxor_55_21046_device )
153153   ADDRESS_MAP_UNMAP_HIGH
154   AM_RANGE(0x08, 0x08) AM_MIRROR(0xff07) AM_READ(out_r)
155   AM_RANGE(0x18, 0x18) AM_MIRROR(0xff07) AM_WRITE(inp_w)
156   AM_RANGE(0x28, 0x28) AM_MIRROR(0xff07) AM_WRITE(_4b_w)
157   AM_RANGE(0x38, 0x38) AM_MIRROR(0xff07) AM_WRITE(_9b_w)
158   AM_RANGE(0x48, 0x48) AM_MIRROR(0xff07) AM_WRITE(_8a_w)
159   AM_RANGE(0x58, 0x58) AM_MIRROR(0xff07) AM_MASK(0xff00) AM_READ(_9a_r)
160   AM_RANGE(0x68, 0x6b) AM_MIRROR(0xff04) AM_DEVREAD(SAB1793_TAG, fd1793_t, read)
161   AM_RANGE(0x78, 0x7b) AM_MIRROR(0xff04) AM_DEVWRITE(SAB1793_TAG, fd1793_t, write)
154   AM_RANGE(0x0c, 0x0c) AM_MIRROR(0xff03) AM_READ(out_r)
155   AM_RANGE(0x1c, 0x1c) AM_MIRROR(0xff03) AM_WRITE(inp_w)
156   AM_RANGE(0x2c, 0x2c) AM_MIRROR(0xff03) AM_WRITE(_4b_w)
157   AM_RANGE(0x3c, 0x3c) AM_MIRROR(0xff03) AM_WRITE(_9b_w)
158   AM_RANGE(0x4c, 0x4c) AM_MIRROR(0xff03) AM_WRITE(_8a_w)
159   AM_RANGE(0x5c, 0x5c) AM_MIRROR(0xff07) AM_MASK(0xff00) AM_READ(_9a_r)
160   AM_RANGE(0x68, 0x6b) AM_MIRROR(0xff00) AM_DEVREAD(SAB1793_TAG, fd1793_t, read)
161   AM_RANGE(0x78, 0x7b) AM_MIRROR(0xff00) AM_DEVWRITE(SAB1793_TAG, fd1793_t, write)
162162   AM_RANGE(0x80, 0x80) AM_MIRROR(0xff77) AM_DEVREADWRITE(Z80DMA_TAG, z80dma_device, read, write)
163163ADDRESS_MAP_END
164164
r26194r26195
266266//  wd17xx_interface fdc_intf
267267//-------------------------------------------------
268268
269FLOPPY_FORMATS_MEMBER( luxor_55_21046_device::floppy_formats )
270   FLOPPY_ABC800_FORMAT
271FLOPPY_FORMATS_END
272
269273static SLOT_INTERFACE_START( abc_floppies )
270274   SLOT_INTERFACE( "525sssd", FLOPPY_525_SSSD )
271275   SLOT_INTERFACE( "525sd", FLOPPY_525_SD )
r26194r26195
289293
290294
291295//-------------------------------------------------
296//  z80_daisy_config z80_daisy_chain
297//-------------------------------------------------
298
299static const z80_daisy_config z80_daisy_chain[] =
300{
301   { Z80DMA_TAG },
302   { NULL }
303};
304
305
306//-------------------------------------------------
292307//  MACHINE_CONFIG( luxor_55_21046 )
293308//-------------------------------------------------
294309
295310static MACHINE_CONFIG_FRAGMENT( luxor_55_21046 )
296311   MCFG_CPU_ADD(Z80_TAG, Z80, XTAL_16MHz/4)
312   MCFG_CPU_CONFIG(z80_daisy_chain)
297313   MCFG_CPU_PROGRAM_MAP(luxor_55_21046_mem)
298314   MCFG_CPU_IO_MAP(luxor_55_21046_io)
299315
300316   MCFG_Z80DMA_ADD(Z80DMA_TAG, XTAL_16MHz/4, dma_intf)
301317   MCFG_FD1793x_ADD(SAB1793_TAG, XTAL_16MHz/16)
302318
303   MCFG_FLOPPY_DRIVE_ADD(SAB1793_TAG":0", abc_floppies, "525dd", floppy_image_device::default_floppy_formats)
304   MCFG_FLOPPY_DRIVE_ADD(SAB1793_TAG":1", abc_floppies, "525dd", floppy_image_device::default_floppy_formats)
319   MCFG_FLOPPY_DRIVE_ADD(SAB1793_TAG":0", abc_floppies, "525dd", luxor_55_21046_device::floppy_formats)
320   MCFG_FLOPPY_DRIVE_ADD(SAB1793_TAG":1", abc_floppies, "525dd", luxor_55_21046_device::floppy_formats)
305321MACHINE_CONFIG_END
306322
307323
r26194r26195
398414
399415   PORT_START("SW3")
400416   PORT_DIPNAME( 0x7f, 0x2c, "Card Address" ) PORT_DIPLOCATION("SW3:1,2,3,4,5,6,7")
401   PORT_DIPSETTING(    0x2c, "44 (ABC 832/834/850)" )
402   PORT_DIPSETTING(    0x2d, "45 (ABC 830)" )
403   PORT_DIPSETTING(    0x2e, "46 (ABC 838)" )
417   PORT_DIPSETTING(    0x2c, "44 (ABC 832/834/850)" ) // MF0: MF1:
418   PORT_DIPSETTING(    0x2d, "45 (ABC 830)" ) // MO0: MO1:
419   PORT_DIPSETTING(    0x2e, "46 (ABC 838)" ) // SF0: SF1:
404420
405421   PORT_START("S1") // also S3,S5
406422   PORT_DIPNAME( 0x01, 0x01, "Interface Type" )
trunk/src/emu/bus/abcbus/lux21046.h
r26194r26195
1818#include "abcbus.h"
1919#include "cpu/z80/z80.h"
2020#include "cpu/z80/z80daisy.h"
21#include "formats/abc800_dsk.h"
2122#include "machine/wd_fdc.h"
2223#include "machine/z80dma.h"
2324
r26194r26195
8182   void fdc_intrq_w(bool state);
8283   void fdc_drq_w(bool state);
8384
85   DECLARE_FLOPPY_FORMATS( floppy_formats );
86
8487protected:
8588   // device-level overrides
8689   virtual void device_start();
trunk/src/lib/lib.mak
r26194r26195
9797   $(LIBOBJ)/formats/basicdsk.o    \
9898   $(LIBOBJ)/formats/a26_cas.o     \
9999   $(LIBOBJ)/formats/a5105_dsk.o   \
100   $(LIBOBJ)/formats/abc800_dsk.o  \
100101   $(LIBOBJ)/formats/ace_tap.o     \
101102   $(LIBOBJ)/formats/adam_cas.o    \
102103   $(LIBOBJ)/formats/adam_dsk.o    \
trunk/src/lib/formats/abc800_dsk.c
r0r26195
1// license:BSD-3-Clause
2// copyright-holders:Curt Coder
3/*********************************************************************
4
5    formats/abc800_dsk.c
6
7    Luxor ABC 830/832/838 disk image formats
8
9*********************************************************************/
10
11#include "emu.h"
12#include "formats/abc800_dsk.h"
13
14abc800_format::abc800_format() : wd177x_format(formats)
15{
16}
17
18const char *abc800_format::name() const
19{
20   return "abc800";
21}
22
23const char *abc800_format::description() const
24{
25   return "Luxor ABC 830/832/838 disk image";
26}
27
28const char *abc800_format::extensions() const
29{
30   return "dsk";
31}
32
33const abc800_format::format abc800_format::formats[] = {
34/*   {   //  80K 5 1/4 inch single density double sided
35      floppy_image::FF_525, floppy_image::DSSD, floppy_image::FM,
36      2000,  8, 40, 2, 256, {}, 1, {}, 54, 22, 0
37   },
38
39   {   //  160K 5 1/4 inch double density double sided
40      floppy_image::FF_525, floppy_image::DSDD, floppy_image::MFM,
41      2000,  8, 40, 2, 256, {}, 1, {}, 54, 22, 0
42   },
43*/
44   // track description
45   // 55x4e 12x00 3xf5 fe 2x00 2x01 f7 22x4e 12x00 3xf5 fb 256xe5 f7
46   // 54x4e 12x00 3xf5 fe 2x00 02 01 f7 22x4e 12x00 3xf5 fb 256xe5 f7
47   // 54x4e 12x00 3xf5 fe 2x00 03 01 f7 22x4e 12x00 3xf5 fb 256xe5 f7
48   // 54x4e 12x00 3xf5 fe 2x00 04 01 f7 22x4e 12x00 3xf5 fb 256xe5 f7
49   // 54x4e 12x00 3xf5 fe 2x00 05 01 f7 22x4e 12x00 3xf5 fb 256xe5 f7
50   // 54x4e 12x00 3xf5 fe 2x00 06 01 f7 22x4e 12x00 3xf5 fb 256xe5 f7
51   // 54x4e 12x00 3xf5 fe 2x00 07 01 f7 22x4e 12x00 3xf5 fb 256xe5 f7
52   // 54x4e 12x00 3xf5 fe 2x00 08 01 f7 22x4e 12x00 3xf5 fb 256xe5 f7
53   // 54x4e 12x00 3xf5 fe 2x00 09 01 f7 22x4e 12x00 3xf5 fb 256xe5 f7
54   // 54x4e 12x00 3xf5 fe 2x00 0a 01 f7 22x4e 12x00 3xf5 fb 256xe5 f7
55   // 54x4e 12x00 3xf5 fe 2x00 0b 01 f7 22x4e 12x00 3xf5 fb 256xe5 f7
56   // 54x4e 12x00 3xf5 fe 2x00 0c 01 f7 22x4e 12x00 3xf5 fb 256xe5 f7
57   // 54x4e 12x00 3xf5 fe 2x00 0d 01 f7 22x4e 12x00 3xf5 fb 256xe5 f7
58   // 54x4e 12x00 3xf5 fe 2x00 0e 01 f7 22x4e 12x00 3xf5 fb 256xe5 f7
59   // 54x4e 12x00 3xf5 fe 2x00 0f 01 f7 22x4e 12x00 3xf5 fb 256xe5 f7
60   // 54x4e 12x00 3xf5 fe 2x00 10 01 f7 22x4e 12x00 3xf5 fb 256xe5 f7
61   // 298x4e
62   {   //  640K 5 1/4 inch quad density
63      floppy_image::FF_525, floppy_image::DSQD, floppy_image::MFM,
64      2000, 16, 80, 2, 256, {}, 1, {}, 54, 22, 0
65   },
66/*
67   {   //  1M 8 inch double density
68      floppy_image::FF_8, floppy_image::DSDD, floppy_image::MFM,
69      2000, 16, 77, 2, 256, {}, 1, {}, 55, 22, 84
70   },
71*/
72   {}
73};
74
75const floppy_format_type FLOPPY_ABC800_FORMAT = &floppy_image_format_creator<abc800_format>;
Property changes on: trunk/src/lib/formats/abc800_dsk.c
Added: svn:eol-style
   + native
Added: svn:mime-type
   + text/plain
trunk/src/lib/formats/abc800_dsk.h
r0r26195
1// license:BSD-3-Clause
2// copyright-holders:Curt Coder
3/*********************************************************************
4
5    formats/abc800_dsk.h
6
7    Luxor ABC 830/832/838 disk image formats
8
9*********************************************************************/
10
11#ifndef ABC800_DSK_H_
12#define ABC800_DSK_H_
13
14#include "wd177x_dsk.h"
15
16class abc800_format : public wd177x_format {
17public:
18   abc800_format();
19
20   virtual const char *name() const;
21   virtual const char *description() const;
22   virtual const char *extensions() const;
23
24private:
25   static const format formats[];
26};
27
28extern const floppy_format_type FLOPPY_ABC800_FORMAT;
29
30#endif
Property changes on: trunk/src/lib/formats/abc800_dsk.h
Added: svn:eol-style
   + native
Added: svn:mime-type
   + text/plain

Previous 199869 Revisions Next


© 1997-2024 The MAME Team