Commit Graph

1949 Commits

Author SHA1 Message Date
R. Belmont
7b193346a8 Merge pull request #2068 from JoakimLarsson/prodigy_display
Prodigy display
2017-02-17 21:59:51 -05:00
couriersud
8536d065e2 Fix mingw 32 bit build. (nw) 2017-02-17 20:10:15 +01:00
couriersud
0716d96514 Reworked truthtables a bit.
- Moved 9312 and 74279 to ttl macro library.
- Renamed TTL_9312_* to DM9312. This is more appropriate.
- Fixed a number of warnings from latest ubuntu clang-5.0.
2017-02-17 20:10:15 +01:00
Curt Coder
044d08a6c3 abc800_dsk: Fixed sector interleave. [Curt Coder] 2017-02-17 13:14:40 +02:00
Joakim Larsson Edstrom
f9f149a579 new netlist device: 74164 - 8bit parallel output serial shift register 2017-02-17 09:05:30 +01:00
couriersud
73b4115c19 Optimized 7493 device. Gives some 5 to 10% improvement to pong.
7493 also is an example on how to use multiple handlers on a device
makes design easier. (nw)
2017-02-16 20:31:42 +01:00
couriersud
32aca6c398 Move from <cstring> to std::copy and friends. (nw) 2017-02-16 20:31:42 +01:00
Olivier Galibert
c1e0a6344a Revert "wd177x_dsk, upd765_dsk: Fixed sector interleaving. [Curt Coder]"
This reverts commit 16f79382aa.
2017-02-16 14:46:45 +01:00
Curt Coder
16f79382aa wd177x_dsk, upd765_dsk: Fixed sector interleaving. [Curt Coder] 2017-02-16 14:10:36 +02:00
R. Belmont
1835b25d6d Merge pull request #2062 from shattered/_fb4f4dd
ms0515.cpp -- hook up keyboard and floppy, improve video emulation etc. (take 2)
2017-02-15 21:58:06 -05: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
couriersud
cc39da9c83 Added state saving and loading to nltool.
First step towards regression and unit tests. (nw)
2017-02-15 01:01:51 +01:00
couriersud
74e690d654 Move inline constructors from header to cpp. (nw) 2017-02-15 01:01:50 +01:00
Sergey Svishchev
a783bb3de4 dsk_dsk format: propagate CRC error flags 2017-02-13 19:33:08 +00:00
Sergey Svishchev
1837531d2d ms0515.cpp -- hook up keyboard and floppy, improve video emulation etc. 2017-02-13 22:09:31 +03:00
couriersud
3c60882f93 Start adding save state support to nltool.
Save states are needed for regression tests going forward. (nw)
2017-02-13 00:54:51 +01:00
couriersud
3e42594830 Add standalone VC2015 build file in src/lib/netlist/build
This was the last platform without standalone compile. Sure needs more
attention, grateful for any help. (nw)
2017-02-13 00:54:40 +01:00
couriersud
290185cf00 Remove duplicate save states / Save state simplification. (nw) 2017-02-13 00:51:41 +01:00
couriersud
f2c3b51553 Separate custom save states. (nw) 2017-02-12 23:48:53 +01:00
couriersud
d7f420ccf7 Optimize queue save state. (nw) 2017-02-12 23:48:52 +01:00
Olivier Galibert
a2557f1b02 Remove emu.h from headers (nw)
Per Vas' request.  If the compile fails for you (i'm thinking osx and
windows native debuggers here in particular), add '#include "emu.h"'
as first include of the cpp files that fail.

Due to our use of precompilation and forced inclusion, emu.h must be
included as the very first non-comment thing we do if we want to be
sure msvc compiles are identical to gcc/clang ones.  Doing it directly
instead of through an include increases the correctness probability by
a magnitude.
2017-02-11 18:31:20 +01:00
couriersud
572ca8100f Reorder include order to comply with best practices. (nw) 2017-02-10 21:53:02 +01:00
couriersud
9a71daa2e0 Make windows builds of nltool and nlwav understand unicode.
nltool and nlwav now use wmain, i.e. UNICODE main on windows. (nw)
2017-02-10 21:53:01 +01:00
couriersud
ab17457707 Make sure netlist includes are not found directly on include path.
Instead, they have to be prefixed by "netlist/". Removed unneeded link
librariers for nltool and nlwav along the way. (nw)
2017-02-10 21:52:09 +01:00
Miodrag Milanovic
90c14be174 Sync with upstream (nw) 2017-02-05 18:32:46 +01:00
couriersud
70051f6c1f Netlist: It is now possible to have multiple handlers per device ...
... for updates. This will make device implementation more flexible and
faster. A nice side-effect is that there was some minor (<5%)
performance increase already. Each input is now assigned a notification
handler. Currently this is update, but going forward this may be a
custom handler. In addition
- fixed MEMPOOL on OSX
- removed dead code
- avoid bit-rot
- added delegate support for emscripten and arm processors
- added delegate support for VS 2015 x64
[Couriersud]
2017-02-05 17:19:53 +01:00
couriersud
427cf984db Fix 9322. (nw) 2017-02-05 17:19:52 +01:00
couriersud
ced71c2b58 Add constexpr add noexcept. (nw) 2017-02-05 17:19:51 +01:00
couriersud
6a770d7086 Doxygen work. How the heck can one enforce a consistent device
documentation? (nw)
2017-02-05 17:19:51 +01:00
couriersud
f61e1f2123 Fix a bug in pstring.cpp causing crash if moved object is reused. (nw) 2017-02-05 17:19:50 +01:00
couriersud
ee8fed61c2 Some documentation work.
Along the way, set default models for devices missing them. 
Fix standalone makefile to work in mingw environment. (nw)
2017-02-05 17:19:49 +01:00
Vas Crabb
4db6e43971 Avoid conflict with Apple C++ runtime header nl_types.h 2017-02-04 12:29:23 +11:00
Vas Crabb
9568b26c35 fix chd build (nw) 2017-02-02 14:36:48 +11:00
Vas Crabb
38a6ab02e4 yo sup dawg (nw) 2017-02-02 14:17:40 +11:00
Nigel Barnes
d5bba41ed6 zx81: added tzx cassette format 2017-02-01 19:40:29 +00:00
Nigel Barnes
51992a75ec apd_dsk: improved identify and simplified load (nw) 2017-02-01 19:40:29 +00:00
Lord-Nightmare
7d05b65840 build fix (nw) 2017-01-31 18:24:49 -05:00
couriersud
e02d8cad2b Fixed a number of issues:
- Fixed crashes on terminals without nets (i.e. connected to a rail)
- Reviewed "FIXMEs" and corrected some minor ones.
- Made m_cur_analog protected. 
- Fixed pmf delegates to work with msvc.
- More optimizations to the solver code.
- Started work on a better signal pipeline in nlwav
- Only generate documentation for entities which are documented.
[Couriersud]
2017-01-31 22:37:25 +01:00
couriersud
c713f9ed1d Separate include file usage for netlist.
Device implementations (all cpp files in netlist/devices) now should
only include nl_base.h. 
Netlist implementation sources should only include "net_lib.h". 
Refactored netlist.h and netlist.cpp to avoid namespace congestion in
netlist.h.
Fixed VC2015 build. (nw)
2017-01-29 15:47:12 +01:00
couriersud
2720512e31 Solver stuff:
Rewrote mat_cr_t to include data as well. 
Fixed some bitrot in other parts.
Simplified solver creation. (nw)
2017-01-29 15:45:50 +01:00
couriersud
fe8e2a7732 Logging enhancement for Joakim.
For netlist device debugging one can now use 
	#define LOG(...) log().info(__VA_ARGS__)
to use debugging and the known
	#define LOG(...) do {} while (0)
do disable debugging on device level. 

To avoid bitrot one could as well use
	#define LOG(...) log().info.log<true>(__VA_ARGS__)
and
	#define LOG(...) log().info.log<false>(__VA_ARGS__)

The later disables debugging. If the compiler can assume that there are
no side effects from e.g. using foo(a/b), 'LOG("abc {1:04x}",
foo(a/b));' should be completely optimized away.

Log channels available are info, verbose, warning, error and fatal.
Don't use debug, it is enabled only on specific debug builds.

Use would be e.g.
	LOG("abc {1:04x}", 2);
The format specifier in the string are enclosed in "{}". "{2}" is the
second parameter after the format string. Types are determined
automatically. "{3:04x}" would format a number as a hexadecimal with 4
leading zeros.
 
[Couriersud]
2017-01-28 03:54:59 +01:00
couriersud
4eee6b09a9 Fix a hidden bug in the GMRES solver and more optimization. (nw) 2017-01-28 03:54:58 +01:00
couriersud
bd20222866 Fix bug which caused hazl1500 to crash. (nw) 2017-01-28 03:52:42 +01:00
couriersud
cb16de91c6 Minor refactoring. (nw) 2017-01-27 18:38:01 +01:00
couriersud
2e5d1c6cb3 Remove macro to avoid copying and replace with a struct. (nw) 2017-01-27 15:22:19 +01:00
couriersud
6d2354264a Do not derive other classes from std::vector. More cleanup. (nw) 2017-01-27 15:22:18 +01:00
couriersud
5c88873a87 Cleanup of includes. (nw) 2017-01-27 15:22:17 +01:00
smf-
1756a54c74 fix for visual studio (nw) 2017-01-26 12:35:48 +00:00
couriersud
716361fd6a Hopefully fix compile on some unknown compiler. (nw) 2017-01-26 11:03:19 +01:00
couriersud
c4dbd26730 Fix netlist code generation. (nw) 2017-01-26 11:03:18 +01:00
Julian Sikorski
c50ddac28b Fixed building using system utf8proc 2017-01-26 09:28:21 +11:00
couriersud
ba03118b09 More netlist refactoring:
- Remove virtual from some destructors and make them protected. 
- Various cleanups.
- Small performance improvement. 
- Fixed some inconsistencies. 
- More c++ refactoring. (nw)
2017-01-25 22:17:48 +01:00
couriersud
25152bd69a Netlist refactoring:
- Refactored netlist pmf code.
- Small optimization for diode calculations. 
- Minor refactoring across the board. (nw)
2017-01-25 22:17:47 +01:00
couriersud
093bda0193 Added infix notation parsing to the function parser. (nw) 2017-01-25 22:17:46 +01:00
Stiletto
9db7b63e9a Updates "2016" strings to "2017 where relevant.
Updates "2016" strings to "2017 where relevant.
2017-01-24 17:29:49 -05:00
Vas Crabb
edf64df1db srcclean (nw) 2017-01-22 15:37:37 +11:00
couriersud
4d15501a30 Netlist: code refactoring
Make streams provide binary access only. Use putf8_reader and
putf8_writer to actually access streams. Replace some char * parameters
with pstring where appropriate. Minor code refactoring and move
functionality were it belongs. (nw)
2017-01-20 22:29:23 +01:00
couriersud
1ae3e29ea3 Assume string literals are UTF8 in netlist code.
At the same time, any char pointer has to be explicitly converted to
pstring by specifying an encoding. Not yet optimal, but certainly better
than what was there before. 
Removed unneeded methods from pstring. (nw)
2017-01-20 22:20:36 +01:00
couriersud
d0b6742563 Default argument on plib::environment now optional. (nw) 2017-01-20 22:20:35 +01:00
couriersud
167d8405ec Converted warnings and fatal log messages to constants.
Also refactored some code to ease the exercise. (nw)
2017-01-20 22:20:35 +01:00
couriersud
ca11021d73 Netlist:
- refactored reverse polish notation evaluator into own source files.
- added function parameter to current and voltage sources VS and CS.
  You can now use those to e.g. produce a sine wave.
- Changed code to allow devices to optionally be treated as dynamic or 
  timestepping devices.
[Couriersud]
2017-01-17 01:35:16 +01:00
Nigel Barnes
2188df0263 apd_dsk: new floppy format 'Archimedes Protected Disk' 2017-01-16 20:44:43 +00:00
couriersud
7bf2939fd8 Register all devices using NETLIB_DEVICE_IMPL. Fix encoding issue. (nw) 2017-01-16 19:49:45 +01:00
couriersud
969e6ed6a0 Keep track were registry elements are created. (nw) 2017-01-16 19:49:44 +01:00
couriersud
10a4ab4af1 Preparation work for automatically generated include file for devices.
nltool now is able to create all defines from the factory definitions.
This will reduce the number of places needed to touch when adding
devices and always ensure that the parser and statically compiled
netlist code use the same syntax. This will enable us to delete most
device include files, e.g. nld_74107.h. 

Netlist usage to create this header file:
./nltool -c header > src/lib/netlist/devices/nld_devinc.h

This is not yet used in production. It will be enabled after additional
tests.

[Couriersud]
2017-01-16 19:49:43 +01:00
couriersud
c612391f8e Move analog devices into "netlist::analog" namespace. Added
documentation to opamp model. (nw)
2017-01-15 17:56:47 +01:00
couriersud
fd59a10f92 Added more documentation to diode and bjt model. (nw) 2017-01-15 17:56:46 +01:00
couriersud
3cfe098bb2 Introduce a more structured approach to models. (nw) 2017-01-15 17:56:45 +01:00
R. Belmont
72cf75f937 Merge pull request #1974 from shattered/_55d0495
minor floppy internals improvements
2017-01-14 23:41:24 -05:00
Sergey Svishchev
89b7801ebe formats/wd177x_dsk: allow override of build_sector_description, like nec765_dsk 2017-01-15 02:24:48 +03:00
couriersud
674077f89f Prepare source for consistent error message usage. (nw) 2017-01-14 16:35:57 +01:00
couriersud
bce5c521a2 Add code to remove devices connected only to rail terminals. 2017-01-14 16:35:56 +01:00
couriersud
ef8b7ccb6b Core refactoring
- connect_late ==> connect
- register nets where they are created
2017-01-14 16:35:55 +01:00
couriersud
5cd17c361f Fix seldom used conditional build options.
- Fixed OPENMP compile
  For congo bongo, using Solver.PARALLEL=1 significantly increases
  performance from 270% to 380%. However, this has to be taken
  with a grain of salt. Enabling this on predominantly logic netlists
  can severly kill performance.
- Increased readability of timed queue code.
2017-01-12 23:20:23 +01:00
couriersud
b1c3586789 Improve readability and remove some trampolines. (nw) 2017-01-12 23:20:23 +01:00
couriersud
c8c7e9a770 Fix timing issue in CD4538. Add "pow" (power) to the function model.
Minor documentation updates. Slight improvement of gorilla sound. (nw)
2017-01-12 23:20:22 +01:00
couriersud
5b4026d13f - setup_t is owned by netlist_t. Stop being complicated.
- Remove gnd() method. 
- Further simplification.
- Fix potential reset and initialization issues. (nw)
2017-01-12 23:20:21 +01:00
R. Belmont
d7dba2bd78 Merge pull request #1950 from shattered/_3aa32de
misc. fixes exposed by Displaywriter WIP
2017-01-09 21:35:37 -05:00
Sergey Svishchev
4add62a083 TeleDisk loader: accept images produced from 8" SSSD disks 2017-01-10 00:31:25 +03:00
Sergey Svishchev
1fda75a0e2 ImageDisk loader: don't crash on tracks with no data 2017-01-10 00:31:24 +03:00
couriersud
9d3d07b771 Move netlists into macro folder. (nw) 2017-01-09 00:28:31 +01:00
couriersud
9e88fd79ea nlwav now accepts stdin and stdout. (nw)
cat log_RO.1.log | ./nlwav | play -
2017-01-09 00:28:30 +01:00
couriersud
5220572228 Reduce memory footprint for parameters. (nw) 2017-01-08 17:31:29 +01:00
couriersud
233b0b7dbe Decrease memory footprint. (nw) 2017-01-08 17:31:28 +01:00
couriersud
f425f2b997 No need for a virtual stop which is needed only by the solver. (nw) 2017-01-08 17:31:27 +01:00
couriersud
1950ff149a Make stop be called again. Fix METHOD parameter. (nw) 2017-01-08 17:31:26 +01:00
couriersud
e26e327ef9 Rename misleading solver parameters. (nw) 2017-01-08 17:31:25 +01:00
couriersud
d790daa2a7 Remove parameter GS_THRESHOLD. It is now outdated. (nw) 2017-01-08 17:31:24 +01:00
couriersud
ff820d6fa9 Fix regression. (nw) 2017-01-08 17:31:23 +01:00
Justin Kerk
57ac19beee pc_dsk: Handle 1.44MB images with 1,024-byte footer, which have turned up in a couple places (nw) 2017-01-08 01:59:46 -08:00
Justin Kerk
7a8d5118b5 pc_dsk: Assume a smaller gap size to allow 400K disk images to load. Fixes e.g. ikari and marble from the ibm5150 softlist. [Justin Kerk] 2017-01-07 22:28:19 -08:00
couriersud
a841ff553e Fix some clang pedantic warnings. (nw) 2017-01-07 17:29:45 +01:00
couriersud
4dfd26b248 Minor refactoring with focus on a bit more readability. (nw) 2017-01-07 17:29:44 +01:00
couriersud
e788dc5dbe Fix startup when there are no timestep devices present, i.e. Capacitors
or inductors. (nw)
2017-01-07 17:29:43 +01:00
couriersud
59cc0a0d22 Fix stuntcyc regression. (nw) 2017-01-06 01:31:36 +01:00
couriersud
0ebd66d72f intX_fast_t may depend on compiler implementation and thus is not suited
for save states. (nw)
2017-01-06 01:31:35 +01:00
couriersud
47492e4821 Make destructors virtual on base classes. (nw) 2017-01-06 01:31:35 +01:00
couriersud
2c0b627f13 More cleanups. (nw) 2017-01-06 01:31:33 +01:00
Vas Crabb
2c8cd1f083 Merge pull request #1911 from npwoods/imgtool_use_wide_console
[Imgtool] Changed to use wcout/wcerr in order to support Unicode console output
2017-01-05 16:36:55 +11:00
couriersud
02c3f45bff Fix clang "-Wno-weak-vtables" warnings in netlist source. Refactored
code along the way. (nw)
2017-01-05 01:43:31 +01:00
couriersud
67841056da Fix some pedantic clang warnings. (nw) 2017-01-05 01:43:31 +01:00
Miodrag Milanovic
74b24ecefb Added websockets as well (nw) 2017-01-04 19:22:13 +01:00
couriersud
78ef96336e Added SIGFPE enabling code to plib/pexception.*. Moved plib exceptions
into these files as well. The code uses <cfenv> which is part of c++11
standard. Non-standard glib extensions are currently only used on linux
and (i386 or x86_64). (nw)
2017-01-04 18:01:22 +01:00
couriersud
85d1aca315 Minor refactoring and renaming exercise. (nw) 2017-01-04 18:01:21 +01:00
couriersud
93d13d1338 Fix pin assignment 4001. (nw) 2017-01-04 18:01:20 +01:00
couriersud
176258e960 Add FREQ parameter to MM5837 noise generator. Specs in datasheet range
from 24000 Hz to 56000 Hz. Properly use VDD for output reference
voltage. (nw)
2017-01-04 18:01:20 +01:00
couriersud
85949f082c Fix MM5837. (nw) 2017-01-04 18:01:19 +01:00
couriersud
424e2d4097 Fix parsing of macro devices. (nw) 2017-01-04 18:01:17 +01:00
Miodrag Milanovic
63e3f48775 Added initial HTTP/HTTPS webserver/websocket server support (nw) 2017-01-04 16:15:57 +01:00
Nathan Woods
b1eed07ad9 Vas Crabb feedback:
1.  Changed the Win32 code to use _O_U8TEXT()
2.  Reordered system #includes
3.  Changed a number of 'std::wcout << ...' to use util::stream_format()

I'm getting massive code compilation issues, and it isn't clear to me what the problem is.  I'm committing my WIP right now, with the intention of reviewing the specifics soon.
2017-01-04 08:06:20 -05:00
Nathan Woods
3231c3f648 [Imgtool] Changed to use wcout/wcerr in order to support Unicode console output
I really don't like the prevalence of '#ifdef WIN32' in this change, both the _setmode() and bypassing codecvt.  I strongly suspect that the latter is the consequence of some mistake that in practice doesn't cause problems in MSVC.  I welcome all eyes.
2017-01-02 11:59:25 -05:00
couriersud
db7cdcb957 Refactored factory. Use namespace "factory" instead of prefix factory_
all over the place. (nw)
2017-01-02 17:33:21 +01:00
couriersud
9a7b32f29d Simplify code. Introduce consistent approach to loading macro devices.
Changed  nltool "listdevices" command accordingly. Fix some bugs which
surfaced by this exercise. (nw)
2017-01-02 17:33:20 +01:00
couriersud
e84461538c Hopefully fix OSX crashes during netlist setup. (nw) 2017-01-01 17:01:26 +01:00
R. Belmont
e7bc92d930 Merge pull request #1897 from npwoods/introduce_utf8proc
Introduced utf8proc and created wrapper code to expose a prettier API
2017-01-01 08:32:39 -05:00
Nathan Woods
5be1b8e6e0 Introduced utf8proc and created wrapper code to expose a prettier API 2016-12-31 11:17:07 -05:00
couriersud
3a4bc804c0 Hook up luigi walking sound in netlist mario sound implementation.
Mario driver now uses netlist audio implementation instead of discrete
implementation. The previous discrete sound emulation has not been
removed yet because it still contains a lot of documentation.
[Couriersud]
2016-12-31 15:21:05 +01:00
couriersud
0eefe5f02d cstr() ==> c_str() (nw) 2016-12-30 23:42:24 +01:00
couriersud
f1a6e2b47e Align noexcept usage. Rename register_con to add_terminal for clearity.
Fix bug introduced with last commit. (nw)
2016-12-30 23:42:23 +01:00
couriersud
b1516cc7a3 Analog to digital proxy rework. (nw)
Properly handle connected inputs when creating a-d proxy. Aligned a-d
proxy to d-a proxy class structure.
2016-12-30 20:31:14 +01:00
Justin Kerk
44d302c1ab pc_dsk: Support 360K images with 512-byte header, found in some softlist entries. [Justin Kerk] 2016-12-29 14:44:50 -08:00
couriersud
1983580e26 Some preparation for future changes on proxies and chip families. (nw) 2016-12-28 13:48:49 +01:00
couriersud
63f4e52dae Moved proxy code into separate file. (nw) 2016-12-28 13:48:48 +01:00
couriersud
419a7da172 Fix 74629 and some internals. (nw) 2016-12-27 19:37:30 +01:00
couriersud
4ee3f42d36 Fix bug in 74123. (nw) 2016-12-27 19:36:04 +01:00
couriersud
016535b3d0 Simplify. (nw) 2016-12-27 15:19:18 +01:00
couriersud
28a734436e Added "-r" option to nltool to pass path to a folder containing rom
files. Multiple "-r" options may be given. Zip files are not supported,
just individual files. [Couriersud]
2016-12-27 11:25:00 +01:00
couriersud
54cbd67a42 Fix loading roms in two devices. (nl) 2016-12-27 04:33:18 +01:00
couriersud
bf1a504545 Fix nullptr exception. (nw) 2016-12-27 04:33:17 +01:00
couriersud
f43e45a5cf Netlist: Roms now specify an identifier in the netlist.
The identifier is used to load data from a source_t implementation. This
allos a consistent approach in netlists independent of netlist
implementation. Both sources code and parameter code needed quite some
rewrite to support this. [Couriersud]
2016-12-27 02:44:45 +01:00
MooglyGuy
4f3b59ef31 Well, it sorta looks like Stunt Cycle, at least. (nw) 2016-12-26 20:34:03 +01:00
Olivier Galibert
0a4211b73e Gross doesn't even begin to describe it (nw) 2016-12-26 18:55:19 +01:00
MooglyGuy
538d76efe3 -stuntcyc: Added netlist. Currently does not show anything on-screen. [Ryan Holtz] 2016-12-26 12:48:39 +01:00
Vas Crabb
03d486e9b5 netlist: Added LM747, LM747A and 2N2565. 2016-12-26 02:22:25 +11:00
Vas Crabb
127fd9b427 first srcclean pass (nw) 2016-12-25 13:57:31 +11:00
couriersud
8446519012 Netlist: align naming of 9334/make nl_hazelvid.cpp parseable by nltool
Renamed DM9334 to 9334 to align with naming convention used for other
93XX chips.
Added proper connection information for a number of chips to
net_lib.cpp. This allows to parse and run nl_hazelvid.cpp using nltool:

nltool -t 1 -f nl_hazelvid.cpp
2016-12-25 02:07:42 +01:00
MooglyGuy
fbb8ee0fe8 -netlist: Added 82S123 256-bit (32x8) TTL bipolar PROM. [Ryan Holtz] 2016-12-24 22:09:59 +01:00
couriersud
c0da1cee57 Leave more comments on differences between 74107 and 74107A.
Bought two 74107 for an incredible price on eBay :-( (nw)
2016-12-24 01:56:04 +01:00
couriersud
2620b4ccac Fix 74107 and 74107A timings to typical values. (nw) 2016-12-24 01:12:35 +01:00
couriersud
3506240e19 Added inductor to netlist. (nw) 2016-12-24 00:58:36 +01:00
couriersud
c6440a43d4 Remove extra semicolon. (nw) 2016-12-24 00:58:36 +01:00
couriersud
dd785aa19c Leave a note about compatibility of 74161 and DM9316. (nw) 2016-12-24 00:58:34 +01:00
therealmogminer@gmail.com
ad78023dc3 Back out part of my most recent netlist change (nw) 2016-12-24 00:14:23 +01:00
therealmogminer@gmail.com
6a6fdbdb82 Fleshing out nl_stuntcyc a little more (nw) 2016-12-23 23:29:45 +01:00
therealmogminer@gmail.com
9c4c4d0a5b -netlist: Added 82S126 4kbit (512x8) TTL bipolar PROM. [Ryan Holtz] 2016-12-23 23:29:45 +01:00
Sandro Ronco
8f4e1dc37e Archimedes: make floppies work. 2016-12-23 19:41:27 +01:00
Vas Crabb
386eb6b7b8 helps to git add 2016-12-23 15:18:29 +11:00
Vas Crabb
f5bc78c211 netlist: Added 4316 bilateral switch pack. 2016-12-23 14:54:54 +11:00
Vas Crabb
e2ec57aa48 netlist: add uA741 in 8-, 10- and 14-pin DIP variants 2016-12-23 13:39:39 +11:00
therealmogminer@gmail.com
677aaaec3d -netlist: Added 74165, 74194, 7475, 7485, and DM9322 devices. [Ryan Holtz] 2016-12-22 19:39:52 +01:00
smf-
7d7023cc0a fix clang on windows build (nw) 2016-12-22 14:14:55 +00:00
therealmogminer@gmail.com
780732f563 My name is not Ryan 161 (nw) 2016-12-22 01:34:59 +01:00
therealmogminer@gmail.com
0e85817c8a Added a chip burn-down list to atarittl, listing which chips still need to be emulated for Indy 4 and Stunt Cycle (nw) 2016-12-22 01:14:28 +01:00
therealmogminer@gmail.com
2987115966 -netlist: Various fixes: [Ryan Holtz]
* 7473: Made device only transition on a falling clock.
 * 74161: Inverted Clear and Clock inputs to match datasheet.
 * 74260: Fixed number of inputs.
 * Am2847: Fixed shift register size (was 160 bits, should have been 80 bits)
 * DM9334: Inverted C and E inputs to match datasheet.
2016-12-21 20:32:50 +01:00
therealmogminer@gmail.com
66abfa8e6d -netlist: Added shared RAM pointer, for use by netlist RAM devices which need updating by non-netlist driver code. [Ryan Holtz]
-netlist: Added new devices: [Ryan Holtz]
 * Intel 2102A 1Kbit (1024 x 1) Static RAM
 * 74365 Hex Bus Driver with 3-State Outputs
 * Generic 2- and 3-terminal Tristate device
 * Note: Tristate device and 74365 do not actually tristate, they are simply a way of combining multiple outputs + chip enables.
2016-12-21 20:32:49 +01:00
therealmogminer@gmail.com
ac56130251 -netlist: Added 74260 Dual 5-Input NOR Gate device. [Ryan Holtz] 2016-12-21 20:32:49 +01:00
therealmogminer@gmail.com
8dfbe8e538 Minor netlist syntax changes, (nw) 2016-12-21 20:32:48 +01:00
therealmogminer@gmail.com
4a71e6bdcf -netlist: Added 74166 Parallel-Load 8-Bit Shift Register device. [Ryan Holtz] 2016-12-21 20:32:48 +01:00
therealmogminer@gmail.com
e3e38025c3 -netlist: Added 2716 16 Kbit (2 Kbit x 8) UV EPROM. [Ryan Holtz] 2016-12-21 20:32:47 +01:00
therealmogminer@gmail.com
32d0f10418 -netlist: Added 74174 Hex D-Type Flip-Flop with Clear [Ryan Holtz] 2016-12-21 20:32:47 +01:00
therealmogminer@gmail.com
19165cfbfd netlist: Added 82S126 1K-bit bipolar PROM device. [Ryan Holtz] 2016-12-21 20:32:47 +01:00
therealmogminer@gmail.com
72f4f2a20e netlist: Device additions: [Ryan Holtz]
* 74161 Synchronous 4-Bit Binary Counter with Clock
 * 7473 Dual Master-Slave J-K Flip-Flops with Clear and Complementary Outputs
 * Am2847 Quad 80-bit Static Shift Register
 * DM9334 8-bit Addressable Latch
2016-12-21 20:32:46 +01:00
therealmogminer@gmail.com
3fcf6e6a3c -netlist: Add simple ROM hookup capability. [Ryan Holtz] 2016-12-21 20:32:45 +01:00
Vas Crabb
23df89c965 Make bitmaps movable, allowing them to be used in vectors and emplaced easily.
You're still responsible for ensuring you don't move a bitmap while a texture refers to it.
2016-12-15 20:10:36 +11:00
Vas Crabb
be26ac9abf coretmpl: add an associative LRU cache with map-like behaviour
selmenu: use LRU cache so icons don't all need to be reloaded on scroll

uismall.bdf: set default character for missing glyphs

rendfont.cpp:
* encapsulate many BDF and BDC handling details
* make file I/O 64-bit clean, check for allocation errors
* more solid BDF parser with error messages and trace logging
* fix heap smash when building bitmaps for BDF fonts
* extend BDC format to support high planes and default character
* render default character if glyph not found for BDF/BDC
2016-12-15 17:00:34 +11:00
Vas Crabb
c8f1954467 XML refactoring:
* move stuff to namespace util::xml
* scope down some enums
* split config load/save delegate types
* make config load take const so it can't mangle data
2016-12-11 18:15:41 +11:00
Olivier Galibert
962fda50bc delegates: Don't crash on late binding if no object is actually needed [O. Galibert]
pci9050: Fix the mappings [O. Galibert]
2016-12-09 17:23:03 +01:00
Vas Crabb
7238415d1f srcclean (nw) 2016-11-27 09:56:49 +11:00
Scott Stone
30cda1d3e5 A round of spelling/typographical fixes to source comments (nw) 2016-11-24 09:24:01 -05:00
Miodrag Milanovic
dbbd5e9c98 As promised, removing this part of code since it is used for compilers check, no need for this to be in release (nw) 2016-11-23 08:37:05 +01:00
Vas Crabb
0757bf61fd Work around buggy standard libraries (nw) 2016-11-21 07:48:43 +11:00
Vas Crabb
8179a84458 Introduce u8/u16/u32/u64/s8/s16/s32/s64
* New abbreviated types are in osd and util namespaces, and also in global namespace for things that #include "emu.h"
* Get rid of import of cstdint types to global namespace (C99 does this anyway)
* Remove the cstdint types from everything in emu
* Get rid of U64/S64 macros
* Fix a bug in dps16 caused by incorrect use of macro
* Fix debugcon not checking for "do " prefix case-insensitively
* Fix a lot of messed up tabulation
* More constexpr
* Fix up many __names
2016-11-19 05:38:48 +11:00
Vas Crabb
1b12a8940b gah, wasn't quite compatible (nw) 2016-11-17 21:04:52 +11:00
Vas Crabb
346e0a8a92 more xmlfile cleanup (nw)
* an empty tag and a self-closing tag are semantically equivalent, so std::string can be used saving some manual allocation
* a valid tag can't have an empty name, so that can be std::string too
* still expose empty strings as nullptr to API users
* scope down the int_format enum
* # is not £ ffs
2016-11-17 20:38:38 +11:00
Miodrag Milanovic
8a22a1f14d Reverting this change, it is compiler bug, confirmed by Microsoft VSO#292426 (nw) 2016-11-17 08:08:53 +01:00
Miodrag Milanovic
d5bf30edb8 Fix compilation under VS2017 (nw)
default_semantics is used by apply so need to be public
2016-11-16 21:00:29 +01:00
Vas Crabb
2354a42010 Turn xmlfile API into something that looks like C++
It's still a bit quirky but it's far better encapsulated before, and it plays nice with const (nw)
2016-11-17 01:44:03 +11:00
Vas Crabb
4d481a075a fix up pstring code (nw)
* instantiate static constant members for ODR context
* declare static members of template classes properly
* declare external template instantiations
* fix blind use of autocomplete ("treats" really?)
* fix ptype_traits on platforms where char is unsigned
* signed char is never an alias for char even if char is signed
* even if eclipse doesn't like using type, surely it supports typedef
2016-11-16 06:46:05 +11:00
Miodrag Milanovic
e71e37e54f Revert "using of IS_ENABLED in files used in tiny build (nw)"
This reverts commit 1efccdd38d.
2016-11-12 09:12:35 +01:00
Miodrag Milanovic
2131d9ad3a Revert "Use true/false if type used is bool (nw)"
This reverts commit dbd07cef38.
2016-11-12 09:12:35 +01:00
Miodrag Milanovic
dbd07cef38 Use true/false if type used is bool (nw) 2016-11-11 20:50:25 +01:00
Miodrag Milanovic
1efccdd38d using of IS_ENABLED in files used in tiny build (nw) 2016-11-11 20:43:19 +01:00
Miodrag Milanovic
7c765ea147 No need for osd_malloc, osd_malloc_array and osd_free (nw)
MALLOC_DEBUG not applicable anymore since we use new to allocate in 99.9% of cases
2016-11-11 16:12:01 +01:00
Miodrag Milanovic
ef51470515 delegate fix - lambda always have object (nw) 2016-11-08 08:14:28 +01:00
Miodrag Milanovic
689cf4d947 typo fix (nw) 2016-11-07 13:14:48 +01:00
Miodrag Milanovic
fc58a0bec8 Added basic HTTP server, not active yet, based on ASIO example with small refactoring included (nw) 2016-11-07 10:42:23 +01:00
smf-
e565b0c6aa Fix heap corruption when loading a new chd fails. Throw CHDERR_FILE_NOT_WRITEABLE rather than CHDERR_UNSUPPORTED_VERSION if you try to open an old version for writing [smf] 2016-11-06 16:50:35 +00:00
Miodrag Milanovic
2027d59e7f Do not use FUNC in delegate where applicable (nw) 2016-11-06 14:11:55 +01:00
Miodrag Milanovic
4a096d1ccb try to make GCC 5.4.0 happy (nw) 2016-11-05 20:36:08 +01:00
Miodrag Milanovic
dedf3c9b9d Delegate support for lambdas and std::functions in general, also supporting const members now [Miodrag Milanovic] 2016-11-05 20:26:04 +01:00
Vas Crabb
c15306c628 fixum (nw) 2016-11-05 00:35:09 +11:00
Joakim Larsson Edstrom
f1a1b77595 Added 'poke' and 'clear' methods to fifo template 2016-11-04 14:13:00 +01:00
Vas Crabb
c96ed5b4a6 there you go, Robbbbbbbbert (nw) 2016-11-01 21:11:25 +11:00
Vas Crabb
e7d31b6009 add a fifo template in util for Edstrom 2016-11-01 20:14:03 +11:00
Jordi Mallach
94220aa08b Misc typo fixes. 2016-10-27 13:45:15 +02:00
therealmogminer@gmail.com
347b8cd925 More ie15 optimizations, nw. Also removes cache-line padding of dubious performance value in core bitmap class in favor of behavior of least surprise 2016-10-23 14:22:07 +02:00
Miodrag Milanovic
aa2e6f9df3 Reverting part of changes from previous commits as described in mail on list (nw) 2016-10-23 09:11:47 +02:00
AJR
b83078eb46 Erase bitmap_rgb32::erase (nw) 2016-10-22 22:30:09 -04:00
AJR
7d41a1f619 Improvements to rgb_t (nw)
- Make most class methods constexpr
- Make color constants (white, black, etc.) into constexpr factory methods, in order to fix a static initialization problem discussed on the MAMEWorld forums.
  (Note that while C++14 allows constexpr member variables to be initialized outside classes, current compilers' support for C++14 constexpr rules has proven to be lamentably deficient.)
- Create bitmap_rgb32::erase to simplify syntax in update handlers
2016-10-22 18:45:04 -04:00
Miodrag Milanovic
e42ed88254 there you go (nw) 2016-10-22 21:37:06 +02:00
Miodrag Milanovic
fc340e9e7d cleaning "mess" for OCD people (nw) 2016-10-22 21:23:44 +02:00
Miodrag Milanovic
88b5a5c09f Cleanup linux OSD (nw) 2016-10-22 18:42:47 +02:00
Miodrag Milanovic
a6bdefec8c more TRUE/FALSE cleanup (nw) 2016-10-22 16:37:12 +02:00
Miodrag Milanovic
ddb290d5f6 NOTICE (TYPE NAME CONSOLIDATION)
Use standard uint64_t, uint32_t, uint16_t or uint8_t instead of UINT64, UINT32, UINT16 or UINT8
also use standard int64_t, int32_t, int16_t or int8_t instead of INT64, INT32, INT16 or INT8
2016-10-22 13:13:17 +02:00
Miodrag Milanovic
23ad94073f use standard types uintptr_t, char16_t and char32_t instead of FPTR, utf16_char, unicode_char (nw) 2016-10-22 11:31:49 +02:00
Miodrag Milanovic
d2e8f61149 dynamic_buffer is just std::vector<UINT8> (nw) 2016-10-21 12:35:05 +02:00
Miodrag Milanovic
a291e77b2c some bool <-> int not needed conversions, also cleaned drivenum.* was using memset for clearing vector (nw) 2016-10-21 11:54:18 +02:00
Vas Crabb
33b2c73395 srcclean (nw) 2016-09-26 04:51:59 +10:00
therealmogminer@gmail.com
239d09546f Bad OG, no cookie, nw either 2016-09-25 01:29:22 +02:00
Nathan Woods
1a017c9302 Consolidated code that inputs characters into buffers 2016-09-19 08:25:10 -04:00
Michael Zapf
2bf93a51e8 Added HxC HFE disk format. 2016-09-18 12:31:13 +02:00
Nathan Woods
c51de7aa95 Fixed a potential buffer overrun in the code that reads headers for the CoCo JVC disk image format 2016-09-13 06:50:08 -04:00
Nathan Woods
aea10e0b4d Alphabetizing the #include's, and added typedef's for the reverse iterators 2016-09-12 20:56:32 -04:00
Nathan Woods
86e242472f Fixed some stupid errors 2016-09-12 20:45:43 -04:00
Nathan Woods
714b78d084 Folded util::contiguous_sequence_wrapper<T> into coretmpl.h, and fixing the reverse_iterators 2016-09-12 20:33:05 -04:00
Nathan Woods
88c952adb3 Forgot to remove these m_ptr's 2016-09-12 18:45:10 -04:00
Nathan Woods
524d750106 Implementing util::contiguous_sequence_wrapper<T>::[c]r[begin|end]()
...correctly (I think).  Since we're not actually using this it isn't really tested
2016-09-12 07:51:15 -04:00
Nathan Woods
af1c5b26b8 Renamed util::view<T> to util::contiguous_sequence_wrapper<T>, changed ::iterator and ::const_iterator to just be pointers and other cleanups 2016-09-12 06:56:55 -04:00
Nathan Woods
91fb8f5bc3 Introduced an STL container for a view (util::view<T>), and changed opresolv to use it 2016-09-11 10:49:23 -04:00
Nathan Woods
cc70910693 Subscripting std::array<..., 0> is bad; working around this specific case 2016-09-10 15:16:45 -04:00
Vas Crabb
6a2b41aa0b Merge pull request #1332 from npwoods/option_guide_and_imgtool
option_guide C++-ification, touched up imgtool
2016-09-10 10:15:30 +10:00
Nathan Woods
b5a2d1bc77 Changing an 'assert(false)' to 'throw false', so that this always errors even in non-debug builds 2016-09-09 06:59:54 -04:00
Nathan Woods
402d84ff34 Properly catching another out of memory condition 2016-09-09 06:29:40 -04:00
Michael Zapf
44e74fcc99 ti99: Explicitly add the cell_size to mfm_w call (nw) 2016-09-05 00:08:09 +02:00
Nathan Woods
4251194fe5 Worked around the OPTION_GUIDE_EXTERN issue by using a crazy trick involving namespaces
Caveats:
  1.  Because of how this trick works, it is no longer possible to declare an option guide as static, so I had to make a bunch of changes
  2.  I'm going to want the hardcore C++ guys (i.e. - Vas) to review this with a fine toothed comb
2016-09-03 16:11:58 -04:00
Nathan Woods
be3c18302e Figured out a slightly better way to make the option guide macros to work
I was able to eliminate the need for a dummy entry at the end
2016-09-03 08:12:51 -04:00
Nathan Woods
965fb61f95 Attempting to make option_guide and option_guide::entry POD types; need to figure out a better way to do OPTION_GUIDE_EXTERN 2016-09-02 23:52:30 -04:00
Nigel Barnes
a7946f9c61 added header checks to identify in uef_cas and csw_cas formats 2016-09-02 21:47:02 +01:00
Nathan Woods
9c06ec0b6a Incorporating Vas Crabb feedback 2016-09-01 06:49:54 -04:00
Vas Crabb
46bf1ce04b More cleanup on the back of Osso's fix for a7e393b36b (nw)
* Make iterators actually meet requirements of ForwardIterator (and by consequence, ForwardIterator, Iterator and EqualityComparable)
* Don't use function statics if they can be avoided - it isn't thread-safe
* Remove leftover crud from when dynamic_buffer and friends were templates in lib/util

It's still dangerous that the const behaviour of iterators doesn't match STL.
Also, simple_list members with similar functionality to STL container members should be renamed.
2016-08-30 01:31:23 +10:00
Vas Crabb
c960435d3e srcclean and translation regeneration 2016-08-29 02:02:04 +10:00
Nathan Woods
b60879e595 option_guide C++-ification, touched up imgtool
The main point of this change is to C++-ify option_guide.  It was changed from a struct array to a class, namespaced etc, with the ultimate hope of incorporating an in-emulation image creation UI.

Imgtool got hit with a number of changes; I'll probably have to bring that off of the backburner and touch that up too
2016-08-27 16:41:11 -04:00
Miodrag Milanovic
62fe8b8980 some C++14 features are not supported by VS2013. VS2015 is free for home use so no need for legacy support (nw) 2016-08-27 11:15:38 +02:00
Vas Crabb
6e47d26589 gah how did I miss that (nw) 2016-08-27 17:02:11 +10:00
Vas Crabb
75be4dff5f While I'm causing full recompiles all the time, reduce necessary number of instantiations of parts of string formatting engine 2016-08-27 16:45:53 +10:00
Michael Zapf
596b04dd5c ti99: Fixed another issue with double stepping. 2016-08-25 19:26:46 +02:00
Michael Zapf
bade8ef9a9 ti99: Forgot to reset the TRACE flag. 2016-08-24 14:53:01 +02:00
Michael Zapf
294e196532 Forgot srcclean 2016-08-24 14:25:01 +02:00
Michael Zapf
19a2c632ae ti99: Fix a problem with formatted disk images that do not match the expected file size 2016-08-24 14:25:01 +02:00
Nathan Woods
846cd43287 Performs argument checking on the return value of CassetteLegacyWaveFiller.chunk_sample_calc()
This is just better error checking.  You can see this if you create a garbage file named 'foo.csw' and invoke the following command:

	mame bbcb -cass1 foo.csw

With this change you get an invalid image error.  Without it, you get this:

	Caught unhandled St12length_error exception: vector::_M_default_append
2016-08-23 07:56:48 -04:00
Nathan Woods
16d4c4e358 Fixed regression with cassette code that caused hangs to happen when loading cassette image formats that lacked read/write support
This entailed reintroducing device_image_interface::make_readonly(); I also reimplemented the feature in the cassette code in a less hacky way.
2016-08-20 22:42:53 -04:00
Nathan Woods
d1227cb38f casserr_t ==> enum class cassette_image::error 2016-08-20 19:59:04 -04:00
Nathan Woods
02b9749216 Stop forcing cassette image create when loading zero-length images. Also minor C++-ifications to cassette code (usage of bool and std::string, C++ comments) 2016-08-20 16:58:24 -04:00
Nathan Woods
d3b374d545 Fixed an issue with legacy floppy loading caused by filetype() now being a std::string
This caused 'mame a800 -flop1 brucelee' to fail on startup, but after this fix the image mounts but incorrectly.
2016-08-18 21:25:28 -04:00
Curt Coder
278cb2fc4e abc80x: Fixed ABC-838 disk image cell size. [Curt Coder] 2016-08-15 16:05:49 +03:00
Michael Zapf
bec5bd5022 hdc92x4: Added 9224 emulation; ti99_dsk: Fixed issue with deleted data marks in FM 2016-08-14 21:48:23 +02:00
Curt Coder
6a1ac985d4 victor9k: WIP. (nw) 2016-08-14 17:32:19 +03:00
Curt Coder
20127228a0 victor9k: Set floppy RPM after track step. Boots to CP/M now. [Curt Coder] 2016-08-12 15:15:14 +03:00
couriersud
d0970c215f Add a preliminary parser for RINF netlist format. (nw) 2016-08-10 23:08:35 +02:00
Miodrag Milanović
f67311c5a5 Merge pull request #1180 from npwoods/split_softlist_code_redo
Redo of split of src/emu/softlist.[cpp|h]
2016-08-08 13:43:06 +02:00
couriersud
7b8179bb04 Add target minw to standalone netlist makefile. (nw) 2016-08-07 22:28:06 +02:00
couriersud
8c297602c4 Fix noexcept and NL_NOEXCEPT to pass g++ 6.x builds. (nw) 2016-08-07 22:28:04 +02:00
Miodrag Milanovic
3751d8aa60 removed NL_NOEXCEPT since there is a case when these calls throws exceptions (nw) 2016-08-07 11:11:43 +02:00
AJR
2f312c14d2 More consistent use of NL_NOEXCEPT macro to fix debug build (nw) 2016-08-06 21:47:57 -04:00
couriersud
5b1d15383d Use noexcept in netlist code where appropriate.
Use macro NL_NOEXCEPT if debug builds would throw an exception (e.g. by
using nl_assert). This is not entirely safe. Going forward, nl_assert
should call log first and than throw. (nw)
2016-08-07 01:44:55 +02:00
couriersud
7a7c123d1e Added doc target to netlist makefile. Removed old style cast. (nw) 2016-08-06 19:22:29 +02:00
couriersud
20a584b348 Various netlist fixes:
- minor include cleanup
- fix a memory hole (caused by assign operators)
- more C++.
2016-08-06 19:22:28 +02:00
Nathan Woods
c77310389e Removed src/lib/util/cstrpool.[cpp|h]; it is no longer used 2016-08-05 08:29:32 -04:00
Vas Crabb
8e07fb8117 Fix UTF-16 encode, pass UTF-16 to Windows character drawing (unfortunately still no nice speaker icon) 2016-08-02 18:24:14 +10:00
Vas Crabb
889ecdfd4f Let's give the new srcclean a spin... 2016-08-02 16:59:02 +10:00
Nathan Woods
59ca4d1763 1. Merge branch 'master' into diimage_filetype_as_stdstring
2.  Introduced is_filetype(), instead of normalizing filetype() to lower case
2016-07-31 23:52:57 -04:00
Nathan Woods
a4f24a24d3 This changes device_image_interface::filetype() to return 'const std::string &' instead of 'const char *'.
In the interests of removing burdens from client code, I also changed the following:
- filetype() will always return the file extension in lower case
- device_image_interface::filetype() will return the correct extension for files loaded as a part of softlists
- The code for extracting a file extension is now encapsulated in core_filename_extract_extension()

Client code has been updated
2016-07-31 15:06:06 -04:00
Miodrag Milanovic
6f5e223853 for bool type use true and false (nw) 2016-07-31 20:02:56 +02:00
Vas Crabb
a0ce6c3b37 fix after pass through the diff 2016-08-01 01:20:03 +10:00
Miodrag Milanovic
f127621e13 made constexprs lower case and used constexpr for returning input value as well for rest of defines in osdcomm.h (nw) 2016-07-31 16:47:26 +02:00
Miodrag Milanovic
eaa70ae031 cleanup of some conversions (nw) 2016-07-31 16:41:26 +02:00
Miodrag Milanovic
d91322223b fixed clang (nw) 2016-07-31 15:59:39 +02:00
Miodrag Milanovic
aeadbfe2b1 fix linux compile (nw) 2016-07-31 14:59:01 +02:00
Miodrag Milanovic
9667c6a8cc std::min and std:max instead of MIN and MAX, also some more macros converted to inline functions (nw) 2016-07-31 14:41:02 +02:00
Nathan Woods
bfbc8d38f1 Another correction 2016-07-29 22:20:53 -04:00
Nathan Woods
8db5491763 Third time is a charm :-) 2016-07-29 22:14:51 -04:00
Nathan Woods
22c402885d Better use of std::string::size_type and other cleanups 2016-07-29 21:51:55 -04:00
Nathan Woods
bf111bbc6e Converted a number of zippath calls that took 'const char *' to std::string 2016-07-29 18:00:46 -04:00
Nathan Woods
3ac2d79f09 Adding an assert() 2016-07-27 07:59:43 -04:00
Miodrag Milanovic
4887ce1844 Cleanups and version bump 2016-07-27 09:26:22 +02:00
MetalliC
85488e4328 chdman: set pregap subcode type to NONE for .CUE and .TOC for consistency with other formats 2016-07-25 20:24:59 +03:00
R. Belmont
e681889d88 Merge pull request #1139 from GiuseppeGorgoglione/master
Fix for netlist library when built for WINDOWS with UNICODE defined
2016-07-24 14:42:37 -04:00
MetalliC
0c85178c1e chdcd: fix >2GB .iso parsing 2016-07-24 14:30:32 +03:00
Giuseppe Gorgoglione
1344df7496 Fix for netlist library when built for WINDOWS with UNICODE defined
When UNICODE is defined LoadLibrary is redefined to LoadLibraryW which expects a widechar string as library name, while libname is always UTF8. Fixed copying TCHAR conversion code from strconv.cpp since netlist is meant to be also a stand-alone library.
2016-07-24 13:27:08 +02:00
Nathan Woods
4aa0ab1724 Moved src/emu/hash.[cpp|h] into src/lib/util, and namespaced that code (and hashing.[cpp|h]) into util:: 2016-07-23 12:49:33 -04:00
couriersud
1e40d95e8b Netlist updates:
- Removed trampolines (OUTLOGIC, INPLOGIC and friends). 
- Started using doxygen comment and documentation style. Added doxygen
files to documentation folder. 
- Refactored code triggered by doxygen output. 
- Moved internal and support classes into namespace detail. 
- Use an anordered map in parser. 
- -Wconversion fixes - All done now. 
- Fixed -Wold-style-cast warnings in netlist code. 
- Added iterators to pstring. 
- Moved two macros, added more RAII and improved exceptions. Fixed some
bugs in parser code. 
- Fixed a number of bugs in parser code and exception handling. 
[Couriersud]
2016-07-21 11:05:55 +02:00
ImJezze
89af2864ed Fixed MT #6291
* fixed copy of texture data to bitmap in BGFX
* changed AVI dimension to a lowest integral multiple of 4
  (2 was still to low for most video players, e.g. VLC)
* added audio to AVI record in HLSL
* HLSL AVI record now uses window dimension instead of snap dimension
2016-07-16 20:54:37 +02:00
Nigel Barnes
9104c9d523 renamed bbc_dsk to acorn_dsk
- split ssd/dsd formats
- added opus ddos format
- split adfs into oldmap and newmap formats for archimedes
- logging
2016-07-16 19:48:44 +01:00
Nigel Barnes
97c122ca4f fsd_dsk: more logging (nw) 2016-07-16 19:48:44 +01:00
ImJezze
6a592feca9 Added generic fix for #6286
- this does not fix #6291
2016-07-16 14:42:41 +02:00
Olivier Galibert
9eb57470c9 Fix archimedes disk format [O. Galibert] 2016-07-15 12:43:40 +02:00
Vas Crabb
31c4a81369 misc fixes (nw)
* remove a temporary
* fix deps
* remove a vestigial member
* play nicer with dotfiles
* play nicer with pch
2016-07-12 13:09:42 +10:00
Nathan Woods
210d5cb451 Fixed issue that could cause core_filename_ends_with() to return true when extension.size() > filename.size() 2016-07-11 18:05:23 -04:00
Nathan Woods
32230ae648 Adding a check for reverse overflow when extensions is longer than filename 2016-07-11 10:46:36 -04:00
Nathan Woods
0e4cb93bc5 Adopting std::find() and std::find_if() in core_filename_extract_base() 2016-07-11 10:20:56 -04:00
Nathan Woods
2bd5932b42 Deeper C++-ification 2016-07-11 08:27:03 -04:00
Nathan Woods
09b3fbf52c C++-ification of some corefile static functions 2016-07-10 23:38:44 -04:00
couriersud
011dbbe713 Moved two macros, added more RAII and improved exceptions. Fixed some
bugs in parser code. (nw)
2016-07-09 00:13:18 +02:00
Nathan Woods
a2ce6a9ca4 Changed some int's to size_t's and added assertions where we were assuming that option_resolution was a requirement 2016-07-07 19:48:36 -04:00
Nathan Woods
e3cb2c7d78 C++-ification of src/lib/util/opresolv.[cpp|h] (moved to util:: namespace, changed option_resolution to be a class, etc) 2016-07-07 06:59:35 -04:00
Nathan Woods
bdf2059bf4 As per Vas Crabb, readding overloads that take a std::string& parameter for the result 2016-07-04 23:22:37 -04:00
Nathan Woods
de6bbdf176 Changed a few zippath related functions to return their strings as a return value, as opposed to passing in a destination buffer 2016-07-03 13:28:09 -04:00
Nathan Woods
587e9f5e32 Changed zippath.[cpp|h] to use C++-style comments 2016-07-03 13:21:09 -04:00
Vas Crabb
cde4eddeb3 override without virtual looks uncomfortable (nw) 2016-07-03 14:02:26 +10:00
Nathan Woods
d67695e724 Converted menu_file_create to use std::string for its filename buffer 2016-07-02 14:23:54 -04:00
Nathan Woods
facb76a669 C++-ification of src/lib/util/unicode.[cpp|h] 2016-07-02 14:22:14 -04:00
couriersud
caafc0f782 Netlist improvements:
- nltool now accepts -Ddefine=value to pass on to netlists
- improved option handling and added "dummy" options to add grouping and
  examples in help output.
- improved --cmd=listdevices output
- Fix dynamic timestepping. This will work with breakout using real
  capacitor modelling instead of delay devices. Really slow, but very
  useful to calibrate timings.
- Fix an awful bug in timing for delay devices.
- Switched to clang 3.8 and made code compile with
  -Weverything -Werror -Wno-old-style-cast -Wno-padded -Wno-weak-vtables
  -Wno-missing-variable-declarations -Wno-conversion -Wno-c++98-compat
  -Wno-float-equal -Wno-cast-align -Wno-global-constructors
  -Wno-c++98-compat-pedantic -Wno-exit-time-destructors
  -Wno-format-nonliteral -Wno-weak-template-vtables
  This was a helpful exercise since it brought forward some 
  serious issues with implicit constructors. 
[Couriersud]
2016-07-01 02:09:14 +02:00
Miodrag Milanovic
63f9a01f8c Cleanup and version bump 2016-06-29 08:34:30 +02:00
Vas Crabb
923151d00b Fixed incorrect implementation of win_time_point_from_filetime() 2016-06-26 22:44:21 +10:00
Nathan Woods
5009b55430 Introduced src/lib/util/timeconv.[c|h], moved code from un7z.cpp into it, and implemented win_time_point_from_filetime() in terms of it 2016-06-26 08:12:07 -04:00
Brad Hughes
fb54827cb4 Fix Clang compile on OSX 2016-06-25 20:47:02 -04:00
Miodrag Milanovic
f75a33f7d1 clang on windows fixes (nw) 2016-06-25 20:06:02 +02:00
Vas Crabb
7f22918675 Supply modified time for files in archives [Vas Crabb] 2016-06-25 20:56:59 +10:00
arbee
7ff2301047 fix Clang build. it still fails b/c of the file and directory stuff. (nw) 2016-06-24 21:13:46 -04:00
couriersud
af750f143c Srcclean on netlist files. Avoid the merge massacre. (nw) 2016-06-25 00:20:17 +02:00
couriersud
798bb79567 Merge remote-tracking branch 'origin/master' into netlist_dev 2016-06-24 23:28:42 +02:00
couriersud
bc37304ef9 Add explicit to constructors to avoid bad surprises later. (nw) 2016-06-24 23:25:46 +02:00
Vas Crabb
5cee9e9bc4 POSIX implementation for new directory read features, cleanup of Windows implementation, return directory handle as smart pointer, fix full build [Vas Crabb] 2016-06-25 03:35:23 +10:00
couriersud
634473c1ff Merge remote-tracking branch 'origin/master' into netlist_dev 2016-06-24 17:45:46 +02:00
couriersud
d1cd307f83 Remove shared_ptr usage and replace with plib:owned_ptr. Clean up nltool
a bit. (nw)
2016-06-24 17:45:17 +02:00
Vas Crabb
20a95045e1 Load save state preparations [Nathan Woods]
* A number of changes and refactorings in preparation for a new load/save state menu. Most notably, I am C++-ifying osd_directory (now osd::directory) and changing osd_stat() to return std::unique_ptrosd::directory::entry
* Take note that this change completely omits POSIX support, simply because I lack a development environment to support it. This will have to be done by someone else.
2016-06-24 23:53:38 +10:00
Nathan Woods
4ddfc6a6e4 Changed osd_stat() to return std::unique_ptr<osd::directory::entry> 2016-06-24 07:39:37 -04:00
Nathan Woods
cd8b414e6b C++-ified osd_directory (now osd::directory), and added last_modified to osd::directory::entry 2016-06-24 07:13:18 -04:00
Vas Crabb
15f02da7bd Improved workaround for missing cbegin/cend in glibstdc++ [Alex Miller] 2016-06-24 19:56:50 +10:00
couriersud
c6e6911aed Netlist changes
- Replaced shared_ptr by unique_ptr. 
- Better seperation of setup_t and netlist_t. 
- Fixed bugs in rdtsc code. Refactored timer code. 
- Simplify conditional activation/deactivation. 
- Introduced HINT(device, hint) to clarify that hints are inheritent 
  and not specific to devices. 
- Added improved profiling support to netlist. Statistics output now
  proposes devices for which whole device activation/deactivation be
  disabled. No significant improvement for pong, but breakout
  experiences a 10% improvement. 
- Moved options code from include to cpp file.
- Minor modifications to 7493 and 9316
- Introduced perftime_t and perfcount_t for gathering statistics. These
  templates do not create any code if statistics are not kept.
- Make help2man ./nltool produce usuable output. 
- More truthtable refactoring. Removed half-finished code for internal
  state support. As implemented, this would have had no support for
  timing delays. 
[Couriersud]
2016-06-23 02:04:51 +02:00
Nathan Woods
5619297374 Added rgb_t::transparent constant 2016-06-18 14:03:50 -04:00
Miodrag Milanovic
1d0e0ac12a remove all usages of tagmap 2016-06-18 15:32:15 +02:00
Olivier Galibert
7099d6eaa2 gcc 6.1.1 warning fixes (nw) 2016-06-16 14:21:44 +02:00
couriersud
404e589cff Merge netlist_dev branch, all code_refactoring: (nw)
Object model optimisation. 
    Merge remote-tracking branch 'origin/master' into netlist_dev
    Fix a merge issue. 
    #if ==> #elif. Ouch. 
    Default PHAS_PMF_INTERNAL=0 for 32bit windows mingw. 
    Change UINT8 to uint_[fast|least|8_t. 
    Move state_var so it can be used by base devices as well. 
    Remove last traces of ATTR_ALIGN. 
    Refactored netlist_time into a template.
    Removed implicit double assignment to netlist. Doomed to produce
bugs.
    Instead, use netlist_time::from_double.
    Switch to using proper (i.e. bool type) param_logic_t. 
    Formally differentiate between logic inputs (e.g. switches) and int
    inputs (e.g. resistor ladders or selection switches). 
    Added parameter USE_DEACTIVATE to truthtable devices.
    Added more constexpr to netlist_time.
    Fixed some ifdef code paths.
    - More c++.
    - Simplify main processing loop. As a nice side-effect that squeezed
out some cycles.
    - More cycle squeezing.
    - Removed pvector_t.
    - Use std::sort.
    - Refactored netlist state manager.
    - Introduction of state_var object template to be used on device
state
    members.
    - Changed remaining save occurrences to state_var.
    - Rewrote nltool's listdevices command. This allowed removal of one
    member from devices which served solely for listdevices.
    - Remove hashmap_t. Fix kidniki regression.
2016-06-16 00:01:47 +02:00
Robbbert
13526f680b MT 06236 [Robbbert] 2016-06-15 23:27:01 +10:00
Robbbert
309d977066 MT 05783 [Robbbert] 2016-06-12 00:01:38 +10:00
couriersud
bf281b3cad add cmath include to plists.h 2016-06-07 23:27:03 +02:00
couriersud
d6616e1786 Fix travis build. (nw) 2016-06-07 23:13:34 +02:00
couriersud
81880659d2 - More code cleanup.
- Dead code removal and minor refactoring.
- Simplify. Align naming with stl. Fix somed pedantic warnings.
- More STL compatability.
- Remove ATTR_HOT and ATTR_COLD. Refactored netlist_time. 
- Fix long standing workaround which would ignore policy of change-only"
propagation.
- Rewrote for loops to use auto : semantics.
- Truthtable cleanup. (nw)
- Get rid of nl_math. Remove nl_util.h and moved contents to
plib/putil.h.
- Fix standalone build. Refactor ptypes.h. 
[Couriersud]
2016-06-07 21:44:15 +02:00
couriersud
3d3f5761f0 - Added constructors to prepare to move terminal setup into constructor.
- Reworked twoterm setup. Fixed some timebombs along the way.
- Fix r2r dac. Remove dead code.
- analog_outputs now created in constructor.
- moved analog_input creation into constructor. 
- moved logic output creation to constructor.
- moved all logic inputs into constructor.
- Completely removed init_object. Finally. 
[Couriersud]
2016-06-07 21:41:54 +02:00
balr0g
b277908905 - Minor cosmetic refactoring. Added a "uninitialised array" template to
allow in-place creation (for increased locality) of netlist classes.
Main use is in truthtable class.
- Remove PLIB_NAMESPACE macros.
- Remove namespace macros. Use explicit namespace declarations.
- Moved device definitions into cpp files.
- Moved more device definitions into cpp files.
- New prefix "nlid" for include files flags purely internal include
files not to be leaked into userland. 
- Fix factory code.
2016-06-07 21:40:30 +02:00
Nigel Barnes
55724435b2 fsd_dsk: logging (nw) 2016-06-05 22:53:37 +01:00
Nigel Barnes
e4ea1303b3 e01: added acorn filestore floppy format and softlist 2016-06-05 22:53:37 +01:00
Robbbert
bb10b1beb0 sorcerer: calculate baud rates based on actual dividers on pcb. Fixed a bug with quickload. 2016-06-05 23:27:46 +10:00
MetalliC
2cea059009 chdman: attempt to workaround hang during chd creation
TODO: find out its real cause
2016-06-04 19:44:53 +03:00
Vas Crabb
6b9c752850 misc fixes (nw)
* fix a mismatched new[]/delete error in corealloc
* _name massacre in corealloc while at it
* add template/macro for delaring array with equivalent dimensions
2016-05-28 15:10:28 +10:00
couriersud
5d7f5d6c22 Fix pongf. (nw) 2016-05-27 17:23:16 +02:00
smf-
f1f681e642 build with MSVC (nw) 2016-05-27 15:12:13 +01:00
couriersud
02e3213897 Leading underscore massacre. (nw) 2016-05-27 01:20:09 +02:00
couriersud
fd62273a87 Moved more code into plib namespace. (nw) 2016-05-27 01:19:59 +02:00
couriersud
111c5a3dc0 Remove dependency on osd_ticks. Converted palloc and friends into
templates. First effort on a separate plib namespace. (nw)
2016-05-27 01:17:39 +02:00
couriersud
f5179f7ec8 Make netlist compile with c++11, use own implementation of make_unique
to avoid c++14. (nw)
2016-05-25 14:52:40 +02:00
couriersud
cac1c41edf Moved all parameter definitions in constructors. (nw) 2016-05-25 14:31:43 +02:00
couriersud
c97c3ae855 Fixed breakout attract mode. (nw) 2016-05-25 13:43:23 +02:00
Miodrag Milanovic
68785dccfe Cleanups and version bump 2016-05-25 08:19:21 +02:00
Miodrag Milanovic
b0d3ce6877 fix android build (nw)
please do not use _ prefixed names, those are reserved
2016-05-24 10:52:26 +02:00
Miodrag Milanovic
d6d177a29d Fixed multiple instance of operator = , fixes VS build (nw) 2016-05-22 09:06:50 +02:00
couriersud
53e66cf6aa Fix VS c++ compile following
https://msdn.microsoft.com/de-de/library/ms177415.aspx
2016-05-21 14:33:15 +02:00
couriersud
ee5b02ebfb Added == operator to netlist_time 2016-05-21 13:31:18 +02:00
couriersud
fdf63818de All netlist devices now follow new syntax. Removed dead code. All sub
devices are now forced to be initialized in the constructor. Device
setup now completely in constructor. Removed start call. [Couriersud]
2016-05-21 13:31:17 +02:00
couriersud
9102271ef7 More memory timebombs removed. (nw) 2016-05-21 12:58:24 +02:00
couriersud
d200744fbf Converted more devices to new layout. Improved memory handling in
factories. (nw)
2016-05-21 12:58:23 +02:00
Vas Crabb
ce21ce6410 Bad boy, Micko (nw) 2016-05-19 21:16:43 +10:00
Miodrag Milanovic
df5c8faa85 Fixed name conflict making Android build non-working (nw) 2016-05-17 12:15:45 +02:00
couriersud
332534cdf5 Continuing work to move object initialization from start to constructor.
Removed family_t. All of this can be determined at runtime from object
as well. As part of this, the "template" to write devices has changed.
Converted a number of devices to use the new template. [Couriersud]
2016-05-16 12:50:50 +02:00
couriersud
f35ba3f5fd More automatic memory handling. (nw) 2016-05-16 12:41:20 +02:00
couriersud
7d9c8b78ea Some use of share_ptr to ease memory management. (nw) 2016-05-12 01:15:19 +02:00
couriersud
c2fb41964c Code simplification 2016-05-12 01:15:19 +02:00
couriersud
bd1123dc30 mergeme 2016-05-12 01:15:18 +02:00
couriersud
f404f86570 Devices are now created after the netlist was parsed. This enables us
going forward to move everything in start() into the constructor and get
a much cleaner object model. (nw)
2016-05-12 01:15:17 +02:00
couriersud
2fe1ba1eee Don't include netlist name in device names. (nw) 2016-05-12 01:15:17 +02:00
couriersud
bc57c965bd Code simplification. (nw) 2016-05-12 01:15:16 +02:00
couriersud
b7a29d4575 A step towards late creation of devices. (nw) 2016-05-10 00:47:32 +02:00
couriersud
ccf66bee16 Align object registration syntax. (nw) 2016-05-10 00:47:21 +02:00
couriersud
4bf639f3e2 Rename connect_direct to connect_post_start to reflect usage. (nw) 2016-05-10 00:41:35 +02:00
couriersud
38ca93a5d7 Simplify object model by removing default_logic_family(). 2016-05-08 15:05:59 +02:00
couriersud
df8280806b Some minor changes towards c++11. 2016-05-08 15:05:58 +02:00
couriersud
1eb9c20772 Fix standalone-compile. 2016-05-06 01:10:21 +02:00
couriersud
658f6b432a Converted 7486 to macro module 2016-05-05 23:33:01 +02:00
couriersud
d3c0199769 Removed drivers/signal.h since netlist devices no longer use it. (nw) 2016-05-05 15:18:37 +02:00
couriersud
add61d2a00 Convert 7430 to macro module. 2016-05-05 15:18:37 +02:00
couriersud
38d3050da0 Convert 7425 to macro modul 2016-05-05 15:18:36 +02:00
couriersud
87541ec5ca Converted 7420 to macro modul 2016-05-05 15:18:36 +02:00
couriersud
cbe5b6abaa Fix conditional compile path 2016-05-05 15:18:35 +02:00
couriersud
a920da0ec3 Convert 7432 to macro device. 2016-05-04 00:51:51 +02:00
couriersud
1ea05793be Converted 7437 to macro device 2016-05-04 00:08:09 +02:00
couriersud
467b7b23dd Some header maintenance 2016-05-04 00:08:08 +02:00
couriersud
ba57ebf222 Converted 7427 to macro device 2016-05-04 00:08:07 +02:00
couriersud
e93ebba837 Converted 7411 into a macro device. 2016-05-04 00:08:07 +02:00
couriersud
e85517d642 Converted 7410 into macro device. 2016-05-04 00:08:06 +02:00
couriersud
3acd03bd5f Implement 7402, 7408 as macro device. (nw) 2016-05-03 02:35:07 +02:00
couriersud
6f889d51ae Implement 7404 as macro device. (nw) 2016-05-03 02:35:06 +02:00
couriersud
576189b169 Converted most subdevices to unique_ptr. This is a temporary measure
until the device initialisation is moved into the constructor. Started
converting constructors of devices to be passed name and netlist. (nw)
2016-05-02 21:56:57 +02:00
AJR
b8c05fd084 Workaround for MT 06194 (potential segfault during floppy load) 2016-05-01 10:26:28 -04:00
Robbbert
a320b64f3a MT 06189 2016-05-01 15:36:56 +10:00
Miodrag Milanovic
cfee536f22 Cleanups and version bump 2016-04-27 08:13:59 +02:00
etabeta78
24900375fd cgenie.cpp: expanded .cas support so that also files created by
Genieous emulator can be loaded. [Fabio Priuli]
2016-04-24 16:07:06 +02:00
Miodrag Milanovic
89c5e1f681 Various cleanups suggested by static analyzer (nw) 2016-04-24 12:58:31 +02:00
AJR
fb08fefaee Move a few odds and ends out of the emu core 2016-04-23 15:27:59 -04:00
couriersud
64eeebb967 Add missing files. 2016-04-23 14:20:48 +02:00
couriersud
1d7b7f59dd Implemented dynamic loading of precompiled solver code. [Couriersud] 2016-04-23 13:54:32 +02:00
couriersud
4bf89be02c Simplify solver infrastructure. 2016-04-18 18:31:51 +02:00
couriersud
222adaf847 merge me later bug fix 2016-04-18 18:31:50 +02:00
couriersud
2762b9f5ac Merge me later 2016-04-18 18:31:49 +02:00
Miodrag Milanović
1f418ad90e Merge pull request #809 from jmakovicka/master
Fix type mismatch
2016-04-16 08:57:16 +02:00
dankan1890
edb0904e76 chd: initialized m_hunknum inside the constructor. (nw) 2016-04-15 17:23:56 +02:00
dankan1890
295c7294d3 cdrom: declared (std::nothrow) some allocations. (nw) 2016-04-15 17:20:50 +02:00
couriersud
d9df811529 Significant speed improvement:
- added a new solver using compressed row format
- fixed sorting

As a result, netlist performance on kidniki nearly doubled. The
performance increase is mainly due to the fact that sorting decreases
the number of operations for gaussian elimination of the kidniki matrix
from ~7800 to 707. In addition, compressed row format improves L1 usage. 
[Couriersud]
2016-04-15 02:09:41 +02:00
couriersud
cd0441b678 Recover from creating solvers by copy paste. Move common code were it
belongs. (nw)
2016-04-15 02:09:41 +02:00
couriersud
4f1ca77643 Moved solver members to proper place. Minor code changes. (nw) 2016-04-15 02:09:26 +02:00