Commit Graph

76 Commits

Author SHA1 Message Date
Miodrag Milanovic
0e19f641d3 Cleanups and version bump 2013-01-11 07:32:46 +00:00
Curt Coder
b9a2b20e61 (MESS) Removed unnecessary includes, and fixed a floppy bug. (nw) 2012-12-09 20:52:23 +00:00
Curt Coder
9046ce0dc5 sed1310: Cleanup. (nw)
(MESS) bw2: Fixed memory mapping. (nw)
(MESS) msm6255: Refactored to use device_memory_interface. (nw)

(MESS) floppy: Added macros for declaring modern floppy formats. The generic floppy formats (D88/DFI/IMD/IPF/MFI/MFM) are now automatically supported in each driver using the modern floppy code. [Curt Coder]
2012-11-22 19:33:19 +00:00
Aaron Giles
ecfbeb7fd0 Created a base class delegate_common_base for all delegate
types. Created a binding_type_exception which is thrown when
a bind attempt fails due to mismatched types.

Added helper templates to driver_device to wrap legacy
device read/write handlers into driver_device member functions.
This should help move some things forward until more common
code is converted into proper devices.

Introduce new module devcb2 which contains modernized
versions of devcb. Compared to previous implementation
this one is simpler overall, trampolining calls through
a single internal set of adapter functions. The new
versions are also designed to be specified in the
machine_config rather than in structures, so they are
no longer simple POD types. Additional new/changed
features:

 * reads and writes can map to delegates for line or 8/16/32/64-bit
 * reads and writes can map to an I/O port
 * reads can be mapped to a constant value, with or without logging
 * writes can be mapped to a device's input line
 * all reads/writes can have a shift, mask, and/or xor applied
 * devices can opt to make the functions safe-if-NULL when resolving
 * only member function types are supported

Rewrote the YM2151 interface to be fully modernized, and
removed the ym2151_interface struct in favor of inline configs
using the new devcb2 mechanism. In many cases, removed
no longer needed trampolines, instead taking advantage of
direct support for input line writes.
2012-10-14 06:28:35 +00:00
Olivier Galibert
9d1aaf97ae (mess) upd765: Modernize [O. Galibert]
Remaining TODO list:
- take WP into account

- test the amstrad, implement its observational format (edsk) using
  pasti as a start.  Or find the legendary amstrad IPFs.  Or both.

- correct read track, the implementation is completely wrong.  See
  previous for testing, it's only used in protections the check the
  inter-sector gaps.

- shake and bake on the amstrad, protections are the best to find bugs
  in a fdc

- add the scan id commands, but nothing seems to use them

- debug the 2.88M formatting which is unreliable.  Fix its IDAM/DAM
  gap size on formatting too (but that's not what's making it
  unreliable)

- test all the systems that were hit, and fix what needs to be fixed.
  Beware that multiple problems may happen:
  - upd765 may be wrong
  - the driver may not be working
  - the hookup may be wrong/incomplete (bitrate selection and floppy
    rpm in particular)
  - the driver may be too limited for the new implementation (the x68k
    dma device does not handle non-instant dma yet for instance)

- report invalid command when appropriate depending on the actual chip
  emulated

- add the russian clones with their real names
2012-10-10 15:33:51 +00:00
Curt Coder
31387945c8 srcclean (nw) 2012-10-07 09:12:56 +00:00
Miodrag Milanovic
467aeb1cca ups (nw) 2012-10-03 14:10:47 +00:00
Miodrag Milanovic
684061a2ec modernization and cleanup of x68k (no whatsnew) 2012-10-03 13:45:23 +00:00
Miodrag Milanovic
e52d60b7f8 Replace some *_DEVICE_HANDLER with _MEMBER calls in MESS section (no whatsnew) 2012-10-03 09:27:22 +00:00
Miodrag Milanovic
3679f744c2 modernization or timer callbacks part 2 (no whatsnew) 2012-09-24 14:43:01 +00:00
Miodrag Milanovic
1f9d1cd620 change from device->machine() to space.machine() in device handlers in order to make next changes easier (no whatsnew) 2012-09-21 08:25:27 +00:00
Aaron Giles
621ac620ae Since nobody checks for NULLs anyway, make
device_memory_interface::space() assert against NULL and
return a reference, and pushed references throughout all 
address space usage in the system. Added a has_space() 
method to check for those rare case when it is ambiguous.
[Aaron Giles]

Also reinstated the generic space and added fatal error
handlers if anyone tries to actually read/write from it.
2012-09-19 19:48:09 +00:00
Miodrag Milanovic
a1b116c06f INTERRUPT_GEN -> INTERRUPT_GEN_MEMBER for MESS part (no whatsnew) 2012-09-18 14:45:06 +00:00
Miodrag Milanovic
5ddbca3e7a Modernized screen update calls (no whatsnew) 2012-09-17 15:00:31 +00:00
Aaron Giles
3cce7e019e Memory handler normalization, part 2. Change legacy
read/write handlers to take an address_space & instead
of an address_space *. Also update pretty much all other
functions to take a reference where appropriate.
[Aaron Giles]
2012-09-17 08:22:16 +00:00
Aaron Giles
cc16777cce Memory handler normalization, part 1.
READ/WRITE_DEVICE*_HANDLERs are now passed an
address_space &, and the 8-bit variants get a mem_mask
as well. This means they are now directly compatible
with the member function delegates. Added a generic
address space to the driver_device that can be used
when no specific address space is available. Also
added DECLARE_READ/WRITE_DEVICE*_HANDLER macros to
declare device callbacks with default mem_mask
parameters. [Aaron Giles]
2012-09-17 07:43:37 +00:00
Miodrag Milanovic
219e664785 Massive change, MACHINE_START\RESET, VIDEO_START\RESET and PALETTE_INIT changed to be members of state classes (no whatsnew) 2012-09-13 11:15:32 +00:00
Aaron Giles
17e66e39fd Clear out remaining global inlines in diexec.h. 2012-09-12 06:07:51 +00:00
Aaron Giles
0ef1e6deb4 Closeout on old macros. Retired cputag_set_input_line
and cputag_set_input_line_and_vector, replacing them
with machine.device("tag")->execute().set_input_line[_and_vector].
[Aaron Giles]
2012-09-12 03:35:06 +00:00
Aaron Giles
8669a28810 Add safe_pc() and safe_pcbase() methods to device_t.
Convert all cpu_get_pc() to safe_pc() and
cpu_getpreviouspc() to safe_basepc(). Removed the
old macros.
2012-09-11 05:50:50 +00:00
Oliver Stöneberg
df7f494dba added missing \n to remaining fatalerror() calls (no whatsnew) 2012-09-09 07:09:46 +00:00
smf-
24f0842e1b Split out callbacks from scsibus_device into scscb_device, eventually this will be a SCSI device. SCSIBus_interface is no longer required and has been removed. [smf] 2012-09-06 07:34:28 +00:00
Aaron Giles
95431b690e Remove commented-out references to AM_BASE/_SIZE_LEGACY. 2012-09-04 17:10:04 +00:00
smf-
389625a63c Removed SCSIConfigTable, SCSI devices are now linked using SCSIBUS from MESS. (nw) 2012-08-29 08:35:35 +00:00
smf-
45e9cc7826 glacial SCSI improvements towards NSCSI and beyond, moved the SCSI id onto the device (nw) 2012-08-23 17:53:10 +00:00
Miodrag Milanovic
7285b359d2 Merge of MESS sources (no whatsnew) 2012-08-21 10:41:19 +00:00