summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/cpu/vt50/vt50.cpp
Commit message (Collapse)AuthorAgeFilesLines
* emu/devcb.h: Eliminated the need to call resolve() on callbacks. (#11333) Vas Crabb2023-06-171-36/+9
| | | | | | | | | | | | Read callbacks now need a default return value supplied at construction. Replaced isnull() with isunset() which tells you if the callback wasn't configured rather than whether it isn't safe to call. Enabled validation of device callbacks (it seems it was disabled at some point, probably accidentally). Device callbacks and object finders now implement the same interface for resolution.
* Cleaned up bitmap API. Vas Crabb2020-09-271-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Made const-qualified pixel accessors (pix, pixt, raw_pixptr) return const-qualified references/pointers to pixesl, and added non-const versions. This makes bitmap more like standard library containers where const protects the content as well as the dimensions. Made the templated pixt accessor protected - having it public makes it too easy to inadvertently get a pointer to the wrong location. Removed the pix(8|16|32|64) accessors from the specific bitmaps. You could only use the "correct" one anyway, and having the "incorrect" ones available prevented explicit instantiations of the class template because the static assertions would fail. You can still see the pixel type in the bitmap class names, and you can't assign the result of &pix(y, x) to the wrong kind of pointer without a cast. Added fill member functions to the specific bitmap template, and added a explicit instantiations. This allows the bitmap size check to be skipped on most bitmap fills, although the clipping check is still there. Also fixed a couple of places that were trying to fill an indexed 16-bit bitmap with rgb_t::black() exposed by this (replaced with zero to get the same net effect). The explicit template instantiations in the .cpp file mean the compiler can inline the function if necessary, but don't need to generate a local out-of-line body if it chooses not to. Extended the size of the fill value parameter in the base bitmap class to 64 bits so it works correctly for 64-bit bitmaps. Fixed places where IE15 and VGM visualiser weren't accounting for row bytes potentially being larger than width. Fixed an off-by-one in an HP-DIO card where it was treating the Topcat cursor right edge as exclusive. Updated everything to work with the API changes, reduced the scope of many variables, added more const, and replaced a few fill/copy loops with stuff from <algorithm>.
* emumem: A little more speedup. cache and specific change syntax, and are ↵ Olivier Galibert2020-05-251-13/+11
| | | | | | | | | | | | | | | | not pointers anymore [O. Galibert] The last(?) two changes are: - Add a template parameter to everything (theoretically the address space width, in practice a level derived from it to keep as much compatibility between widths as possible) so that the shift size becomes a constant. - Change the syntax of declaring and initializing the caches and specifics so that they're embedded in the owner device. Solves lifetime issues and also removes one indirection (looking up the base dispatch pointer through the cache/specific pointer).
* vt52: Draw characters on screen; add notes about processor architecture AJR2020-01-101-5/+150
| | | | vt50dasm: Slightly smarter jump decoding; note another (unemulated) VT52 difference (nw)
* vt50_cpu: Minor note (nw) AJR2020-01-071-0/+3
|
* vt52: Misc. notes and things (nw) AJR2019-12-241-1/+1
|
* vt52: Many updates (nw) AJR2019-12-221-3/+26
| | | | | | | | - Start driving UART from CPU timing chain, implementing most switch-configurable rates but just looping back data for now - Fix TABJ semantics - Add VT52-specific side effect of ZCAV - Add Caps Lock key - Misc. other additions and adjustments
* vt5x_cpu: Add more callbacks; note that VT52 doesn't seem to support the key ↵ AJR2019-12-221-4/+8
| | | | click switch (nw)
* vt5x_cpu: Preliminary video timing chain (nw) AJR2019-12-221-16/+56
|
* vt52: Fill in and fix a whole bunch of things (nw) AJR2019-12-211-18/+56
|
* vt52: Add debug state register to show address translation; minor ↵ AJR2019-12-211-3/+8
| | | | adjustments (nw)
* vt5x_cpu: Change register name (nw) AJR2019-12-191-7/+7
|
* vt52: Add bell (not working now) (nw) AJR2019-12-181-2/+10
|
* vt52: Add keyboard (nw) AJR2019-12-181-2/+4
|
* vt52_cpu: Add RAM instructions and UART interface (nw) AJR2019-12-181-11/+147
|
* vt52: Extremely preliminary CPU execution (many instructions still ↵ AJR2019-12-181-2/+301
| | | | unimplemented)
* New machines marked as NOT_WORKING AJR2019-12-181-0/+128
---------------------------------- VT52 [Dalby Datormuseum]