blackjetrock / experimental-computer-for-schools

IBM Experimental computer for schools

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

IBM Experimental Computer for Schools

The schools computer project ran from 1966 to 1970 and was an experimental machine that was never sold, although several were made and were used in schools in the UK. One machine was used for ten years before it failed. It was designed to be used in schools to teach the basics of computer design and programming. The hardware was based on the same components that the IBM system 360 used. The computer was programmed in machine code, and unlike modern machines the machine code is BCD based, not binary. There are 'extracodes' in the system that are analogous to subroutines, these provided floating point arithmetic at the machine code level. The extracodes could be replaced with user code if desired, and provide a completely different set of functions.

As far as I an tell this machine was the first machine purpose built for education. there are lots of examples of computers being used to teach fundamentals of programming and computer architecture, but they are general purpose machines in educational situations, this is the earliest machine designed for the purpose I can find.

It also seems to be the first machine to use a domestic television as a display.

This is a simulation of the machine. It can run code written for the original machine.

USB

USB can be used to interact with the simulator. It just requires a Pico. You can run a simulator with just a Pico, the PCB isn't necessary. If you have a Pico W then you can access over WiFi as well. A command line interface (CLI) is available on the USB connection, this requires a terminal emulator program such as minicom. Using the interface you can:
  • Drive keys as if they came from the keyboard
  • See a representation of the display.
  • Run tests that check the simulation is running as required.
  • Load programs from the document 'A First Course on the School's Computer'
  • Run programs
  • Examine the store
  • Examine the machine state
  • Load and store machine state from and to the SD card

PCB

There is a PCB that has a Pico mounted on it. This photo shows the PCB with a Pico W attached. The simulator code can be built with or without WiFi support.

IMG_4442p1

This has a 0.96" OLED display that shows the same information as the original machine displayed on a domestic TV.

IMG_4439

There is an SD card for storage and a keyboard made from tactile switches, in the same layout as the original machines. The operation is very similar to the original, some differences have been made to key operations to enable use of the SD card. the original machines used audio cassettes for data storage.

IMG_4441 The Pico can be a PicoW, in which case a WiFi access point is generated.

Wifi Version

This version has a USB interface, and a Wifi interface (it generates a hot spot). The USB interface still works. The Wifi page shows the display and allows control from a web page. This version of the code runs on a Pico W and generates its own access point.

Screenshot from 2024-08-30 09-09-44

If building for a Pico W then use this command line:

cmake -DPICO_BOARD=pico_w -DWIFI_SSID="Schools" -DWIFI_PASSWORD="password" ..

to initialise the build directory in the

firmware/escw

directory. Then

make

as usual. To build the non-Wifi version,

cmake ..

in the

experimental_schools_computer/build

directory and then make as usual.

Half Scale Replica

IMG_20240827_103823604_HDR

The half scale replica is constructed of similar materials to the original, and runs the same code as the small PCB version, with some modiufications for the different display and keyboard. The display is a large LCD instead of a small OLED and a touch keyboard is used instead of tactile switches. The case is aluminium which has been powder coated, the keyboard surround is a 3D printed resin part. The original machine also used a plastic surround, this is probably because a metal surround would interfere with the touch keyboard. And, yes, that is the original machine next to the replica.

Assembler

I have created an assembler that assembles instructions expressed in the verbose comments seen in the documents available for this computer.

Documents

A First Course on the Schools's Computer

This is a document that provided a course on programming the computer, there is only one known paper copy of this document, but it has been copied and put together into a PDF document. It has several programs written for the machine, which are the only ones I know of from the time when the machine was trialled. These programs almost exclusively use the extracodes for the programs, not the half-word basic instructions which must have been used to implement the extracodes themselves in the store from address 100 to 199.

Experimental Computer for Schools

Describes the hardware and code design of the machine. This is a technical description of the machine, and contains no program listings at all.

Flowcharts

This is a four page document that has flowcharts and programs for logbN and bL. The programs use an extracode that isn't in the standard set, which is a square root instruction. The instruction also has a jump and the jump part is used in the programs without use of the square root operation. Together with the first course on the school's computer these are the only known programs for the computer from the time whenit was being develped and trialled.

References

A photo of the schools computer in a classroom in the 60s: https://www.stedwardsarchives.org/PDFViewer/web/viewer.html?file=%2fFilename.ashx%3ftableName%3dta_Publications%26columnName%3dfilename%26recordId%3d685%26zoom%3dpage-fit&searchText=schools%27%20computer

https://www.stedwardsarchives.org/PDFViewer/web/viewer.html?file=%2fFilename.ashx%3ftableName%3dta_Publications%26columnName%3dfilename%26recordId%3d685%26zoom%3dpage-fit&searchText=schools%27%20computer

https://ibmhursleymuseum.info/hardware-data-detail.asp?id1=140

https://news.ycombinator.com/item?id=36112633

https://www.stedwardsarchives.org/PDFViewer/web/viewer.html?file=%2fFilename.ashx%3ftableName%3dta_Publications%26columnName%3dfilename%26recordId%3d607%26zoom%3dpage-fit&searchText=ibm

https://www.stedwardsarchives.org/PDFViewer/web/viewer.html?file=%2fFilename.ashx%3ftableName%3dta_Publications%26columnName%3dfilename%26recordId%3d602%26zoom%3dpage-fit&searchText=ibm

https://www.stedwardsarchives.org/PDFViewer/web/viewer.html?file=%2fFilename.ashx%3ftableName%3dta_Publications%26columnName%3dfilename%26recordId%3d606%26zoom%3dpage-fit&searchText=ibm

https://www.stedwardsarchives.org/PDFViewer/web/viewer.html?file=%2fFilename.ashx%3ftableName%3dta_Publications%26columnName%3dfilename%26recordId%3d674%26zoom%3dpage-fit&searchText=schools%27%20computer

https://www.stedwardsoxford.org/obituary/david-tinsley/

About

IBM Experimental computer for schools


Languages

Language:G-code 68.2%Language:Makefile 23.8%Language:CMake 4.2%Language:C 2.8%Language:C++ 0.8%Language:OpenSCAD 0.1%Language:Tcl 0.1%Language:Assembly 0.0%Language:TypeScript 0.0%