Commit Graph

91 Commits

Author SHA1 Message Date
Olivier Galibert
6caef2579a dvdisasm: Overhaul [O. Galibert]
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.
2017-11-26 17:41:27 +01:00
hap
7a900dd692 i8085: moved opcode macros to main file, will convert these to functions (nw) 2017-11-14 16:55:12 +01:00
hap
2e857fa8bd rename misleading i8085cpu.h to i8085ops.hxx (nw) 2017-11-14 03:02:39 +01:00
Dirk Best
faeedc757c einstein: Major cleanup, add a ADC0844 device
The analogue joystick is now emulated. Also fixed a few minor issues
with the memory map.

This also adds a generic Z80 dasisy chain device, for use in drivers
with non-Z80 peripherals.
2017-11-06 20:47:38 +01:00
Vas Crabb
4c29419cab srcclean (nw) 2017-10-22 12:34:30 +11:00
David Haywood
7851b3786c Preliminary SH3 / SH4 recompiler [David Haywood] (#2711) 2017-10-11 22:23:26 +02:00
David Haywood
c0ee79f3db use 'sh' instead of 'superh' 2017-10-02 19:47:35 +01:00
David Haywood
48aabf4122 move sh2 / sh4 to a folder called superh 2017-10-02 17:31:38 +01:00
AJR
ac06279df0 Create explicit i386dasm include for x86 DRC (nw) 2017-08-01 00:55:59 -04:00
Vas Crabb
01decf78b0 need this for debug trace logging on DRC cores (nw) 2017-08-01 14:37:05 +10:00
AJR
3b4315a4b5 Fix single build for i386-based drivers (nw) 2017-07-31 19:53:12 -04:00
fulivi
5201a7f6bf Begin of HP80 emulation (#2448)
What works:
* HP85A machine with 16K of RAM
* Capricorn CPU works
* Keyboard works (with minor issues)
* CRT text / graphics modes work (correct speed is not emulated yet so service ROM complaints)
* BASIC is usable

What is missing (and I'll have hopefully working soon):
* HW timers
* Beeper
* Integral printer
* DC100 cassette drive
* Extension ROMs
* I/O modules (especially the HPIB interface so that we can hook up floppy drives)
* Other models in the family (e.g. HP86)
2017-07-08 19:31:42 +10:00
David Haywood
907115ed06 create c-chip device with correct CPU type in it and a bunch of notes (pinout etc.)
create a uPD78C11 derived CPU type for this purpose, with internal ROM map
use internal ROM map for other uPD78C10 chips as it's always present.
add missing NO_DUMP definitions to various games using C-Chips with correct size etc.
pump megablast through the device code as really all it ever does is bank the c-chip window and test the RAM.
2017-07-05 01:45:09 +01:00
Vas Crabb
5ada035d17 Rewrote 4004 core and disassembler:
* Renamed to MCS-40.
* Emulated 8-clock instruction cycle, interruptible at any point.
* Converted TEST input to an input line.
* Added SYNC and CM output lines.
* Added support for 4040 CY output, logical operations, extended registers, ROM banking and disassembly.
* Made I/O space mapping more flexible to support the variety of peripherals available.
* Notable missing features are 4040 interrupt and halt, and "program memory" space.
2017-06-27 04:25:18 +10:00
hap
bca24133da sm510: made KB1013VK12 device a clone of SM5A (nw) 2017-06-23 00:34:16 +02:00
AJR
b201ad2cc0 Update cpu.lua properly (nw) 2017-05-26 17:20:31 -04:00
AJR
d1fb75b2e7 Quick and dirty split of most MC6801/MC6803/HD63701 features from base M6800 class (nw)
The code remains generally archaic and awful and in need of a sweeping rewrite. At least one static variable is no more.
2017-05-26 17:08:54 -04:00
dankan1890
f09ba1e562 Fixed some inaccuracies in file names in lua scripts. 2017-05-21 15:22:03 +10:00
Vas Crabb
0f0d39ef81 Move static data out of devices into the device types. This is a 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.
2017-05-14 21:44:11 +10:00
Lord-Nightmare
3d18cb2faa Add preliminary Sharp SM590 CPU core [Lord Nightmare, hap] 2017-05-09 14:24:39 -04:00
Vas Crabb
fb087b6c92 Cherry-pick some features from self-registering drivers PoC:
* Use size_t for sizes and <algorithm> for algorithms
* Fix up some files that were getting linked into multiple libs
* Add missing virtual method to sh2 peripheral class
* Put shortname in driver struct for locality
* Use shared pointers in config LRU cache for safety
2017-02-16 12:20:35 +11:00
ajrhacker
a59a5cbbb5 preliminary TLCS-870 disassembler - Work in Progress (#1967) 2017-02-05 16:36:06 -05:00
Vas Crabb
06e22ce79d m6805: added skeleton CMOS devices
* Added m146805 and m68hc05 to unidasm
* Made opcode tables configurable in m6805_base_device, provided tables for HMOS, CMOS and HC families
* Implemented MUL instruction, made unimplemented STOP and WAIT raise fatal error
* Added skeleton MC68HC05C4 with RAM and ROM in correct locations in memory map
2017-01-30 23:10:51 +11:00
R. Belmont
5bb61a8965 Merge pull request #2016 from pmackinlay/interpro
Interpro
2017-01-24 14:02:51 -05:00
Patrick Mackinlay
875f3c9d12 initial pull request 2017-01-24 21:53:51 +07:00
R. Belmont
da169d7fe0 Merge pull request #2002 from wilbertpol/hcd62121
hcd62121/cfx9850: several small cleanups (nw)
2017-01-20 15:29:12 -05:00
Wilbert Pol
fc16e06975 hcd62121: several small cleanups (nw) 2017-01-19 22:50:30 +01:00
Curt Coder
9d371eb5ba cop400: Properly separated COP444L from COP444C. [Curt Coder] 2017-01-16 22:06:11 +02:00
Curt Coder
af0805d848 cop400: Removed non-working, incomplete COP440 code. (nw) 2017-01-16 20:13:31 +02:00
Vas Crabb
02d69ca65a m6805: refactoring and improvements
* Moved 68705 devices into their own file.
* Made P3, P5 and U3 variants and made them load bootstrap ROMs.
* Implemented EPROM control (write is stubbed out with a logerror).
* Implemented differences for open drain I/O ports.

(nw) Base device with peripherals should really derive from the 6805
device directly, not the 68705 devices, as I/O ports are present on mask
devices (e.g. 6805P2).  All drivers and devices that were using
M68705_NEW have been changed to M68705P5 - someone who knows the drivers
better should fix them up.
2017-01-12 19:05:12 +11:00
Ville Linde
dbcf903c78 Added preliminary MB86235 recompiler [Ville Linde] 2016-12-17 22:09:09 +02:00
Nathan Woods
dc4086847a Put necv_dasm_one() into a header file 2016-11-16 08:07:33 -05:00
fulivi
5f54097e53 nanoprocessor: initial support. Disassembler only is known to work at this point. 2016-11-03 14:52:41 +01:00
Nathan Woods
293bfef845 Merging Konami disassembler with M6809/HD6309 disassemblers 2016-10-23 21:27:45 -04:00
Nathan Woods
81294aa08f Merged the M6809 and HD6309 disassemblers, and changed to properly use streams 2016-10-23 18:03:36 -04:00
angelosa
f4749d03f7 Base WatchDog Timer device 2016-09-27 18:36:59 +02:00
angelosa
f6ad513ab0 Written stub SH7604 BUS device (not hooked up to SH2 yet). 2016-09-27 16:21:54 +02:00
Miodrag Milanovic
a9e89e4f17 Fixed separate compile of drivers using sharc/ADSP21062 cpu (nw) 2016-07-23 11:10:17 +02:00
therealmogminer@gmail.com
ff04ed4cc0 Convert SPARCv8 ops to document-described functionality 2016-06-23 14:20:24 +02:00
Vas Crabb
a1625d2220 improve SPARC disassembler: [Vas Crabb]
* Support SPARCv9
* Allow plug-in ASI comments
* Fix format of some opcodes
* Produce clr synthetic
* Allow running in v7, v8 and v9 modes
2016-06-22 04:39:56 +10:00
therealmogminer@gmail.com
6d50e3cb36 Add majority of SPARC integer ops 2016-06-18 13:37:06 +02:00
therealmogminer@gmail.com
579d4873a6 Initial MB86901 diassembler 2016-06-17 15:09:39 +02:00
hap
396c2a0946 fix compile problem 2016-06-05 21:46:48 +02:00
Ville Linde
958731ef5a Added highly experimental SHARC recompiler (disabled by default) [Ville Linde] 2016-05-28 18:58:54 +03:00
Felipe Corrêa da Silva Sanches
deb38446ea Further improvements to the Patinho Feio driver & CPU 2016-05-25 10:32:24 -03:00
hap
262524206b tms7000/e0c6200: renamed hxx(inc) to cpp 2016-05-01 21:39:40 +02:00
Miodrag Milanovic
be67262fc2 INC -> HXX makes editors and code analyzers see it as C++ (nw) 2016-05-01 20:27:50 +02:00
Miodrag Milanovic
13855d2404 Fixed ti drivers (nw) 2016-05-01 12:55:22 +02:00
Miodrag Milanovic
a0829452f1 fix for mb86235 (nw) 2016-05-01 11:06:06 +02:00
Miodrag Milanovic
949fddaaa8 hec2hrp and arcompact fix (nw) 2016-05-01 09:51:51 +02:00