| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
| |
|
|\
| |
| | |
hp9k3xx: call reset() instead of manually resetting subdevices (nw)
|
| | |
|
|\ \
| |/
|/| |
hp9k_3xx: misc fixes (nw)
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
- 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
|
|/ |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
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.
|
|
|
|
| |
* The validation and slot registration still needs modernising, but the client code is prettier at least
|
| |
|
| |
|
|
|
|
|
| |
This makes the HP-UX 9 installer properly work with GPIB. Without
this patch it will hang ages during detection of GPIB devices.
|
| |
|
| |
|
|\
| |
| | |
hp_dio: remove unused map() functions
|
| | |
|
|\ \
| | |
| | | |
hp98644: remove MCFG (nw)
|
| |/ |
|
|/ |
|
|
|
|
|
|
|
|
|
|
|
|
| |
* 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_hil: add HP 46060B mouse
|
| |
| |
| |
| |
| |
| | |
- move hle_device_base to it's own files
- add hlemouse.{cpp,h}
- add mouse device to hp_ipc and hp9k_3xx
|
|/ |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
* hp9k_3xx: add HP98620 DMA controller
* hp98620: remove unused defines (nw)
|
|
|
|
|
|
| |
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.
|
|
|
|
| |
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 namespace (nw)
* hp_dio: add comment on closing namespace brackets (nw)
|
| |
|
|
|
|
|
|
|
|
| |
* 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
|
|
|
|
|
|
|
|
| |
* topcat: add has_changed() function (nw)
* topcat: don't write to plane if not enabled (nw)
* topcat: fix initialization order (nw)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* 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)
|
|
|
|
|
|
| |
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)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* 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>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* 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 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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
| |
|
|\
| |
| | |
Add basic window move support to hp98544 framebuffer
|