Releases: davidpsharp/baby
Release list
v3.2.1 (3 Apr 2025)
Bug fixes
- Disassembler now saves to store correctly and quickly when Interactive Loading is enabled.
- Line switches are all switched to down even if interactively loading a program that doesn't set the last store line.
- Load URL from file menu now always updates the CRT display.
- Load URL updates the disassembler automatically, as with other approaches to loading a program.
- No longer have to press Cmd+C twice in browser to copy text to clipboard (now using Cheerpj 'permission' clipboard mode, Safari/Firefox don't support it so still work in the old way).
- Windows standalone .exe should restart correctly now when zoom settings are changed.
- Zoom settings no longer shown on the menu on the MacOS since zoom is not supported.
- Zoom only works on JRE9 or later so if running on JRE8 you get a message to upgrade your java runtime if you try and change the zoom setting.
- Additional debug info on the OS and Java environment is included on the Help / About dialog.
Windows and Mac standalone packages will be added at a later date. The v3.2.1 jar can be copied over the JAR included with the v3.2.0 standalone Windows build.
v3.2.0 (30 Mar 2025)
New features
- QR Code generation - transfer the state of the Baby from your desktop to your phone by viewing the QR code with your phone's camera so you can take your program home with you. 'Save as QR code' is found on the File menu.
Technical changes
- As of April 2nd, JRE11 is now packaged in the Standalone builds on both Mac and Windows to support zoom functionality on Windows. The JAR in all versions remains Java8 and later for maximum compatibility (especially with cheerpj v3.1).
v3.1.0 (20 Mar 2025)
New features
- Native system look and feel for the UI.
- Save machine state as a URL, when clicked the simulator starts in a browser and loads that program, e.g. https://manchesterbaby.com?s=__9__xhVdVWPdU92VnZWj3aVwP____9Vd1eWAAEAAAfAIHdXlsAUIAA
represents the entire primegen example program (included with the simulator) compressed and encoded in base64url. The state includes the Control Instruction and Accumulator so you can easily share programs mid-run...
3.0.0 (9 Mar 2025)
This is the first release for approximately 17 years, the previous release was in early 2008.
New features
- Baby simulator in a browser is back, the simulator will also continue to always be available as a Java application. Running the simulator in a browser hasn’t been possible since Java Applets were deprecated, but is again now thanks to cheerpj. Drag and drop programs onto it or use File / ‘Load local’ menu entry to load programs.
- Now available at manchesterbaby.com for an easy-to-remember URL.
- Touchscreen iPad/Android tablet support with the online version; get a sense of what it feels like to press the buttons and switches on the panel of the real Baby replica.
- Standalone Windows and macOS apps available, no separate Java runtime installation required, just run the .exe or .app file just like any other native application.
- Scale up on large displays on the online version by zooming your browser; it’s best set to the right zoom level before you start the simulator running or you may get graphical defects. When running the simulator as a desktop application, use the 'Zoom on next start' in the View menu to adjust the zoom next time the simulator starts (note; MacOS does not support desktop application zoom)
- Interactive loading; watch your programs be typed out on the switches and buttons one press at a time, as you had to on the original machine, to get a sense of the manual effort required to load a program (you can disable it from the Settings menu if you’re in a hurry).
- Keyboard shortcuts make it easier to drive the simulator from the keyboard with available shortcuts shown on the menus and tooltips; e.g. press F10 to single-step through your program or F5 to run it.
- Disassembler optionally auto-updates every time you run or single-step the simulator so you can watch the program run. The next instruction to be executed is marked with an asterisk so you can easily follow your program’s execution.
- Enhanced disassembly; the comments on each line show the value of the line in hexadecimal and also the decimal value of the line that the instruction points to in brackets. e.g. the following means when executed it will subtract -8192 from the accumulator as that’s the value of line 27.
18 SUB 27 ; 0000801b : 32795 (-8192) - Additional NUM instruction number formats accepted;
0x 0bandL0bas hexadecimal, binary and LSB-first binary formats respectively. The settings menu controls which of these formats are disassembled to. - Tooltip disassembly on the monitor by hovering the mouse over the line you're interested in, a tooltip will tell you what it means.
- Add your own programs to the Examples menu by putting them in a folder called baby_programs or a zip file called baby_programs.zip in the same folder as the simulator’s JAR file, you can use sub-folders to organise them.
- Load Recent menu lists the last 50 programs loaded so that they can be easily reloaded; the list persists across sessions of the simulator.
- Drag & drop program files from Windows Explorer/Mac Finder onto the simulator to load them. If you drag multiple files, they all get added to the Load Recent menu and the last one will be loaded.
- Extended Documentation - a Quick Start Guide, Chris Burton’s Programmer’s Reference Manual and the Introduction To Programming The Baby Computer are available from the Help menu. A narration on the historical accuracy of the simulator is also available.
- Runs at a more consistent speed after some bug fixes.
- User settings persist in a file in the user's home folder.
Technical changes
- Moved source code to github to improve source code management and encourage contributions.
- Known issues and feature ideas are logged on github, report issues or suggest features there.
- Minimum Java runtime for the simulator is Java 8 (a Long Term Support version still supported at this time).
- JAR file size is reduced by nearly 80% which helps with fast loading of the browser-version.
- Maven is used to automate the build of releases.
- The simulator and source code is released under the GPLv3 license.
- Significant refactoring of the codebase to improve clarity and remove long-dead code.
Thanks to
- The many volunteers who demonstrate and maintain the replica Baby at the Science and Industry Museum in Manchester for their feedback and testing.
- Kyle Stevenson who has been helping modernise the codebase, set up the maven tooling and has started adding features.
Volunteers are welcome to get in touch and work on the project.
Full Changelog: v2.0.0...v3.0.0
2.0.0 (Jan 2008)
Gulzaman Khan added a photo-realistic GUI to the existing simulator, last update 18 Jan 2008, ahead of the 60th anniversary of the original Baby machine running the first stored-program. This version was used as part of the 60th anniversary celebrations, including a programming competition to write programs for the simulator to be run on the replica Baby machine.
This was the first release where the simulator was packaged as a single JAR file for ease of use.
It is the only release which can also be run as a Java applet embedded in a web page in a browser, as well as a normal Java application. Java Applet functionality was later deprecated by Java 9 in 2017, meaning this code base will not compile as it is on later Java compilers.
Download ssem.zip for the release which can still be run as a Java application. This is the same zip file that was available to download on https://davidsharp.com/baby from 2008-2025.
1.0.0 (Jan 2001)
Original release of the simulator 12 January 2001, written by David Sharp as part of the History of Computing Course towards a Computer Science BSc Hons at The University of Warwick, England.
A Java application that runs on Java v1.2 or later. Source code is not in github so ignore the Source Code attachments below, however the attached baby.zip contains the binary class files, source code and documentation.
This is the same zip file that was available to download from https://davidsharp.com/baby since 2001.
Historical note: there was subsequent refactoring work and other tidy up, including adding webstart, done to v1.0 by Alan Burlison on the Subversion repository (https://davidsharp.com/publicsvn/baby/) circa 2007. These changes never made it to a proper release and were not included into the v2.0.0 and later codebase so are long-orphaned.





