summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/bus/hp_dio
Commit message (Collapse)AuthorAgeFilesLines
* hp9k_3xx: add DMA enable to control register Sven Schnelle2018-11-252-3/+19
|
* srcclean and fixup (nw) Vas Crabb2018-11-251-1/+1
|
* Merge pull request #4328 from hp9k/human_interface_reset R. Belmont2018-11-231-3/+2
|\ | | | | hp9k3xx: call reset() instead of manually resetting subdevices (nw)
| * hp9k3xx: call reset() instead of manually resetting subdevices (nw) Sven Schnelle2018-11-231-3/+2
| |
* | Merge pull request #4327 from hp9k/misc_fixes R. Belmont2018-11-233-9/+13
|\ \ | |/ |/| hp9k_3xx: misc fixes (nw)
| * hp9k_3xx: misc fixes (nw) Sven Schnelle2018-11-233-9/+13
| | | | | | | | | | | | | | | | | | - fix PPOLL logic in human_interface, make HP-UX recognize GPIB floppy drives - support reading of WMOVE_ACTIVE register in catseye graphics - add some missing default mappings to ITF keyboard - fix default interrupt level of 98644A to match HP-UX default configuration - set SCSI transfer speed in configuration register to 4MB/s, which matches the hardware setting
* | hp98643: lance dma needs masking (nw) Patrick Mackinlay2018-11-231-1/+1
|/
* Add HP98643 LANIC network card Sven Schnelle2018-11-213-1/+310
|
* add HP98550 high-res color graphic card Sven Schnelle2018-11-183-0/+315
| | | | | | | | | | | | | | | | | | | | | | | | | | | Used in the high end HP9000/300 machines. Provides a resolution of 1280x1024 @ 8bpp. It also provides two overlay planes and one phantom plane. Each plane contains two window movers that are used for copying characters and tiles on the screen. It also has a RUG for line/vector drawing. The current state implements everything that is required to have a working HP Visual user environment in MAME. Working: - window mover - pixel replacement rules - window replacement rules - f0 tripple replacement rule (copy src or keep destination depending on pattern register) - VRAM bit access mode - solid line drawing Not implemented yet: - drawing circles - linetype vector/circles - rectangles - filling areas - tripple replacement rules other than f0
* hp9k_3xx: fix RTC corruption Sven Schnelle2018-11-061-0/+1
| | | | | | pre-init the latch clock variable to 1, so the first write to the latch doesn't cause invalid data latched which would trigger an invalid write to the RTC, causing an invalid time.
* hp_hil: Removing MCFG macros doesn't just mean blindly expanding them (nw) Vas Crabb2018-10-301-9/+2
| | | | * The validation and slot registration still needs modernising, but the client code is prettier at least
* inconsistency, deprecation, duplication... (nw) Vas Crabb2018-10-307-32/+23
|
* srcclean and cleanup (nw) Vas Crabb2018-10-282-8/+6
|
* hp9k3xx/human_interface: add parallel poll logic (nw) Sven Schnelle2018-10-202-9/+71
| | | | | This makes the HP-UX 9 installer properly work with GPIB. Without this patch it will hang ages during detection of GPIB devices.
* hp98620: add channel control/status register Sven Schnelle2018-10-182-11/+40
|
* hp98620: fix register endianess Sven Schnelle2018-10-151-4/+4
|
* Merge pull request #4137 from hp9k/hp_dio_fixes R. Belmont2018-10-136-18/+1
|\ | | | | hp_dio: remove unused map() functions
| * hp_dio: remove unused map() functions Sven Schnelle2018-10-136-18/+1
| |
* | Merge pull request #4134 from hp9k/hp98644_mcfg_removal R. Belmont2018-10-131-8/+9
|\ \ | | | | | | hp98644: remove MCFG (nw)
| * | hp98644: remove MCFG (nw) Sven Schnelle2018-10-121-8/+9
| |/
* / hp98543,hp98544: remove MCFG (nw) Sven Schnelle2018-10-122-18/+14
|/
* hp9k_3xx video improvements (#4129) dxl2018-10-121-3/+3
| | | | | | | | | | | | * hp98543: fix planemasks (nw) * hp9k_3xx: use 98543 dio card on certain models (nw) 320: the QA-2 ROM version doesn't know about the 98544 332: the internal card is logically a DIO card, so let's use the DIO implementation instead of duplicating all the code * hp9k_3xx: fix indent (nw)
* hp_9k_3xx: enable save state support (nw) Sven Schnelle2018-10-113-0/+8
|
* Merge pull request #4119 from hp9k/hp_hil_mouse R. Belmont2018-10-111-0/+5
|\ | | | | hp_hil: add HP 46060B mouse
| * hp_hil: add HP 46060B mouse Sven Schnelle2018-10-111-0/+5
| | | | | | | | | | | | - move hle_device_base to it's own files - add hlemouse.{cpp,h} - add mouse device to hp_ipc and hp9k_3xx
* | hp_dio/human_interface: fix fixme (nw) Sven Schnelle2018-10-101-2/+1
|/
* hp_dio/human_interface: remove MCFG (nw) Sven Schnelle2018-10-101-40/+46
|
* hp98644: allow to configure interrupt level (nw) Sven Schnelle2018-10-101-2/+3
|
* topcat: remove MCFG, implement irq, fix some minor issues (nw) Sven Schnelle2018-10-104-39/+137
|
* hp9k_3xx: add HP98265A SCSI controller (nw) Sven Schnelle2018-10-093-0/+382
|
* hp9k_3xx: add HP98620 DMA controller (#4094) dxl2018-10-094-7/+527
| | | | | | * hp9k_3xx: add HP98620 DMA controller * hp98620: remove unused defines (nw)
* hp9k_3xx: move Sound, GPIB, Keyboard and RTC to human interface module Sven Schnelle2018-10-083-0/+400
| | | | | | 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.
* hp_dio: remove MCFG Sven Schnelle2018-10-081-6/+0
| | | | And while at it, set the cards as non-fixed, as all of our default cards can be removed on real hardware
* hp_dio: add shared IRQ and DMA capabilities Sven Schnelle2018-10-082-63/+263
|
* hp_dio: add namespace (nw) (#3939) dxl2018-10-0712-45/+93
| | | | | | * hp_dio: add namespace (nw) * hp_dio: add comment on closing namespace brackets (nw)
* -in8250: De-MCFG, nw mooglyguy2018-09-041-10/+9
|
* Details, details (nw) Vas Crabb2018-09-011-1/+1
| | | | | | | | * It's generally not a great idea to do integer ops on bool - it implicitly casts to/from int and may perform poorly * Get rid of required ram_device in atari 8-bit common state - it isn't required/used by bartop52 * Get rid of bogus RAM device in bartop52 * Restore some authors' stylistic choices * Make some stuff more consistent
* More topcat fixes (#3933) dxl2018-08-312-4/+22
| | | | | | | | * topcat: add has_changed() function (nw) * topcat: don't write to plane if not enabled (nw) * topcat: fix initialization order (nw)
* Topcat fixes (#3930) dxl2018-08-314-0/+14
| | | | | | | | | | | | | | | | * topcat: fix display read/write enable register (nw) * topcat: add (yet) unknown register 0x4a/0x4c to make test software happy (nw) * topcat: return cursor register contents (nw) * topcat: add plane_enabled() function (nw) * topcat: add suport for Pixel Replacement Rules (nw) * topcat,hp98544,hp98543: add VBLANK register (nw) * topcat: add interrupt registers (nw)
* Apply logical address mask properly in debug disassembly view AJR2018-08-241-1/+1
| | | | | | Associated core changes (nw) - Move definition of address_space_config from dimemory.cpp to emumem.cpp (declaration was already in emumem.h) - Add getters for more members of address_space_config with future privatization in mind (nw)
* devcb3 Vas Crabb2018-07-071-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There are multiple issues with the current device callbacks: * They always dispatch through a pointer-to-member * Chained callbacks are a linked list so the branch unit can't predict the early * There's a runtime decision made on the left/right shift direction * There are runtime NULL checks on various objects * Binding a lambda isn't practical * Arbitrary transformations are not supported * When chaining callbacks it isn't clear what the MCFG_DEVCB_ modifiers apply to * It isn't possible to just append to a callback in derived configuration * The macros need a magic, hidden local called devcb * Moving code that uses the magic locals around is error-prone * Writing the MCFG_ macros to make a device usable is a pain * You can't discover applicable MCFG_ macros with intellisense * Macros are not scoped * Using an inappropriate macro isn't detected at compile time * Lots of other things This changeset overcomes the biggest obstacle to remving MCFG_ macros altogether. Essentially, to allow a devcb to be configured, call .bind() and expose the result (a bind target for the callback). Bind target methods starting with "set" repace the current callbacks; methods starting with "append" append to them. You can't reconfigure a callback after resolving it. There's no need to use a macro matching the handler signatures - use FUNC for everything. Current device is implied if no tag/finder is supplied (no need for explicit this). Lambdas are supported, and the memory space and offset are optional. These kinds of things work: * .read_cb().set([this] () { return something; }); * .read_cb().set([this] (offs_t offset) { return ~offset; }); * .write_cb().set([this] (offs_t offset, u8 data) { m_array[offset] = data; }); * .write_cb().set([this] (int state) { some_var = state; }); Arbitrary transforms are allowed, and they can modify offset/mask for example: * .read_cb().set(FUNC(my_state::handler)).transform([] (u8 data) { return bitswap<4>(data, 1, 3, 0, 2); }); * .read_cb().set(m_dev, FUNC(some_device::member)).transform([] (offs_t &offset, u8 data) { offset ^= 3; return data; }); It's possible to stack arbitrary transforms, at the cost of compile time (the whole transform stack gets inlined at compile time). Shifts count as an arbitrary transform, but mask/exor does not. Order of mask/shift/exor now matters. Modifications are applied in the specified order. These are NOT EQUIVALENT: * .read_cb().set(FUNC(my_state::handler)).mask(0x06).lshift(2); * .read_cb().set(FUNC(my_state::handler)).lshift(2).mask(0x06); The bit helper no longer reverses its behaviour for read callbacks, and I/O ports are no longer aware of the field mask. Binding a read callback to no-op is not supported - specify a constant. The GND and VCC aliases have been removed intentionally - they're TTL-centric, and were already being abused. Other quirks have been preserved, including write logger only logging when the data is non-zero (quite unhelpful in many of the cases where it's used). Legacy syntax is still supported for simple cases, but will be phased out. New devices should not have MCFG_ macros. I don't think I've missed any fundamental issues, but if I've broken something, let me know.
* srcclean and other cleanup (nw) Vas Crabb2018-06-242-6/+5
|
* Topcat improvements (#3663) Sven Schnelle2018-06-234-9/+37
| | | | | | | | | | | | | | | | | | | | | | | | | | | | * topcat: fix register accesses * nereid: mask register address bits * topcat: don't override contents before window move depending on the direction of the window move, we must start at the other end with move, otherwise we overwrite the data before it is moved. Signed-off-by: Sven Schnelle <svens@stackframe.org> * topcat: Fix cursor handling Old cursor handling hat a few problems: - Changed VRAM contents which doesn't happen on real hardware - Destroyed Image content on the line where the cursor is show - Window mover copied the cursor Signed-off-by: Sven Schnelle <svens@stackframe.org> * fix spacing Signed-off-by: Sven Schnelle <svens@stackframe.org>
* hp_dio: clean up (nw) Vas Crabb2018-05-317-134/+102
|
* Add HP98543 medium-res color graphics card (#3575) Sven Schnelle2018-05-284-37/+264
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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>
* Add topcat asic (#3558) Sven Schnelle2018-05-112-359/+16
| | | | | | | | | | | | | | | | | | | | | | | | | * 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
* Streamline machine configuration macros - everyone's a device edition. Vas Crabb2018-05-061-10/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* srcclean (nw) Vas Crabb2018-04-222-28/+34
|
* Fix clang build by removing unused variables (nw) AJR2018-04-161-1/+0
|
* Merge pull request #3461 from sschnelle/hp98544_window_move R. Belmont2018-04-162-4/+341
|\ | | | | Add basic window move support to hp98544 framebuffer