I am the maintainer of the simh project (https://github.com/simh/simh and http://simh.trailing-edge.com).
simh is a simulator framework. There currently are simulators for many legacy systems: Digital Equipment Corporation PDP-1, PDP-4, PDP-7, PDP-8, PDP-9, PDP-10, PDP-11, VAX 11/780, VAX 11/750, VAX 11/730, MicroVAX 3900, MicroVAX II, VAXStation II, MicroVAX I, VAXStation I GRI Corporation GRI-909, CRI-99 Data General Nova, Eclipse IBM 1401, 1620, 1130, 7090/7094, System 3 Interdata (Perkin-Elmer) 16 bit and 32 bit systems Hewlett Packard 2114, 2115, 2116, 2100, 21MX, 1000 Honeywell H316/H516 MITS Altair 8800 with both 8080 and Z80 Southwest Technical Products Corp 6800, 6809 Soviet Era Mainframe BESM-6 Lincoln Labs TX-0 Manchester University Small Scale Experimental Machine The PDP-11 and all the VAX computers have Ethernet devices. qemu has become the home of what SLiRP has evolved into for modern simulator systems. For many years LAN connected Ethernet has met the needs of the simulator user community due to the various proprietary LAN protocols which the PDP-11 and VAX systems used. TCP/IP, of course, also work on a LAN so the libpcap network transport model worked there as well. Recent user demand for more flexible TCP/IP connectivity has inspired the addition of a NAT network transport which SLiRP meets nicely. I was able to do this by taking the contents of qemu/slirp directory verbatim and using it unmodified. This worked when the simh simulators are built using gcc on Linux, OS X and other Unix platforms. There were some issues I discovered when building on Windows with MinGW (also gcc). The simh project supports building all the simulators on Windows using Microsoft Visual Studio (2008, 2010, 2012, 2013 and 2015). In order to build the qemu/slirp code with the Microsoft compilers several minor changes to the code in the slirp directory were necessary. Once a basic build was successful using Visual Studio, additional changes were also made to: 1) enable slirp debugging and have it integrate with the debugging support already provided by simh and 2) conform to the simh project build requirements that all builds be without any compiler warnings. The source code qemu/slirp directory is 'upstream' of the slirp code in the simh project. Given that, I'm trying to feed the changes I had to make back upstream so the issues I've found can be fixed for the community at large, and any future updates to the qemu slirp code can easily be dropped into the simh slirp code. Mark Pizzolato (5): slirp: closesocket must be called to close sockets on windows slirp: Changes needed to build with a pre C99 C compiler slirp: change tftp to use stdio APIs vs open/read/close slirp: Generalized debug macros to also support simh debugging slirp: Fix signed/unsigned comparison and variable truncation warnings slirp/arp_table.c | 8 ++++---- slirp/bootp.c | 9 +-------- slirp/cksum.c | 4 ++-- slirp/debug.h | 57 +++++++++++++++++++++++++++++++++++++--------------- slirp/dnssearch.c | 6 +++--- slirp/ip.h | 39 +++++++++++++++++++++++++++-------- slirp/ip_icmp.c | 18 ++++++++--------- slirp/mbuf.c | 2 +- slirp/misc.c | 30 ++++++++++++++++----------- slirp/sbuf.c | 6 +++--- slirp/slirp.c | 39 ++++++++++++++++------------------- slirp/slirp.h | 8 ++++++-- slirp/slirp_config.h | 2 ++ slirp/socket.c | 39 +++++++++++++++++------------------ slirp/socket.h | 2 +- slirp/tcp.h | 2 +- slirp/tcp_input.c | 20 +++++++++--------- slirp/tcp_output.c | 14 ++++++------- slirp/tcp_subr.c | 6 +++--- slirp/tftp.c | 18 ++++++++--------- slirp/tftp.h | 2 +- slirp/udp.c | 6 +++--- 22 files changed, 193 insertions(+), 144 deletions(-) -- 1.9.5.msysgit.0