41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
|
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
|
+
+
-
+
+
+
+
-
+
+
+
-
+
+
+
+
+
+
|
# Windows
The PiDP-8/I software's build system requires a POSIX type environment. That gives you two major choices for building the simulator on Windows.
## Cygwin
This works, and appears to work *well* besides.
The first option is Cygwin. You will have to install the `libncurses-devel` and `python2-pip` packages as well as standard Unix build tools: GCC, GNU Make, etc. Having done all that, the software will build and run. I most recently tested this on 64-bit Windows 10 running Cygwin 2.9.0.
You will have to install the `libncurses-devel` and `python2-pip` packages as well as standard Unix build tools: GCC, GNU Make, etc. Having done all that, the software will build and run.
I most recently tested this on 64-bit Windows 10 running Cygwin 2.9.0.
## Windows Subsystem for Linux
You'd think this would work because the default Linux implementation for Windows 10's WSL feature is Ubuntu, and it is known to build and run the software easily, since Ubuntu and Raspbian are so closely related. Alas, it does not.
Since the default Linux distribution for WSL is Ubuntu, and we said the software builds easily on Ubuntu, you might think WSL is a good option, but due to weaknesses currently (2017.11.02) in the implementation, particularly in the area of terminal handling, it is nearly unusable. You can't even build the OS/8 media at the moment, and if you copy pre-built media over to the build directory and try to run it, you still have problems to deal with.
The primary problem is that WSL's terminal handling is [extremely weak](https://github.com/Microsoft/WSL/issues/1001), and has been so since the start. This breaks a broad swath of software and is thus well known as a major weakness of WSL. It breaks at least three different things in the PiDP-8/I software distribution:
1. `mkos8` depends on one process being able to take control of another's terminal I/O. Currently — November 2017 — `mkos8` gets stuck early on waiting for a reply to the OS/8 `BUILD` command and eventually times out and dies. Copying over pre-built OS/8 media doesn't help because of the other problems below.
The bugs in WSL that cause this are well known and have been in WSL from the start. Microsoft hasn't fixed them yet despite the many things that fail due to this class of bug, which calls into question how much longer Microsoft will let the bug remain.
2. `pidp8i-sim` does slightly fancy things with its terminal interface between the emulated CPU and the host OS, which is enough to run into this WSL weakness. The underlying host will send something out to its terminal and you won't see it in the WSL terminal until you hit Enter a few times; that kind of thing.
3. The PiDP-8/I simulator normally runs under GNU `screen`, which is one of the [known-broken programs under WSL](https://github.com/Microsoft/WSL/issues/1001).
Because Microsoft has not fixed this class of bug despite the many things that fail as a result, it calls into question how much longer Microsoft will let the problems remain unfixed.
|