-change order of include files at top of i386.cpp
-move some routines between i386.cpp and i386priv.h
-move part of x87ops.hxx into new file x87priv.h
.
Now you only have to rename the hxx files to cpp and add the following
at the top of each one
.
#include "emu.h"
#include "i386.h"
#include "i386priv.h"
#include "x87priv.h"
#include "cycles.h"
#include "debugger.h"
#include "debug/debugcpu.h"
#undef i386
* [R9751] (Squashed) Early work on SMIOC emulation
commit 9b587be762abfd576e92792c612cd205c570924d
Author: Stephen Stair <sgstair@akkit.org>
Date: Tue Apr 10 19:41:55 2018 -0700
Connected SMIOC DMA to 68k
* SMIOC now reading bytes for serial from the 68k memory space successfully.
commit 0f801a05a3fa5b78768a1a2bcb9981466e8f2b0e
Author: Stephen Stair <sgstair@akkit.org>
Date: Tue Mar 27 18:31:32 2018 -0700
68k now running in lockstep with SMIOC for serial
* 68k now uses actual SMIOC as source of SMIOC status, so it waits for the SMIOC to complete commands before continuing.
* SMIOC DMA controllers now being asked to move bytes around
* "write character" (4100) commands to SMIOC are now completing and resulting in correct status being written and sent back to the 68k
* Every now and then the SMIOC stalls for a bit, it seems to be due to spending some time trying to communicate with the 8051 CPU (used to communicate with another cpu on the serial breakout box) that is not currently present in the emulated device.
Next Steps:
* We're going to move the terminal from the r9751 into the SMIOC, and hook it up to the DMA controllers as a hacky temporary solution.
* We need to emulate the 5xxxx memory range in SMIOC to proxy data to/from the 68k memory
* Then we'll start work on emulating the octal uart properly and hooking it up to RS232 channels.
commit ca91614fca3f43d87755d0c3439521276d7bfafb
Author: Stephen Stair <sgstair@akkit.org>
Date: Wed Mar 14 19:52:04 2018 -0700
Tinkering to get SMIOC further along
1) Enable 188 cpu to advance DMA immediatley if DRQ is held high when source synchronous DMA is started (It's not clear whether the DMA actually works this way yet)
2) Retrigger the DMA DRQ when a memory access is made to the DMA window (future work needed to proxy the reads/writes to the 68k's main memory) This is needed to support multibyte DMA reads/writes to the 68k window.
3) Reverse the bytes in the status register (based on current incomplete understanding of how this is encoded)
4) Connect the status register back to the r9751 on SMIOC status read
Current state: SMIOC's main board DMA state machine now completes the DMA transfer from the main board (With incorrect data), but we are still getting stuck.
Next steps: SMIOC is now hanging waiting on DMA to UART to complete, we need to implement some emulation of the UART and its connections to the surrounding 16 dma channels in order to make progress.
commit 62c1455c97a53ed970622e08cb03a225625914fd
Author: Stephen Stair <sgstair@akkit.org>
Date: Sun Mar 4 20:13:32 2018 -0800
Progress on emulating SMIOC
commit daee8498c5840417aee3ed9def0acfba5476335a
Author: Stephen Stair <sgstair@akkit.org>
Date: Sun Feb 25 20:02:32 2018 -0800
Working on bringing up SMIOC
Trying to get emulated SMIOC in lockstep with the main 68k.
commit 5a929fde90307040a0544682888f2f21a914b900
Author: Stephen Stair <sgstair@akkit.org>
Date: Wed Feb 21 20:06:27 2018 -0800
re-enable SMIOC, Logging improvements, first steps towards emulating on-board hardware.
commit f0c7a1665a18c99df5527ae45994f39f95223814
Author: Stephen Stair <sgstair@akkit.org>
Date: Sun Feb 11 16:26:31 2018 -0800
Emulation fix - Terminal now responds to input
commit ecff4035f3fdaa0329df46f99ccd516aa23ec8af
Author: Stephen Stair <sgstair@akkit.org>
Date: Tue Feb 6 19:00:35 2018 -0800
Hacky emulation of SMIOC
now successfully receiving serial characters!
commit 376bca90dff311d24e1f5014d8d6f0dc297bf671
Author: Stephen Stair <sgstair@akkit.org>
Date: Sun Jan 28 18:31:38 2018 -0800
Experimenting with SMIOC emulation
* Partial fixes for line state issues with persistent line values
When the AM9517 DMA controller mode is updated to change the polarity of DACK/DREQ, it doesn't update the DACK line values / request values (respectively).
This fixes this issue for one of the emulated devices in the file, but the other device has the same problem.
* Add skeleton of SCC2698B UART device
* Early progress on emulating SCC2698B Octal UART
Core structure for IO lines and writing registers is in place.
* Update address maps to new format.
* SCC2698b: Add tx/rx, baud rate generation
* Emulation improvements for scc2698b device
* MPP output pins emulated
* Improved logging for baud rate changes
* Channel configuration emulated
* Support for TX/RX Enable
* Started integrating new features into SMIOC
* Minor progress on the path to enabling new UART for SMIOC
* Resolved code issues related to upstream changes
* Working around an apparent problem with callbacks on sub-device devices
* Terminal added for serial port attached to SCC2698B UART.
* Things compile and seem to work.
* SMIOC: Serial is now outputting correctly through emulated SMIOC
Some glitches to work out, but this is nearly ready.
* AM9517a should not forget about input line status on master reset.
* Disable tracing
* SMIOC: Improving diagnostics and making some progress on the emulation
* Revised tracing in SMIOC and SCC2698B
* Improved tracing approach in r9751
* Minor progress towards working SMIOC emulation.
* [R9751] Update drivers to new code patterns after rebase
Rebased on latest mame, Fixed a few issues and updated the callback code patterns based on recent changes in devcb
* [R9751] Improve logging, fix interrupt race
Serial no longer drops output characters
* [R9751] Working on SMIOC emulation
Improved SMIOC emulation accuracy, Made some progress in getting through the disktool initialization sequence, but we are still hitting a problem - It looks like disktool should be resetting the SMIOC board when it starts, but the mechanism for this has not been found.
* [R9751] Improve tracing for system board registers
* [R9751] Improve SMIOC emulation
Still having some trouble with SMIOC but this seems to be an improvement.
SMIOC is now waiting for a status to be read before applying a new status, and mandatory parameter read logic is in place.
* [R9751] Incremental emulation improvements
the SMIOC failure was understood and fixed, and a new approach to getting the hardware to bootstrap correctly was implemented - Still having some problems with it though.
* [R9751] Fixed emulation issues
* Disktool now boots to the console
* UART receive only partly working, I don't think it's fully connected yet.
* [R9751] Further progress on SMIOC emulation
* Figured out the missing command parameter interface to the SMIOC board
* Still blocked because the SMIOC interface to the breakout board through an onboard 8051 is not emulated and the disktool software depends on properties coming from it.
* [R9751] Terminal is fully working for disktool
* Improved the emulation of the 80188 to 451 connection in order to reliably set a status bit disktool depends on.
* [R9751] Fix build after rebase
* [R9751] Cleanup, tracing improvements
* Remove second emulated terminal - SMIOC is now stable enough to run the terminal.
* Remove older and unnecessary emulation/tracing code
* r9751: Fix compile error and modify copyright holders
Zilog Z8038 FIO (FIFO Input/Output Interface Unit). Used to drive the parallel/printer port on the MIPS Rx2030. Passes basic diagnostic tests, but further work depends on progress in the mips.cpp driver.
A driver for machines made by MIPS Computer Systems, which used MIPS R2000, R3000 and R6000 CPUs and ran RISC/os (a port of UNIX System V Release 3). Initial focus is the RC2030 headless workstation. As of this commit, it gets part-way through its I/O processor diagnostics with output to a serial terminal.
* naming changes (nw)
* move stub audio related functions to their own file (nw)
* addressing notes (nw)
* control sprite mode with sprite reg instead of value set in init (nw)
* refactor a bit (nw)
* sprite DMA connects directly to spriteram, not through the main bus (nw)
* minor changes (nw)
* fix multiplier unit use in rad_madf (nw)
* implement 'text array / memory emulator' (nw)
* some naming (nw)
* code treats this like another palette entry (bg pen maybe)
On HP9000/300, these modules where always a logical unit connected to
the DIO bus. On some systems this was even a seperate DIO module. Lets
represent this in software. It also cleans up hp9k_3xx.cpp.
* hphybrid: major overhaul to add the 09825-67907 variant
* hphybrid: adapted hp64k & hp9845 to revised hphybrid CPUs
* hp9825: first release of HP9825B emulator
* hphybrid: added 09825-67907 to unidasm
* hp9825: improved appearance of blinking cursor
* hphybrid: minor changes
* mwarr.cpp refactoring
* mwarr.cpp refactoring
* stlforce refactor (nw)
* use suggested syntax, unless there's something to actually modify instead of outright replace?
* ok, no need to signal that we're modifying a device at all, just modify it (nw)
* move includes as requested (nw)
* do stuff modern way (nw)
* namco checkpoint (including cam900 submission)
* move code into device (nw)
* start splitting DSP support code into devices (nw)
* fix crash (nw)
* prepare for further splitting (nw)
* move code for C67 based DSP PCB into it's own device (nw)
* survive F3 resets without crashing or breaking the 3D (nw)
* less magic numbers (nw)
* optional -> required
don't use fake bootstrap on older type, suspend CPU instead
* restore CPU yield hack for solvalou (nw)
* (nw)
* give galaxian3 some DSPs (nw)
* address hap's concern with a different workaround since MAME is awkward (nw)
* split namco21 driver into 3 drivers as the different configurations really are entirely different boardsets with similar components, not a real 'system'
emulated entire PCB set for driveyes ( http://www.tvspels-nostalgi.com/Bilder/PCB/Namco/driverseye_cage_inside.jpg ) although how the PCBs communicate is not yet known (C139 maybe, which might also be an MCU)
* remove empty file (nw)
* actually thinking about it, this is cleaner (nw)
* mark cybsledj as World instead, there's nothing about this set other than the CY1 code to indicate that it's a Japanese set, and I don't think the Namco codes represent region, just release order.
* newline (nw)
* newline (nw)
A skeleton for the Microsoft Jazz architecture, which was implemented in the MIPS Magnum 4000, Olivetti M700-10 and was the base/origin of several other MIPS ARC systems.
* added skeleton Inmos G300/G332/G364 device
* added skeleton NatSemi DP83932C SONIC device
* added skeleton MCT-ADR device
* Separate Microsoft 2-button mouse and Logitech 3-button Microsoft-compatible mouse
* Add Microsoft wheel mouse
* Make Mouse Systems mouse behave more realistically
* Add Mouse Systems "rotatable" mouse
* Simplify code and eliminate timers
(nw) X/Y translation and buttons works for all devices. The wheel on
the wheel mouse seems to be transmitting the right data, and CuteMouse
detects the wheel as being present, but no software seems to support it
properly. Software supporting the Mouse Systems "rotatable" mouse is
very rare - typically people just set the DIP switches on their M-1 for
"non-rotatable" mode. A standard mouse driver will see the "rotatable"
mouse moving two mickeys for each count, and move eratically on
rotation. The "rotable" mouse is poorly tested due to lack of software.
(nw) MAME doesn't have a proper input type for a mouse wheel, and it
doesn't seem to be possible to map the host mouse wheel to an axis when
configuring inputs. The default mapping ends up assigining the wheel or
rotation to one of the translation axes, which is very unhelpful.
Also add notes to Sun keyboard emulation.
There's a hack to make the 1200 Baud mouse actually run at 9600 Baud.
This is necessary because the SCC is incorrectly expecting 9600 Baud
rather than 1200 Baud. I don't have time to fix the SCC, so I'd
appreciate it if someone else would.
There's no way it should be expecting 9600 Baud on the mouse port.
Solaris 2.3 and later support 1200 Baud and 4800 Baud, and earlier
versions support 1200 Baud only. No version of Solaris works with a
9600 Baud mouse.
The workaround allows the mouse to be used in SunView on sun4_60 - I
haven't tested any other drivers.
* split namco c169 roz chip from namcos2 by making it a device (nw)
some reorganization still needed (eg move init stuff to config)
* push on this way, old non-device code was working by chance (nw)
* use std::fill instead of memset
* tidy (nw)
* split out the c355 sprites into a device too (nw)
* this isn't used (nw)
* also not used (nw)
* split out c123 tilemap chip
* modern here too (nw)
* namco system2 sprite chip is a device, move content of machine/namcoic.h to a text file in 'etc' as it's not really code at all, and the cpp file is no longer needed
* Namco System 2 ROZ is a device (so only gets created on games that have it, avoids a crash in old code in tilemap viewer)
* untangle namcofl from namcos2 now that things are devices
* untangle namconb1 from namcos2
* untangle gal3.cpp from namcos2
* untangle namcos2 and namcos21 - part 1 (ugly part)
* untangle system2 and system21, part 2
* use c68 for c68 based games in namcos21.cpp and some cleanup / notes / reorganization / default nvrams
* naming cleanups (nw)
* c123 - move init to device config
* c169 init -> device config
* c355 init -> device config
* new clones
Four Trax (Japan) [ShouTime, The Dumping Union]
note, one of the gfx roms in the MAME set has an 'fx2' label, it should be verified.
also replaced the ROMs for the fourtraxa set, the old ones had a 0x00 fill instead of a 0xff fill but were otherwise identical, it's a weird mod of the World set that hides most of the advertising banners, replacing them with generic ones, presumably for legal reasons?
- Add and identify some extra IOC firmware revisions (v1.3 from Bitsavers)
- More descriptive names for ROMs of latest IOC revision (from Bitsavers)
imds: Remove skeleton driver; ROMs preserved as v1.4 of imds2ioc
* Add huc6230 Emulation
huc6272.cpp : Add ADPCM transfer, Add save states
PC-FXGA for PC-9801 C Bus is released in December 1995 in Japan, Correct metadata
* huc6272.cpp : Fix ADPCM address
* huc6230.cpp : Simpler interpolate
* huc6230.cpp : Fix clamp
huc6272.cpp : Fix ADPCM nibble
* huc6272.cpp : Fix data type
* Revert pcfxga year; PC-FXGA for PC9801 C-bus is not dumped?
* Implement Mitsumi Amiga 500, 600, and 2000/3000/4000/CDTV keyboards
* Add unlabeled keys to UK layout
* Restrict available keyboards depending on system type
* Note that C-A-A reset is now broken on "big box" Amigas as MAME doesn't implement it properly, and the hack providing a fake dedicated reset line has been removed
6502 MCU: fix execute loop
6500/1: implement as device with onboard peripherals
Fix some bogus comments
(nw) New keyboard only has U.S./Canada and UK variants for now. This keyboard doesn't
drive a dedicated reset line, instead using some sequence on the clock line detected by
the host chipset. MAME doesn't support this, so keyboard reset won't work. Also started
documenting the character labels on the keypad NumLock/ScrLock keys for language variants
but still need more pictures.
* Allow <orientation> and <color> to work on group references
* Fix some corner cases where group bounds could be miscalculated
* Fix a corner case where MAME could incorrectly refuse to instantiate groups
* Add more checks to complay.py
* Document more of the layout format
* Clean up some corner cases in layouts with repeating blocks
* Make complay.py validate many more elements and attributes
* Make complay.py easier to use for just validating a layout
* Remove redundant view from Sega VMU layout
* Make buttons visually respond to input in whousetc.lay
* Add view with LED displays as well as terminal for aim65_40 and use repeats
* Clean up some outdated "game" terminology in clifront.cpp
* Initiaise a couple of members in tap/tun network module
* Start documenting layout format
* taptun: add support for Windows
Looking for feedback only at this point, because it's the first time I've attempted any OSD stuff - be gentle.
This extends the existing taptun OSD module to support Windows through the TAP-Windows6 driver (https://github.com/OpenVPN/tap-windows6).
* TAP-Windows6 is GPLv2, however only the header file is required in MAME, and the driver itself is entirely optional.
* I've tried to minimise the size of the diff, rather than completely separate the Windows/non-Windows implementations - not sure which is preferable in this case.
* The license file has Mac(?) line-endings - unsure if they should be normalized or used verbatim.
* Uncertain about the non-Windows case (or the Windows SDL case) - existing code uses __linux__, but I'm not clear on how that works with OSX, for example?
* I can't claim this actually "works" yet, because I don't know enough to configure the tap end of it properly to get networking doing something useful, but I will get there and correct anything necessary in a subsequent real PR.
* minor fixes/improvements (nw)
* Use Unicode Windows APIs, and UTF-8 for MAME
* Deal with unterminated registry string values
* Cancel any pending I/O in destructor
* Eliminates the need for the horizontal/vertical/LCD/SVG layout files
* Screens can now have orientation and physical aspect ratio specified
* RASTER/VECTOR defaults to 4:3, LCD/SVG defaults to square pixels at config time
* System orientation is applied on top of screen orientation
Automatically generated single-screen views and orientation flags in XML
output now work correctly for systems with multiple screens in different
geometries/orientations, e.g. housemnq, rocnms, stepstag, or netmerc.
The "core rotation options" only interact with system orientation.
Allowing multi-screen systems to work well with one monitor per emulated
screen is a complex topic. System orientation also affects the GFX
viewer while screen orientation doesn't. The orientation displayed in
the system selection menu is from the system orientation.
Let me know if I've broken any systems or use cases.
Also, add save state support for std::array/C array nested to any depth.
* rewrote most of the execution for my tlcs870 core
* no longer the case (nw)
* note updates (nw)
* address concerns, const qualify more things where possible (nw)
* more const (nw)
* oops (nw)
* consistency (nw)
- split into separate sources
- fixed paste
- added uart and rs232
- added baud rate clock or brg depending on hardware
- fixed uart status on sys80
- fixed cassette waveform
- lots of tidy up
Input and screen tags are now resolved relative to a layout's owner
device.
Easy way to demonstrate is with: mame64 intlc440 -tty ie15
Previously you'd only get the IE15 terminal's layout and you'd be unable
to use the INTELLEC 4/40 front panel. Now you'll get the choice of
layouts from both the system and the terminal device in video options.
- Added FDC card.
- Cursor now generated by 6845.
New working machines
--------------------
Acorn System 3 (6502 CPU)
Acorn System 5
New working clones
------------------
Acorn System 2
Acorn System 4
* Added ps2timer device to encapsulate Playstation 2 timers.
* Temporarily hacked R5900 core to always have scratchpad RAM mapped at 0x70000000.
* Added reference counting to divtlb so that it does not unmap pages that are still shared with other entries.
* Added a considerable amount of logging to ps2sony.cpp.
-mips3: Added basic Emotion Engine support. [Ryan Holtz]
* Added S bit to TLB mapping.
* Added support for VSUB, VIADD, VSQI, VISWR, VOR, LQ, SQ, MFSA, MTSA, MFHI1, MFLO1, MULT1, DIV1, DIVU1, PEXTLW, PADDUW, PMFHI,
PMFLO, PCPYLD, PCPYUD, SQC2, LQC2 opcodes. [Ryan Holtz]
* hp9k_3xx: fix timer connection for /320 models
Signed-off-by: Sven Schnelle <svens@stackframe.org>
* hp9k_3xx: add HP9122C floppy
Remove HP9895 from the default configuration. 3.5" where
standard on /300 and there's almost no software on it available.
If a user really needs 8" floppy drives on /300, he can do that via
commandline.
Signed-off-by: Sven Schnelle <svens@stackframe.org>
* add Intel i8291a GPIB Talker/Listener
Required for the HP 9122C floppy, and used in many other devices.
Basic functionality was implemented to make the HP 9122C work, a few
things are still missing and will be added later. Most of the missing
things where simply not used in the HP9122C so i cannot test them.
Signed-off-by: Sven Schnelle <svens@stackframe.org>
* Add HP 9122C floppy drive
These drives where common on HP9000/300 workstations. With the current
implementation TD0's from hpmuseum can be used to boot, and initializing,
reading and writing discs in HP basic works. Tested both high and double
density media. Supported Media formats are TD0 and MFI.
Signed-off-by: Sven Schnelle <svens@stackframe.org>
* Remove vram_rw and ctrl_rw wrapper functions
Signed-off-by: Sven Schnelle <svens@stackframe.org>
* topcat: replace hardcoded display width by m_fb_width
Signed-off-by: Sven Schnelle <svens@stackframe.org>
* topcat: prepare topcat for multi plane operation
framebuffer vram is only 1 bit wide.
Signed-off-by: Sven Schnelle <svens@stackframe.org>
* 98544: set single topcat plane
Signed-off-by: Sven Schnelle <svens@stackframe.org>
* add nereid mapper used on HP98543/98545 graphic cards
Signed-off-by: Sven Schnelle <svens@stackframe.org>
* prepare for multi-topcat operation
Signed-off-by: Sven Schnelle <svens@stackframe.org>
* add HP 98543 4 plane graphics card
* hp9k_3xx: add hp98543 card
* topcat,nerid: disable VERBOSE
Signed-off-by: Sven Schnelle <svens@stackframe.org>
* hp98543: use required_device_array
* 98543: use required_region_ptr
* 98544: use required_region_ptr
* topcat: add save state support
Signed-off-by: Sven Schnelle <svens@stackframe.org>
* nereid: add save state support
* hp98544,hp98543,topcat: use shared memory space
Signed-off-by: Sven Schnelle <svens@stackframe.org>
* nereid: remove redundant variable
Signed-off-by: Sven Schnelle <svens@stackframe.org>
* topcat, nereid: remove trailing underscore from include guard
Signed-off-by: Sven Schnelle <svens@stackframe.org>
* topcat,hp98543: code style fixes proposed in PR
Signed-off-by: Sven Schnelle <svens@stackframe.org>
- Implemented banking and system/user mode switching.
- Added PolyBASIC 3.0, 3.1, and 3.4.
New clones marked as NOT_WORKING
--------------------------------
Poly 1 Educational Computer (early) [Nigel Barnes, Andrew Trotman]
Poly 2 Learning System [Nigel Barnes, Andrew Trotman]
Poly Development System [Nigel Barnes, Andrew Trotman]
Merged with strnskil.cpp, with modernization and cleanups. (nw)
Add MCFG_SCREEN_RAW_PARAMS. (nw)
Added coin counters to markham, strnskil, banbam and clones.
* softfloat3: do we like this better? (nw)
* softfloat3: it gets the hose again (nw)
* softfloat3: sonofa (nw)
* interpro: wip checkpoint (nw)
* added 6x00 models
* added EDGE graphics skeleton
* split bus/cards into two types
* various fixes/changes
* proposal: move z80daisy* to devices/machine
Seems to me this is a machine, not a CPU? Main reason was to stop the Z80 CPU from being dragged into systems that don't have one just because they use a Z80 family peripheral.
* missed this one (nw)
* missed a spot (nw)
* softfloat3: fix msvc build (nw)
Is this how we do these things? I assume we don't touch the library code itself, and have to "fix" any problems via this header instead?
* softfloat3: do we like this better? (nw)
* softfloat3: it gets the hose again (nw)
* softfloat3: sonofa (nw)
This is a pre-usage import so everyone can get things in line for various compilers. GCC/Clang should be OK on most targets as-is;
MSVC may need to edit 3rdparty/softfloat3/build/MAME/build.h to conform. Please report failure/success with various compilers.
* add topcat template
HP topcat was an ASIC used on HP900/300 graphics cards.
Signed-off-by: Sven Schnelle <svens@stackframe.org>
* hook up topcat asic to HP98544
Signed-off-by: Sven Schnelle <svens@stackframe.org>
* topcat: add basic configuration macros for fb planes, height and width
Signed-off-by: Sven Schnelle <svens@stackframe.org>
* hp98544: move logic to topcat video driver
Preparation to support multi plane graphic cards
like the HP98543/98545/98547.
Signed-off-by: Sven Schnelle <svens@stackframe.org>
* xtal: add 35.904MHz XTAL
* interpro: slotify mouse (nw)
Needed to make the mouse a slot device to enable it to be connected to graphics boards under development.
* add validity check (nw)
* bt45x: new devices
Basic implementation of various Brooktree RAMDAC devices. Two of these (bt457, bt458) are used by InterPro graphics boards currently under development, the others are unused/untested at this point.
* bt45x: tweak descriptions (nw)
Start replacing special device macros with additional constructors,
starting with ISA, INTELLEC 4 and RS-232 buses.
Allow an object finder to take on the target of another object finder.
(For a combination of the previous two things in action, see either the
INTELLEC 4 driver, or the Apple 2 PC Exporter card. Also check out
looping over a device finder array to instantiate devices in some
places. Lots of things no longer need to pass tags around.)
Start supplying default clocks for things that have a standard clock or
have all clocks internal.
Eliminate the separate DEV versions of the DEVCB_ macros. Previously,
the plain versions were a shortcut for DEVICE_SELF as the target. You
can now supply a string tag (relative to current device being
configured), an object finder (takes on the base and relative tag), or
a reference to a device/interface (only do this if you know the device
won't be replaced out from under it, but that's a safe assumption for
your subdevices). In almost all cases, you can get the effect you want
by supplying *this as the target.
Eliminate sound and CPU versions of macros. They serve no useful
purpose, provide no extra checks, make error messages longer, add
indirection, and mislead newbies into thinking there's a difference.
Remove a lot of now-unnecessary ":" prefixes binding things relative to
machine root.
Clean up some miscellaneous rot.
Examples of new functionality in use in (some more subtle than others):
* src/mame/drivers/intellec4.cpp
* src/mame/drivers/tranz330.cpp
* src/mame/drivers/osboren1.cpp
* src/mame/drivers/zorba.cpp
* src/mame/devices/smioc.cpp
* src/devices/bus/a2bus/pc_xporter.cpp
* src/devices/bus/isa/isa.h
* src/devices/bus/isa/isa.h
* src/devices/bus/intellec4/intellec4.h
* start looking at the extra opcodes in the SSD 2000 type XaviX chip (seems some undocumented 6502 opcodes are replaced with more custom ones)
* (nw)
* the xavix memory mapping gets stranger with each piece of new evidence (nw)
- High level emulation of serial keyboard (only sort of works; probably should be less sophisticated)
- Add double height and double width attributes
- Adjustable start of screen pointer (necessary for SET-UP mode)
- Reconfigure screen for 80/132-column and 50/60 Hz modes
dikeyboard: Add scan_complete callback (nw, sort of hacky but cit101 keyboard works worse without it)
- Use device_resolve_objects to resolve callbacks in output_latch_device (nw)
Note that this renaming is not just for human convenience; genie seems to get confused by modifications to a header called latch.h and decides to recompile everything involving gen_latch.h as well.
* xavix - tidy ups, reorganization, current notes etc.
* didn't mean to push a copy (nw)
* shift some common code around for palette handling (nw)
* lean less heavily on memory system (nw)
* revert 'shift some common code around for palette handling (nw)' to be revisited later.
* add missed include guards (nw)
* new machines marked as NOT WORKING
Skannerz TV [Sean RIddle, Peter Wilhelmsen]
This will need the communication protocol with the barcode scanner unit reverse engeering (the scanner unit has it's own MCU that isn't dumped and for which we have no method of dumping) this also probably means it will need improvements to the general vii.cpp handling of interrupts and serial ports (which Cricket needs too)
The 98603A and 98603B cards have different base addresses and sizes
for the rom region. Split up the cards so that we can boot HP BASIC 4
and HP BASIC 5.1.
Signed-off-by: Sven Schnelle <svens@stackframe.org>
* 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
also made rainbow islands extra a parent, since it has it's own game code, own c-chip and is generally considered a semi-sequel rather than a bugfix / revision of the original game.
(best I can tell behavior matches the differences between original and extra that were present in the simulation at least, but obviously the real chip could be hiding more secrets)
* remote488: work started
* remote488: fixed a crash when using socketed bitbangers on Linux machines
* remote488: added ieee-488 remotizer device
* remote488: added remotizer devices to ieee-488 buses of HP9845 & HP85
* remote488: added missing emu.h inclusion
* Revert "remote488: fixed a crash when using socketed bitbangers on Linux machines"
This reverts commit edfeb1768ec332ccdb77584e272d93b756819c41.
* remote488: nudge..
* remote488: no longer use locale-dependent functions, added commas and
semicolons as msg separators, improved use of util::string_format
* use real dumped c-chip for bonzeadv, remove simulation [Team Caps0ff]
this most likely fixes MT00377, MT00205
* typo (nw)
* missed a file (nw)
* no longer fights (nw)
* tidy here too (nw)
* c+p typo (nw)
* c-chip: use dumped c-chip for Volfied [Team Caps0ff]
interrupt source still needs to be verified, but I've tested this to the end and it works fine with the real dump.
* less static (nw)
* hook the coin counters back up (nw)
* tweaks (nw)
* was too close after tweak (nw)
* add support for dumped superman c-chip too, removed simulation [Team Caps0ff]
also made the 68k and upd7810 use different banked windows into the RAM, this seems to prevent the fighting I was seeing, and also superman suggests that it might be correct, as it puts response values in a bank for the 68k but then changes the window so the 68k can't see them. needs further testing tho (other c-chip dumps might tell us more later)
* use the 68k side handlers on megab too, even if it really doesn't care about anything (nw)
* remove debug structure (nw)
* Turn deprecated declataion warnings on by default and make them non-fatal
* Make output_finder iterable in algorithms and range-based for loops
* Replace a lot of set_something with output_finder
* Fixed building using system utf8proc
* Fixed building using system portaudio
* Allow using system-wide asio headers (1.11.0 or higher required).
* Allow using system-wide glm headers
* Allow using system-wide rapidjson headers
* Put all ext_includedir calls together
* Fixed build failure when SOURCES is defined
* Fixed building using system utf8proc
* Fixed building using system portaudio
* Allow using system-wide asio headers (1.11.0 or higher required).
* Allow using system-wide glm headers
* Allow using system-wide rapidjson headers
* Add 89 in 1 mini console
* Add mc_cb280, similar to sy889
* More VTxx ROMs
* Add more nes_vt systems
* Add SY888B
* Add support for VTxx systems with scrambled instructions (FC Pocket, DGUN2573)
* Add support for Family Pocket, and more FC Pocket games
* Small fixes and reclassifications (nw)
* Support for VTxx scrambled banking (thanks NewRisingSun for help)
* New palette code from NewRisingSun, etc
* Various VT03 fixes, several systems including ZDog now working
* nes_vt comment/status updates (nw)
* Refactor m6502_vtscr (nw)