Package: nimbusinator
RM Nimbus GUI for PythonAboutNimbusinator is a graphical user-interface package for Python that mimicks the graphics and text drivers of the RM Nimbus PC186.  It isnotan emulation of the Nimbus itself.  This means you get the best of both worlds:  Cutting-edge Python computing power, beautifully presented in up to 16 colours!Disclaimer: Nimbusinator is a tribute project and is in no way linked to or endorsed by RM plc.Read the docs for full detailsUsageTo implement a Nimbus user interface all you need to do is import theNimbusandCommandclasses, like this:fromnimbusinator.nimbusimportNimbusfromnimbusinator.commandimportCommandThen create one object of each, and bind theCommandobject to theNimbusobject:nim=Nimbus()cmd=Command(nim)To display the screen, call thebootmethod on theNimbusobject.  By default, you'll see the famous blue "Welcome Screen" before control is released back to your program.  To skip the Welcome Screen simply pass the argumentskip_welcome_screen=Truewhen callingboot, like this:# Boot the Nimbus with Welcome Screennim.boot()# Boot the Nimbus without Welcome Screennim.boot(skip_welcome_screen=True)Note that the original Welcome Screen reported the memory status of the computer (in kilobytes!), alongside the RM firmware version and machine serial number.  Nimbusinator also displays memory status (but in units of Megabytes) and uses your Python version as the firmware version and your OS release number as the serial number.  It also uses information from your runtime environment to simulate a short DOS-like boot sequence before finally releasing control back to your application.  All the while you can enjoy the dulcet tones of an imaginary floppy drive.To bring the Nimbus programming experience into the 21st century, the API - although Pythonic - has been modelled on the syntax of RM Basic.  For example, in RM Basic to write a greeting in big, red letters in the bottom-left corner of the screen you would use thePLOTcommand:PLOT"Hi kittens!",10,10BRUSH2SIZE4And in Python with Nimbusinator you can write the same instruction like this:cmd.plot('Hi kittens!',(10,10),brush=2,size=4)It is recommended to read the RM Basic manual to get familiar with the original commands and how graphics and text were handled on the Nimbus (see links below).To cleanly exit your application, call theshutdownmethod on theNimbusobject:# Always do this before your app quits:nim.shutdown()InstallationNimbusinator is technically cross-platform but there are differences in the way PyGame's dependencies are installed between operating systems.  So far I have only tested installation on Ubuntu 19.04 (see below).  If you have tested PyGame successfully on other platforms please drop the magic formula inthe issuesand I'll add it below.Ubuntu 19.04# Install dependencies for pygame and simpleaudio:sudoapt-getinstall-ypython3-devlibasound2-devpython3-setuptoolspython3-numpypython3-opengllibsdl-image1.2-devlibsdl-mixer1.2-devlibsdl-ttf2.0-devlibsmpeg-devlibsdl1.2-devlibportmidi-devlibswscale-devlibavformat-devlibavcodec-devlibtiff5-devlibx11-6libx11-devfluid-soundfont-gmtimgm6mb-soundfontxfonts-basexfonts-100dpixfonts-75dpixfonts-cyrillicfontconfigfonts-freefont-ttflibfreetype6-dev# Then activate your Python env and install:pipinstallnimbusinatorQuick-startfromnimbusinator.nimbusimportNimbusfromnimbusinator.commandimportCommandif__name__=='__main__':# Create and bind nimbusinator objects:nim=Nimbus()cmd=Command(nim)nim.boot()# Boot the Nimbuscmd.set_mode(40)# Low resolution modecmd.set_border(1)# Dark blue bordercmd.set_paper(9)# Light blue papercmd.cls()# Clear screencmd.plonk_logo((8,110))# Show Nimbus logo# Display a message in cyan with shadowingcmd.plot('Greetings!!!',(65,155),size=2,brush=0)cmd.plot('Greetings!!!',(66,156),size=2,brush=13)# Wait 5 seconds then shutdownnim.sleep(5)nim.shutdown()LinksRead the Docs- Full documentationFacebook- RM Nimbus facebook groupCenter for Computing History- original RM Nimbus manuals and technical dataCenter for Computing History - RM Nimbus PC (Later Beige Model)- online exhibitThe Nimbus Museum- online museum that looks like the Welcome Disk!RM Nimbus- Wikipedia articlemame- comprehensive retro computer emulation projectFreesound pack: Floppy disk drive- source of the floppy drive soundsIronstone Innovation- what I do for a living