summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/cpu/es5510
Commit message (Collapse)AuthorAgeFilesLines
* -tools/imgtool/modules: Fixed remaining calss memory access warnings. Vas Crabb2024-11-261-3/+3
| | | | | | | | -tools/imgtool/modules/vzdos.cpp: Fixed function returning floperr_t value as imgtoolerr_t. -devices: Fixed a bunch more #include guards that don't match file paths.
* scripts/3rdparty.lua: Enabled -Wno-tautological-compare for BGFX in order to ↵ arbee2024-10-261-10/+0
| | | | | | evaluate turning it off for MAME. [R. Belmont] cpu/es5510: Removed hack that never could possibly have worked, comparing a uint8_t to a 24-bit constant. [R. Belmont]
* Added ATTR_COLD to common lifecycle methods for many files in src/devices. ↵ holub2024-09-271-2/+2
| | | | (#12822)
* diexec: remove vestigal execute_input_lines() hap2024-09-182-5/+0
|
* misc: update some notes hap2024-06-041-2/+2
|
* New systems marked not working hap2023-06-151-1/+1
| | | | | ------------------------------ Strobe [hap, Sean Riddle]
* -cpu/es5510: Avoid calling DESCRIBE_INSTR when not verbose-logging. (#11285) ↵ MooglyGuy2023-05-291-3/+6
| | | | [Ryan Holtz]
* Cleaned up logging across the codebase (GitHub #10183). (#11250) [Ryan Holtz] MooglyGuy2023-05-231-85/+61
| | | | | * Converted various logging patterns to use logmacro.h consistently. * Removed redefinitions of LOG_GENERAL. * Use LOGMASKED in more places.
* es5510: fix some alu flag problems hap2023-04-041-58/+51
|
* cpu/cr16b, cpu/es5510, cpu/ks0164, cpu/mb86235, cpu/sharc, upd7220: Use ↵ AJR2022-11-011-21/+25
| | | | | | util::sext and other bit utility functions * cpu/sharc: Be a bit more paranoid about extreme values of bit6 and len6 (non-DRC)
* Remove #include <cstdarg> from emu.h and move it into source files that ↵ AJR2022-10-251-0/+1
| | | | still require it
* src/devices/cpu: Remove #include "debugger.h" where no longer necessary AJR2022-04-061-1/+0
|
* Debugger-related feature removals and cleanup AJR2021-08-151-2/+2
| | | | | | | | - Remove the hotspot read tracker. This was never robustly implemented, but changes to the memory system made it much less useful, and the "speedup opportunities" which it aimed to determine are not very important from a current emulation standpoint. - Remove the CURSP/GENSP state symbol and the generic sp() getter. Stacking semantics vary too much between CPU architectures for this to be of much use. (A "SP" symbol has been added to a few CPU cores whose stack pointers were otherwise not being registered.) - Remove the cached pointer to device_state_interface and the state() fast accessor from device_t. Most users of device_state_interface either already had a pointer to the specific CPU device type or needed to check first for the presence of the interface. - Change the PC memory write tracker to use pcbase(), which works even when the instruction callback is masked out, instead of peeking at the PC history index. - Remove some obsolete watchpoint-related definitions from machine.h.
* es5510.cpp: Add notes, Add serial control register for debugging, Fix/Add ↵ cam9002021-02-022-7/+26
| | | | | | | some hardware features Implement (partially) RAM clear function Fix host control register; host access OK flag is inverted (0 is active)
* Much more core std::string_view modernization AJR2021-01-201-0/+2
| | | | | | | | | | | | | | | - Remove corestr.h from emu.h; update a few source files to not use it at all - Change strtrimspace, strtrimrightspace and core_filename_extract_* to be pure functions taking a std::string_view by value and returning the same type - Change strmakeupper and strmakelower to be pure functions taking a std::string_view and constructing a std::string - Remove the string-modifying version of zippath_parent - Change tag-based lookup functions in device_t to take std::string_view instead of const std::string & or const char * - Remove the subdevice tag cache from device_t (since device finders are now recommended) and replace it with a map covering directly owned subdevices only - Move the working directory setup method out of device_image_interface (only the UI seems to actually use the full version of this) - Change output_manager to use std::string_view for output name arguments - Change core_options to accept std::string_view for most name and value arguments (return values are still C strings for now) - Change miscellaneous other functions to accept std::string_view arguments - Remove a few string accessor macros from romload.h - Remove many unnecessary c_str() calls from logging/error messages
* various devices and drivers: removed superfluous semicolons (nw) Ivan Vangelista2020-06-291-1/+1
|
* devices/cpu: simplified some handlers (nw) Ivan Vangelista2020-03-312-4/+4
|
* Make many device_execute_interface functions noexcept, including the ↵ AJR2019-11-092-10/+10
| | | | | | | | "information" overrides. This also covers several time-related functions in attotime, running_machine and emu_timer. (nw) m6805: Calculate min_cycles and max_cycles once at device_start time (Nw) attotime: Add as_khz and as_mhz (nw)
* Allow passing std::unique_ptr<TYPE> directly to save_pointer and remove ↵ AJR2018-06-241-3/+3
| | | | now-superfluous .get() in many drivers/devices (nw)
* Reshuffle some stuff: Vas Crabb2018-03-281-1/+1
| | | | | | * Move around the debugger hooks to get a small but measurable performance increase * Remove emucore from external tools * Improve performance of DSP16 interpreter a little by generating six variants of execution loop
* srcclean and regenerate localisations (nw) Vas Crabb2018-03-251-2/+2
|
* don't pass so many naked pointers around (nw) Vas Crabb2018-03-252-3/+3
|
* es5510, taito_en Updates (#3284) cam9002018-03-032-57/+136
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * es5510.* Updates : Add notes Fix dram read/write Convert gpr, instr, dram into std::unique_ptr Add save states Minor cleanup taito_en.* Updates : Add notes Move imperfect_features() into es5510.h Verify ESP Input clock/output channels(from GunBuster Schematics, same in other PCBs?) Add m_bankmask instead runtime tag lookups * es5510.h : Add notes * es5510.h : Fix compile * es5510.h : Compile fixes * esqpump.cpp : Split ES5506 case of interface, Add imperfect_features Because it has not perfectly emulated esqasr.cpp, esqkt.cpp : Add esqpump for es5510 interface taito_en.h : Restore imperfect_features Because sound emulation has still not perfect * es5510.h : Moved imperfect_feature into esqpump.h from this, Add notes * Revert "Moved imperfect_feature into esqpump.h from this", Because the current ES5510 core still has emulation issue * esqpump.cpp : Cleanup unused m_otis/m_otto, Convert e[0x4000] into std::unique_ptr if used * Fix compile * esqkt.cpp : Fix company tags
* Remove a bunch of space.device().safe_pc() from devices (nw) Olivier Galibert2017-12-301-2/+2
|
* space.machine -> machine (nw) Olivier Galibert2017-12-141-1/+1
|
* fix building with Visual Studio 2017 & clang 5.0.0 (also tested with gcc ↵ smf-2017-11-281-0/+1
| | | | 7.2.0) (nw)
* dvdisasm: Overhaul [O. Galibert] Olivier Galibert2017-11-264-15/+49
| | | | | | | | Disassemblers are now independant classes. Not only the code is cleaner, but unidasm has access to all the cpu cores again. The interface to the disassembly method has changed from byte buffers to objects that give a result to read methods. This also adds support for lfsr and/or paged PCs.
* Remove a whole lot of I64 from format strings. Vas Crabb2017-08-101-11/+11
| | | | | | | | | | | | | | | | | | | | | | | There are a couple of issues here: * Firstly, the determining factor for whether I64 or ll is needed as the size qualifier doesn't depend entirely on whether you're using MSVC or not, it depends on the the C runtime library. The msys64 C runtime apes the Microsoft runtime and requires I64 as well, so a lot of files where LLFORMAT had been copy/pasted wouldn't work right if you depeneded on it anyway. * Secondly, one of the major benefits of util::string_format, util::stream_format and logerror in their current forms is that you don't need size specifiers for integers at all (unless you're using them to truncate a value, but in that case you're better off casting the argument for clarity). If you do use them, logerror and friends will accept both Microsoft- and SUS-style independently of the C runtime. So please everyone, don't go gratuitously throwing these around, and if you must use them (e.g. for osd_printf_* functions), make sure your conditionals are actually correct. Also, conisder using util::string_format to do the formatting into a temporary string and just feeding that to the output function so you can avoid the mess.
* make device_memory_interface slightly less of a special case, use a typedef ↵ Vas Crabb2017-07-102-3/+3
| | | | to avoid nested templates everywhere (nw)
* dimemory: Lift the cap on the number of address spaces per device [O. Galibert] Olivier Galibert2017-07-032-3/+5
|
* Move static data out of devices into the device types. This is a ↵ Vas Crabb2017-05-142-63/+62
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | significant change, so please pay attention. The core changes are: * Short name, full name and source file are no longer members of device_t, they are part of the device type * MACHINE_COFIG_START no longer needs a driver class * MACHINE_CONFIG_DERIVED_CLASS is no longer necessary * Specify the state class you want in the GAME/COMP/CONS line * The compiler will work out the base class where the driver init member is declared * There is one static device type object per driver rather than one per machine configuration Use DECLARE_DEVICE_TYPE or DECLARE_DEVICE_TYPE_NS to declare device type. * DECLARE_DEVICE_TYPE forward-declares teh device type and class, and declares extern object finders. * DECLARE_DEVICE_TYPE_NS is for devices classes in namespaces - it doesn't forward-declare the device type. Use DEFINE_DEVICE_TYPE or DEFINE_DEVICE_TYPE_NS to define device types. * These macros declare storage for the static data, and instantiate the device type and device finder templates. The rest of the changes are mostly just moving stuff out of headers that shouldn't be there, renaming stuff for consistency, and scoping stuff down where appropriate. Things I've actually messed with substantially: * More descriptive names for a lot of devices * Untangled the fantasy sound from the driver state, which necessitates breaking up sound/flip writes * Changed DECO BSMT2000 ready callback into a device delegate * Untangled Microprose 3D noise from driver state * Used object finders for CoCo multipak, KC85 D002, and Irem sound subdevices * Started to get TI-99 stuff out of the TI-990 directory and arrange bus devices properly * Started to break out common parts of Samsung ARM SoC devices * Turned some of FM, SID, SCSP DSP, EPIC12 and Voodoo cores into something resmbling C++ * Tried to make Z180 table allocation/setup a bit safer * Converted generic keyboard/terminal to not use WRITE8 - space/offset aren't relevant * Dynamically allocate generic terminal buffer so derived devices (e.g. teleprinter) can specify size * Imporved encapsulation of Z80DART channels * Refactored the SPC7110 bit table generator loop to make it more readable * Added wrappers for SNES PPU operations so members can be made protected * Factored out some boilerplate for YM chips with PSG * toaplan2 gfx * stic/intv resolution * Video System video * Out Run/Y-board sprite alignment * GIC video hookup * Amstrad CPC ROM box members * IQ151 ROM cart region * MSX cart IRQ callback resolution time * SMS passthrough control devices starting subslots I've smoke-tested several drivers, but I've probably missed something. Things I've missed will likely blow up spectacularly with failure to bind errors and the like. Let me know if there's more subtle breakage (could have happened in FM or Voodoo). And can everyone please, please try to keep stuff clean. In particular, please stop polluting the global namespace. Keep things out of headers that don't need to be there, and use things that can be scoped down rather than macros. It feels like an uphill battle trying to get this stuff under control while more of it's added.
* Self-registering devices prep: Vas Crabb2017-02-271-1/+1
| | | | | | | | | | | | | | * Make device_creator a variable template and get rid of the ampersands * Remove screen.h and speaker.h from emu.h and add where necessary * Centralise instantiations of screen and speaker finder templates * Add/standardise #include guards in many hearers * Remove many redundant #includes * Order #includesr to help catch headers that can't be #included alone (nw) This changes #include order to be prefix, unit header if applicable then other stuff roughly in order from most dependent to least dependent library. This helps catch headers that don't #include things that they use.
* Remove emu.h from headers (nw) Olivier Galibert2017-02-111-1/+0
| | | | | | | | | | | | Per Vas' request. If the compile fails for you (i'm thinking osx and windows native debuggers here in particular), add '#include "emu.h"' as first include of the cpp files that fail. Due to our use of precompilation and forced inclusion, emu.h must be included as the very first non-comment thing we do if we want to be sure msvc compiles are identical to gcc/clang ones. Doing it directly instead of through an include increases the correctness probability by a magnitude.
* Changed disassembler infrastructure to not use char buffers internally Nathan Woods2016-11-202-2/+2
|
* Introduce u8/u16/u32/u64/s8/s16/s32/s64 Vas Crabb2016-11-191-16/+16
| | | | | | | | | | | | * New abbreviated types are in osd and util namespaces, and also in global namespace for things that #include "emu.h" * Get rid of import of cstdint types to global namespace (C99 does this anyway) * Remove the cstdint types from everything in emu * Get rid of U64/S64 macros * Fix a bug in dps16 caused by incorrect use of macro * Fix debugcon not checking for "do " prefix case-insensitively * Fix a lot of messed up tabulation * More constexpr * Fix up many __names
* NOTICE (TYPE NAME CONSOLIDATION) Miodrag Milanovic2016-10-222-160/+160
| | | | | Use standard uint64_t, uint32_t, uint16_t or uint8_t instead of UINT64, UINT32, UINT16 or UINT8 also use standard int64_t, int32_t, int16_t or int8_t instead of INT64, INT32, INT16 or INT8
* Make sure all cpu's export STATE_GENPCBASE and use safe_pcbase() for ↵ smf-2016-09-281-0/+1
| | | | everything in the debugger, which allows interruptible cpu's to work properly. [smf]
* Revert "Make sure all cpu's export STATE_GENPCBASE and use safe_pcbase() for ↵ Lord-Nightmare2016-09-271-1/+0
| | | | | | everything in the debugger, which allows interruptible cpu's to work properly. [smf]" This reverts commit 1a186c8a3a16a7ce99d7df2dd217a7552b696c92.
* Make sure all cpu's export STATE_GENPCBASE and use safe_pcbase() for ↵ smf-2016-09-271-0/+1
| | | | everything in the debugger, which allows interruptible cpu's to work properly. [smf]
* NULL->nullptr, instead of DEVCB_NULL use always DEVCB_NOOP to prevent ↵ Miodrag Milanovic2016-04-241-3/+3
| | | | confusion (nw)
* Removed I64FMT and SIZETFMT, one usage left in chdman.cpp (nw) Miodrag Milanovic2016-03-071-11/+11
|
* reverting: Miodrag Milanovic2016-01-202-2/+2
| | | | | | | SHA-1: 1f90ceab075c4869298e963bf0a14a0aac2f1caa * tags are now strings (nw) fix start project for custom builds in Visual Studio (nw)
* tags are now strings (nw) Miodrag Milanovic2016-01-162-2/+2
| | | | fix start project for custom builds in Visual Studio (nw)
* macro removal INLINE -> static inline (nw) Miodrag Milanovic2015-12-121-1/+1
|
* override part 2 (nw) Miodrag Milanovic2015-12-051-13/+13
|
* clang-modernize part 3 Miodrag Milanovic2015-12-041-3/+3
|
* Rename *.c -> *.cpp in our source (nw) Miodrag Milanovic2015-11-081-0/+0
|
* Move all devices into separate part of src tree (nw) Miodrag Milanovic2015-09-132-0/+1421