| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
| |
Galibert]
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
compile-time disable the slow precalculation/caching (nw)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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)
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
6809 and z80 [smf]
|
| |
|
| |
|
|
|
|
| |
location [Miodrag Milanovic]
|
| |
|
|
|
|
|
|
| |
- Support for all T=1 instructions
- Added COM and the accumulator-only versions of INC and DEC
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
| |
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]
|
|
|
| |
note: hoarded dump removed too from coco_cart.xml, this will not be tolerated
|
| |
|
|
|
|
|
|
| |
peripheral port for plus4. (nw)
(MESS) apple3: Fixed the CPU interface. (nw)
(MESS) vic10: Refactored to use datassette slot interface. (nw)
|
|
|
|
|
| |
pull-down masks to the CPU interface. [Curt Coder]
(MESS) c64: Fixed CPU port, tsuit215 CPUPORT test passes now. [Curt Coder]
|
| |
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
| |
- Added 4th parameter to all address maps
- Added missing state classes
|
| |
|
|
|
|
|
|
| |
for identifying targets and simplified the code. [Aaron Giles]
I have some further ideas but this is a good midway point.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
| |
Coder]
|
|
|
|
|
|
|
|
|
|
|
| |
space->device().
S: space->cpu->
R: space->device\(\)\.
S: space->cpu
R: \&space->device\(\)
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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\);
|
| |
|
|
|
|
|
| |
They both already existed. No sense in having two names for the
same object type.
|