person_outline
search
Martin Kilkie

Martin Kilkie

email This email address is being protected from spambots. You need JavaScript enabled to view it.

Download Turing

Turing version 2.0

Windows 10 
Build 2018.355

System Requirements:

Windows 7 or later, 1 GHZ processor
Any modern graphics card that supports OpenGL 2.1

 

macOSX
Build 2018.355


System Requirements:
MacOS® X 10.11 or later, Intel Mac. For iOS builds (11.4), requires Xcode 9.3 or later

 

 

Version control

Version 2.0, released 12/11/2018

Updates and bug fixes

1. Numerous timing issues fixed.
2. Animation of data movement across buses removed as users said this was a distraction from the teaching purposes.

 New features

1. Added decimal and octal to the number bases that can be used to allow wider use in numeric representation practice and conversion.
2. New STEP mode available that slows down FETCH and EXECUTE so that each step in the processes are controlled by the user.

Devices and platforms

This version is available on Win32, OSX, IOS, Android and Linux.
On IOS the app now accomodates the latest iphone X and ipad Pros.

Linux version was coded for Debian and we have not tested on all implementations. Please comment if there is an issue on your Distro.

Why Turing?

Turing is named after Alan Turing, the famous English computer scientist who formed part of the successful Bletchley Park team who decoded the Nazi Enigma machine using the world's first operational electronic computer. The following is an extract from Alan's Wikipedia entry:

Alan Mathison Turing OBE FRS (23 June 1912 – 7 June 1954) was an English computer scientist, mathematician, logician, cryptanalyst and theoretical biologist. He was highly influential in the development of theoretical computer science, providing a formalisation of the concepts of algorithm and computation with the Turing machine, which can be considered a model of a general purpose computer. Turing is widely considered to be the father of theoretical computer science and artificial intelligence.

During the Second World War, Turing worked for the Government Code and Cypher School (GC&CS) at Bletchley Park, Britain's codebreaking centre. For a time he led Hut 8, the section responsible for German naval cryptanalysis. He devised a number of techniques for speeding the breaking of German ciphers, including improvements to the pre-war Polish bombe method, an electromechanical machine that could find settings for the Enigma machine. Turing played a pivotal role in cracking intercepted coded messages that enabled the Allies to defeat the Nazis in many crucial engagements, including the Battle of the Atlantic; it has been estimated that this work shortened the war in Europe by more than two years and saved over fourteen million lives.

Kilkiesoft is proud to name most of its apps after famous Computer scientists.

Turing Quests

Turing quest allows the teacher/student to test their abilities in understanding the operation of a simple CPU and then use its particular machine code to write algorithms to solve a range of increasingly hard problems.

In the current version there are 10 graded quests and each user's progress is recorded as they proceed.

Quests become more complex in general and in higher challenges certain features are disabled to ensure simple solutions arent possible.

Turing instruction set

Turing has been designed to be a reasonably complex CPU with instructions that reflect most of the operations that real CPUs can carry out:

  • Simple arithmetic (but limited to add and subtract)
  • Logical operations (and,or and bit shifts)
  • Register loading to and from each other and memory
  • Input and Output instructions
  • Instructions that change the flow of the program (decisions)
  • Stack operations (push and pop)

The processor is capable of a range of different addressing modes to allow this feature of CPUs to be explored.

Memory locations can contain data of three different types:

  • program instructions/data
  • numbers (assumed to be integers)
  • character data

This narrow range of numeric represention still allows users to explore wider algorithms including floating point and other numeric representations by software emulation (ie writing algorithms).

 

Saving and loading Turing programs

As with real computers Turing programs can be saved once completed and then reloaded to be run at a later time.

The exact details of saving and loading are slightly different on different devices, depending on whether there is a real or virtual keyboard, but in general:

  • For saving - a form is completed giving the program a name and description.
  • For loading - a list of Turing programs is shown, one is selected and then loaded on request.

An important note is that turing programs are stored in different locations on different devices. Please check the documentation for details for your device. In particular IOS (ipad and iphone) memory is sandboxed and you need to use Itunes to get programs off your device if you need to store somewhere else.

Writing a program in Turing

Turing is a programming machine, so how easy is it to write a program?

  • First, you need to know the language. Turing's machine language includes a range of instructions (as shown on the separate menu entry on the right).
  • Next you need to design and write the program.
  • Next you need to enter the program into the computer
  • Finally you need to run the program.

Programs in Turing (as with real computers) are stored in memory locations. A memory location might store a whole instruction (0 = stop program) or the instruction might need two successive locations (38 followed by another number = add the number to the number already in the accumulator).

Programs:

  • are usually stored from memory 0 onwards and the run button assumes programs start here.
  • can be run from start to finish or one instruction at a time. Usually when a program is first written it is tested one step at a time (fetch then execute then fetch...) and then run completely once it has proved correct.
  • End when a stop program instruction (0) is reached.

 

 

 

 

 

 

Turing Controls

Turing is designed to be operated from laptops, desktops,tablets and phones. A design decision was that use of the app would be essentially the same on all these different devices to make moving from use of one (say a desktop Apple) in school to another (say an Android tablet) at home as easy as possible. As a result all operations with the exception of naming programs is done by using mouse clicks.

All registers that can be altered are altered using stepper controls, up or down. When a value reaches FF (255) and is stepped up it revolves to 00. If a value is stepped down from 00 it revolves to FF.

Running the CPU

Turing's remote control is used to turn the processor's operations on and off, as shown below:

remote

In the top row:

  • The first button Fetch starts the CPU on its fetch/execute cycle.
  • The next button is Execute which only shows when an instruction has been fetched.
  • The next button Run tells Turing to carry out a complete program until a stop instruction is reached.
  • The next button is Stop, which only shows when a program is running.

The bottom row shows

  • rewind which resets the program counter to 0 and 
  • Speed control sets program running to a variety of speeds.

Program options

All of Turing's program options are controlled from its menu bar, as shown below

menubar

 

From left to right:

  • H - indicates whether the CPU shows values in hexadecimal (H) or in binary (B).
  • Q - This icon selects the Turing Quest mode, where users are set increasingly different challenges.
  • The remote icon turns off the remote while programs are running (usually to make it easier to concentrate on what is happening).
  • The bell shows or removes audio and visual distractions.
  • Recycle - clears the CPU back to its default state and wipes the memory.
  • The filing cabinet allows programs to be loaded
  • This is the save icon which saves the current program.
  • The information icon shows all of the Turing Help pages.

 

 

Fetch

Fetch allows users to explore the fetch/decode/execute cycle of a modern CPU.

Gates

Gates is our electronic logic gate simulator, designed for KS4 Physics and Computing teachers and learners.

Subscribe to this RSS feed
close

Sign up to keep in touch!

Be the first to hear about special offers and exclusive deals from Kilkiesoft and our partners.

Check out our Privacy Policy & Terms of use
You can unsubscribe from email list at any time