Homebrew Turing Machine

Saw this today, it is not quite the Manchester Baby, but the fundamental ideas are the same. Mike Davey created this homebrewed implementation of a Turing Machine (via IEEE Spectrum Article "DIY Turing Machine"):

Posted
 

Alan Turing and the Ace computer

Media_httpac22001comp_datiw
To get you in the mood for thinking about the development and history of computing, here is an article from the BBC about Alan Turing, an important figure in the development of both early computer hardware and computational science, and the ACE computer, the Automatic Computing Engine.
Posted
 

Telly-On-The-Go With N810 Media Encoding

Media_httpwwwstrangea_jiijp
After my rail trip earlier this week where I had free, but so slow as to be unusable, WiFi I resolved to load some media onto my N810 to help pass the time on future journeys. Early experiments showed that the N810 can play the average xvid avi downloaded from your favourite torrent site. However it didn't necessarily play them well. Firstly, you need to install mplayer which gets better performance out of the hardware than the stock media player. Then, so long as the scene isn't high-motion you can watch your tv show, or movie, or whatever. To get good performance though really needs a re-encode, especially to play media downloaded from iplayer (maybe via my earlier technique for timeshifting British TV) which is unwatchable. The best solution that I have found is tablet-encode which provides mencoder profiles for the N810 and is command-line based so is ripe for scripting. Usage is simple, as all good software should be:
tablet-encode tablet-encode --help tablet-encode --preset list tablet-encode input.avi output.avi tablet-encode --list file1.avi file2.avi file3.avi tablet-encode --preset best input.avi output.avi tablet-encode dvd: film.avi tablet-encode --preset best dvd://1 dvd://2 dvd://3 media/ tablet-encode --gui input.avi output.avi
Tablet-encode can be downloaded from Maemo.org.
Posted
 

Missing libhildonfm2 on Maemo

I tried to install pwsafe on my Nokia N810 running the Maemo Linux distribution. Unfortunately I got a library not found error which the package manager couldn't fix, even after an update to the Maemo distribution. The missing library was called libhildonfm2 and after a bit of googling I found a fix. Unfortunately it requires that software be installed outside of the package manager using apt-get at the command line. Because installing using apt-get requires root privileges the first thing to do is install the rootsh app via the package manager. This enables you to get a root shell via the following command:
sudo gainroot
Once you have a root shell you can issue an:
apt-get autoremove
to clean up unusable and unused packages, then:
apt-get install pwsafe
which causes pwsafe and all required dependencies, including the required version of libhildonfm2, to be installed.
Posted
 

Manchester Baby Films

Two youtube films that I found which feature the Manchester Baby. The first is vintage footage from the BBC, reporting on the birth of the baby,  which was unearthed for the fiftieth celebrations of the Baby and accompanied this article. This footage was helpfully reposted to youtube as well:

Additionally I found this footage of two of the inventors of the Baby, Tom Kilburn, who wrote the first ever program to run on the baby which was used to test the hardware, and Geoff Tootill:

 

Posted
 

Academic Earth - Machine Structure Lectures

Academic Earth, the academic video lecture site has a series of lectures by David Culler of Berkeley on Machine Structures. Described thus:
The internal organization and operation of digital computers. Machine architecture, support for high-level languages (logic, arithmetic, instruction sequencing) and operating systems (I/O, interrupts, memory management, process switching). Elements of computer logic design. Tradeoffs involved in fundamental architectural design decisions.
Lectures 5, on instruction set architecture, and 8, on Technology and Digital Abstraction, in particular look relevant to this module and lecture 12 is probably just interesting. To get you started here is the introductory lecture in the series:
Posted
 

Coursework #4 - Dev Project #2 Posted

The requirements for the second development coursework, "Simulating the Manchester Baby" have been posted.
Posted
 

Domino Logic Gates

As we get stuck into the hardware portion of the module we will talk about symbolic logic and how that is related to computer hardware, particularly the CPU. As an example, in this video we see some logic gates made from dominos:
Posted
 

Manchester Baby Assembly Language

As far as I can tell the Manchester Baby was an experimental machine and therefore the assembly language that it used was not fixed and was expanded as the developers extended the abilities of the machine.
Nevertheless a useful set of opcodes can be found in the "Manchester Baby Simulator User Guide" (sharp2001guide.pdf).
These include the following:
  • JMP - Copy content of the specified line into the CI
  • JRP - Add the content of the specified line into the CI
  • LDN - Copy the content of the specified line, negated, into the accumulator
  • STO - Copy the content of the accumulator to the specified store line
  • SUB - Subtract the content of the specified line from the accumulator
  • CMP - If the accumlator is less than 0 increment the CI
  • STP - Halt the Baby and light the "stop lamp"
It is the lack of variety of opcodes, and also the limitations of the hardware, that makes the Baby an interesting, and hopefully fun, machine to simulate and play with. To write a program of any complexity requires a good understanding of not just the capabilities but also the limitations of the hardware. You should also notice an interesting gotcha with the Baby is the place of the CI increment in the fetch-decode-execute cycle. Because the CI is incremented before the first line of code is fetched it effectively means that the "program" starts in line 1 of the store rather than line 0.
Posted
 

The Manchester Baby

I have placed a number of papers concerning the manchester baby onto the AC2B website. For your first development assignement you are required to construct a software simulation of the Manchester Baby hardware such that you can execute a program written using the Baby's opcodes and simulate the movement of data about the hardware as the program is executed. To achieve this I particularly recommend reading sharp2001guide.pdf and kahn2000baby.pdf. The rest of the papers merely give you extra background about the machine and will enable you to create a more accurate simulation:
Posted