Smalltalk-80 on Raspberry Pi: A bare metal implementation
Author here, feel free to ask any questions you have :).<p>It's amazing this little project shows up again here. So far, I received a lot of very positive and friendly feedback about this little pet project of mine.<p>The whole project would not have been possible without the work of Rene Stange, who created the circle bare-metal library for the Raspberry Pi (<a href="https://github.com/rsta2">https://github.com/rsta2</a>) and Dan Banay, who created a C++ implementation of the Smalltalk-80 VM (<a href="https://github.com/dbanay/Smalltalk">https://github.com/dbanay/Smalltalk</a>). I mostly hacked together some glue code...<p>If you want to dig deeper, the Blue Book by Adele Goldberg and David Robson (scan provided by Stephane Ducasse, thanks a lot!) is _the_ reference on both the language and the structure and implementation of the underlying bytecode VM: <a href="http://stephane.ducasse.free.fr/FreeBooks/BlueBook/Bluebook.pdf" rel="nofollow">http://stephane.ducasse.free.fr/FreeBooks/BlueBook/Bluebook....</a><p>Beware, though it's fully functional, crosstalk is still limited by constraints of the original Smalltalk 80 system - e.g. in terms of color (black and white only), possible screen resolution (2^20 pixels, the system crashes if you try to increase the resolution beyond this) and available memory (~1 MB!).<p>Nevertheless, I think it's a rather authentic reproduction of a more than 40 year old system and I learned (in a comment thread on a completely different topic) that one of our fellow hackernews regulars used it to teach his kid Smalltalk programming - love it! I haven't tried to optimize it significantly, so there's no JIT compiler or bitblit acceleration using the Raspberry Pi GPU.<p>There's a more modern bare-metal Smalltalk implementation based on Squeak (<a href="https://squeak.org" rel="nofollow">https://squeak.org</a>) for the Raspberry Pi by Pablo Marx, though this seems to have some stability problems according to the author: <a href="https://github.com/pablomarx/RaspberrySqueak">https://github.com/pablomarx/RaspberrySqueak</a><p>Finally, if you are interested in alternative bare-metal language/OS environments for the Raspberry Pi, you could also give Lukas Hartmann's (of MNT Reform notebook fame) Interim OS a try: <a href="http://interim-os.com" rel="nofollow">http://interim-os.com</a>