summaryrefslogtreecommitdiffstatshomepage
path: root/src/emu/cpu/m6502/m6502.c (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Move all devices into separate part of src tree (nw) Miodrag Milanovic2015-09-131-724/+0
|
* memory: Remove support for decrypted bases, use an address space instead [O. ↵ Olivier Galibert2015-06-241-15/+27
| | | | Galibert]
* did license settings for OG and Andrew, cleared up OSD part for licenses (nw) Miodrag Milanovic2015-05-091-33/+2
|
* Added dummy license headers for EMU section (nw) Miodrag Milanovic2015-05-071-0/+2
|
* moved all to std::string (nw) Miodrag Milanovic2015-04-221-2/+2
|
* string -> str rename due to future conflicts (nw) Miodrag Milanovic2015-04-121-2/+2
|
* m65ce02: Generalize Kale's findings [O. Galibert] Olivier Galibert2015-01-281-1/+1
|
* If we were documented, we'd be dangerous (nw) Olivier Galibert2014-09-171-13/+0
|
* m6502: put back get_cycle() since OG says it'll be needed in future, but ↵ Alex W. Jackson2014-07-021-0/+13
| | | | compile-time disable the slow precalculation/caching (nw)
* m6502: remove expensive and unused attotime precalculation at start of each ↵ Alex W. Jackson2014-07-011-9/+0
| | | | | | | | | | | | | | | | | | | | | | | | | timeslice [Alex Jackson] (nw) This precalculation seems to be part of OG's "CPU core template", as all CPU cores written by him do it. It's used to optimize things like onboard serial ports and high-frequency timers; however, the m6502 and its derivatives have neither onboard serial ports nor high-frequency timers, and the precalculation is simply a boat anchor on drivers with 6502-family CPUs and tight interleaving. mess c64 benchmarks (3.4 GHz Sandy Bridge i5; 64-bit Linux GCC 4.8 build) before: [awj@localhost trunk]$ ./mess64 -window -bench 60 c64 Average speed: 238.17% (59 seconds) [awj@localhost trunk]$ ./mess64 -window -bench 60 c64 Average speed: 236.36% (59 seconds) after: [awj@localhost trunk]$ ./mess64 -window -bench 60 c64 Average speed: 279.93% (59 seconds) [awj@localhost trunk]$ ./mess64 -window -bench 60 c64 Average speed: 279.30% (59 seconds)
* Not everyone calls the base device_start, but they do call the base init() (nw) R. Belmont2014-01-301-2/+2
|
* m6502: expose SYNC pin through devcb2 for more flexibility [R. Belmont] R. Belmont2014-01-301-0/+9
|
* Convert VIA6522 to use DEVCB2 [smf] smf-2013-12-311-0/+5
|
* m6502: Redo the prefetch and reset the state on debugger PC change [O. Galibert] Olivier Galibert2013-05-241-1/+8
|
* modernised the YM3526, which also required adding write lines to the 6502, ↵ smf-2013-05-121-0/+5
| | | | 6809 and z80 [smf]
* M740: Correct disassembly for seb x,A/clb x,A [R. Belmont] R. Belmont2013-03-311-1/+6
|
* M740: correct disassembly of bbs/bbc on A register. [R. Belmont] R. Belmont2013-03-301-0/+5
|
* Expanded device_t constructor with parameters for short name and source file ↵ Miodrag Milanovic2013-03-261-3/+3
| | | | location [Miodrag Milanovic]
* m740: fix branch target disasm for branch-on-bit instructions (nw) R. Belmont2013-03-241-1/+1
|
* M740 CPU family updates: [R. Belmont, O. Galibert] R. Belmont2013-03-231-1/+1
| | | | | | - Support for all T=1 instructions - Added COM and the accumulator-only versions of INC and DEC
* m6502: Seriously untested multi-dispatch-table support [O. Galibert] Olivier Galibert2013-03-201-2/+5
|
* m740: Correct disassembly for bit+zp+rel. offset form of BBC/BBS [R. Belmont] R. Belmont2013-01-201-0/+5
|
* Cleanups and version bumpmame0148 Miodrag Milanovic2013-01-111-6/+6
|
* Preliminary support for M740 (M5074x/M5074x) CPU family [R. Belmont] R. Belmont2012-12-271-0/+15
|
* Cleanup (nw) Olivier Galibert2012-12-171-2/+2
|
* n2a03: Put a second irq line logically-ored with the normal one [O. Galibert] Olivier Galibert2012-11-071-1/+5
|
* 65c02: Fix the bitwise ops and their disassembly [O. Galibert] Olivier Galibert2012-11-071-5/+3
|
* m6502: More interrupt fixing [O. Galibert] Olivier Galibert2012-11-071-1/+2
|
* 6502: Rewrite modern, cycle-exact and interruptible [O. Galibert] Olivier Galibert2012-11-061-903/+569
|
* Since nobody checks for NULLs anyway, make Aaron Giles2012-09-191-2/+2
| | | | | | | | | | | | 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.
* Memory handler normalization, part 2. Change legacy Aaron Giles2012-09-171-2/+2
| | | | | | | 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]
* Clean-ups and version bumpmame0147 Miodrag Milanovic2012-09-171-1/+1
| | | note: hoarded dump removed too from coco_cart.xml, this will not be tolerated
* Final round of struct/union/enum normalization. Aaron Giles2012-09-161-2/+1
|
* m6502: Refactored the indexed read/write to use devcb, and fixed the ↵ Curt Coder2012-09-041-16/+14
| | | | | | peripheral port for plus4. (nw) (MESS) apple3: Fixed the CPU interface. (nw) (MESS) vic10: Refactored to use datassette slot interface. (nw)
* m6502: Fixed CPU peripheral port behavior by introducing pull-up and ↵ Curt Coder2012-09-041-5/+34
| | | | | pull-down masks to the CPU interface. [Curt Coder] (MESS) c64: Fixed CPU port, tsuit215 CPUPORT test passes now. [Curt Coder]
* DEVINFO_* to CPU_INFO_*, and some cleanups (no whatsnew) Miodrag Milanovic2012-09-031-36/+36
|
* Renamed device_irq_callback to device_irq_acknowledge_callback to Aaron Giles2012-04-101-2/+2
| | | | | | | | make its purpose clearer. Added delegate support for interrupt callbacks, and made driver_device variants of the generic interrupt helper callbacks. Did not convert existing callers yet due to logistical issues.
* MAME going modern part 2 (no whatsnew) Miodrag Milanovic2012-04-011-1/+1
|
* MAME going modern part 1 (no whatsnew) Miodrag Milanovic2012-03-311-1/+1
| | | | - Added 4th parameter to all address maps - Added missing state classes
* Fixed devcb regression. (nw) Curt Coder2011-05-051-0/+5
|
* Reimplemented devcb using delegates and classes. Unified the logic Aaron Giles2011-05-021-4/+4
| | | | | | for identifying targets and simplified the code. [Aaron Giles] I have some further ideas but this is a good midway point.
* Collapsed device_config and device_t into one class. Updated all Aaron Giles2011-04-271-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | existing modern devices and the legacy wrappers to work in this environment. This in general greatly simplifies writing a modern device. [Aaron Giles] General notes: * some more cleanup probably needs to happen behind this change, but I needed to get it in before the next device modernization or import from MESS :) * new template function device_creator which automatically defines the static function that creates the device; use this instead of creating a static_alloc_device_config function * added device_stop() method which is called at around the time the previous device_t's destructor was called; if you auto_free anything, do it here because the machine is gone when the destructor is called * changed the static_set_* calls to pass a device_t & instead of a device_config * * for many devices, the static config structure member names over- lapped the device's names for devcb_* functions; in these cases the members in the interface were renamed to have a _cb suffix * changed the driver_enumerator to only cache 100 machine_configs because caching them all took a ton of memory; fortunately this implementation detail is completely hidden behind the driver_enumerator interface * got rid of the macros for creating derived classes; doing it manually is now clean enough that it isn't worth hiding the details in a macro
* I'm bored to do spring cleaning Angelo Salese2011-04-181-1/+1
|
* Refactored the M6510 CPU to use device callbacks for port read/write. [Curt ↵ Curt Coder2011-04-181-13/+7
| | | | Coder]
* Remove redundant item cpu from address_space, in favor of Aaron Giles2011-03-291-2/+2
| | | | | | | | | | | space->device(). S: space->cpu-> R: space->device\(\)\. S: space->cpu R: \&space->device\(\)
* Created new enum type address_spacenum for specifying an address Aaron Giles2011-03-271-14/+14
| | | | | | | | | | | | space by index. Update functions and methods that accepted an address space index to take an address_spacenum instead. Note that this means you can't use a raw integer in ADDRESS_SPACE macros, so instead of 0 use the enumerated AS_0. Standardized the project on the shortened constants AS_* over the older ADDRESS_SPACE_*. Removed the latter to prevent confusion. Also centralized the location of these definitions to memory.h.
* Added missing device type. (no whatsnew) Curt Coder2011-02-111-0/+1
|
* Get rid of state_save_register_device_* macros in favor of direct Aaron Giles2011-02-091-13/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | calls on the device object. Regex used: state_save_register_device_item( *)\(( *)([^,]+), *([^,]+),( *)([^ )]+)( *)\) \3->save_item\1\(\2NAME\(\6\),\5\4\7\) state_save_register_device_item_array( *)\(( *)([^,]+), *([^,]+),( *)([^ )]+)( *)\) \3->save_item\1\(\2NAME\(\6\),\5\4\7\) state_save_register_device_item_2d_array( *)\(( *)([^,]+), *([^,]+),( *)([^ )]+)( *)\) \3->save_item\1\(\2NAME\(\6\),\5\4\7\) state_save_register_device_item_bitmap( *)\(( *)([^,]+), *([^,]+),( *)([^ )]+)( *)\) \3->save_item\1\(\2NAME\(\*\6\),\5\4\7\) state_save_register_device_item_pointer( *)\(( *)([^,]+), *([^,]+),( *)([^,]+), *([^ )]+)( *)\) \3->save_pointer\1\(\2NAME\(\6\),\5\7,\5\4\8\) this->save_ save_ (save_item[^;]+), *0( *)\); \1\2\); (save_pointer[^;]+), *0( *)\); \1\2\);
* Added M6504 CPU subtype and used it in allied.c driver (no whatsnew) Miodrag Milanovic2011-01-231-0/+16
|
* running_device -> device_t Aaron Giles2010-12-311-2/+2
| | | | | They both already existed. No sense in having two names for the same object type.