Multiple Platforms

Windows with Visual Studio

The simulator have always worked under Windows, that was my original development platform. The news here is that (after a comment on the site brought my attention to it) I’ve realized that Visual Studio 2012 doesn’t by default generate code that runs on WinXP. In the latest version, I’ve flipped the appropriate switches to support XP as well.

You’ll have to download and build Boost for the sources, the rest (including pdcurses) are part of the distribution.

The projects are set up to use Boost from it’s default install location (C:\Boost), so make sure you either install it there or change the location in common.props

When you run the simulator make sure that the binaries (especially the terminal emulator) is in the path, otherwise the simulator will just hang trying to launch it in a loop.

Windows and MinGW

If you want to use free tools to compile the simulator, your main choice is GCC. Of the two versions that are available under Windows I’ve tested MinGW (the other being Cygwin). There are makefiles provided that should work in a regular command line or under MSys.

Either GCC 4.7.x or 4.8.x should work. Others might work as well, but YMMV.

Just as for Visual Studio, you’ll have to download and build Boost.

Due to the funky way boost names its libraries, you’ll have to potentially update common.mak with the version of boost and GCC you’re using. The defaults are GCC 4.8 and Boost v1.53. To change them, edit these settings in common.mak:

GCC_VER=48
BOOST_VER=1_53

Alternatively you could build by specifying the right values from the command line. So for example to build with GCC version 4.7.2, you would do:

make GCC_VER=47

The makefile is set up to use Boost from it’s default install location (C:\Boost), so make sure you either install it there or change the location in common.mak

When you run the simulator make sure that the binaries (especially the terminal emulator) is in the path, otherwise the simulator will just hang trying to launch it in a loop.

Windows and Cygwin

The latest Cygwin release seems to work almost as well as the MinGW build does. The latest version comes with GCC 4.8.0 which should work. Just as with MinGW other versions might work as well, but I haven’t tested them, and you’ll need decent C++11 support. To build under this environment, you’ll have to make sure you’ve installed the boost and ncurses libraries that come with the Cygwin distribution. Since the build system defaults to MinGW, when building under Cygwin, you’ll have to specify your system on the command line:

make SYSTEM=cygwin

When you run the simulator make sure that the binaries (especially the terminal emulator) is in the path, otherwise the simulator will just hang trying to launch it in a loop.

Linux

I always intended the simulator to work under Linux, but until this latest release some bugs prevented it from working (same with MinGW by the way). With this release, Linux builds are functional as well.

To build you’ll need a recent GCC: 4.7 or 4.8. As with MinGW, other versions might work too, but you need decent c++11 support.

Here’s the simulator running on Debian Wheezy in it’s full “glory”:

On Debian, you’ll have to install the following packages:

gcc
gcc-4.7
make
libboost1.49-all-dev
libncurses5-dev

Other distributions should work as well, but you’ll have to make sure that the equivalent of these libraries are installed:

boost
ncurses

When you run the simulator make sure that the binaries (especially the terminal emulator) is in the path, otherwise the simulator will just hang trying to launch it in a loop.

Getting the package

As usual, you can grab the sources and the precompiled Windows binaries from the download page.

5 thoughts on “Multiple Platforms”

This is a fascinating project, indeed; I hope it will be possible to find some more software.

I have just a question: I have seen that the makefiles compile the emulator under linux without any optimization. Rebuiding with “-O2” provides quite a nice speed-up (I would say at least a factor 3 or 4; the clock appears to proceed almost ‘in real time’) and, at least for what concern COS the install appears to be working; is there any reason why optimization had been disabled?
Incidentally, the library libsupc++ is neither present nor needed for linux (and I commented out the relevant lines in the makefiles).

Thanks for reporting this. The omission of optimization was totally unintentional. I’ve updated the release to include -O3. I’ve also pruned the list of linked libraries, so hopefully it will build cleanly. Interestingly though it did build for me with the old library list as well.

Have you considered working with one of the emulator platforms like MESS or qemu? That would give the emulator a wider audience and possibly more contributors to improve performance, and possibly add more family members. I know that being such a unique platform it does not share any of the other devices provided by MESS, but the value might simply be that you end up with more contributors to the platform.

I did think about it, but ended up voting against. Working in an existing environment, like MESS or QEMU has its own rather steep learning curve, and – as you mention – I haven’t seen too much reuse value coming from those platforms. Going into the project I haven’t known much about the machine, nor the precision of the simulation needed, so I couldn’t be sure what emulation level will be sufficient. A JIT-ed environment, like QEMU has its own complexities that I didn’t want to deal with. Finally, this project wasn’t intended as the end goal. I thought that it would be a learning exercise on the road to get to a real HW (FPGA-based) implementation. Something that I still haven’t completely given up hope on.

I fired off an email to public relations at cray i am not surprised that i have had no replay over the last few weeks. I plan on sending more requests for programing environments. (fortran, c, assem, basic (if it exists) cobol, pascal)