This is serving no other purpose then just a show what you can do with the system simulation now-days. So take it with a grain of salt. I have enjoyed hacking through this and hopefully some others might find some joy in this too.
For detailed information on how to run Gentoo Alpha inside Alphavm_free simulation – refer to this article https://astr0baby.wordpress.com/2017/06/10/installing-gentoo-linux-on-alphavm/
So we have a shiny new Alpha Gentoo running on alphavm, and supposedly we want to try some acrobatics with it. All this was only possible due to many hours spent compiling a workable Xorg and VNCserver on the simulated Alpha Gentoo.
Act 1 – Running 2.11BSD on a simulated PDP-11 via simh-pdp11 inside the Alphavm simulation
So this is fairly simple due to the fact that simh is present in the Gentoo portage system, so we simply just emerge is on our Alpha Gentoo as follows
emerge --ask app-emulation/simh
And Gentoo project can update the compatibility matrix to include Alpha architecture
https://packages.gentoo.org/packages/app-emulation/simh
Once we have simh package ready lets get some 2.11BSD pre-installed images (Thanks to Sergey Vakulenko we can get it from his webpage)
http://vak.ru/doku.php/proj/pdp11/211bsd
For impatient: you can get the resulting root disk image from here: “211bsd.dsk.gz” (gzipped 29 Mbytes, unpacked 170 Mbytes). To boot, ungzip the disk image and use the following SIMH commands:
sim> set cpu 11/44 1M sim> attach rp0 211bsd.dsk sim> boot rp0
Here is the Act 1 Screenshot of 2.11BSD running on simulated PDP11 on Alpha Gentoo
Act 2 – Running ULTRIX 4.5 on a simulated DECstation 5000/200 MIPS machine via GXemul inside the Alphavm simulation
Ultrix 4.5 for MIPS architecture can be simulated well by the GXemul machine simulator. GXemul is again present in the portage tree on Gentoo but the Xorg framebuffer support does not get built. (Mabe I have omitted the USE=”X” option) Anyways it is fine to pull the sources separately and compile them yourself. Normally we would just do the following
emerge --ask app-emulation/gxemul
I have downloaded the sources and built them exactly the same way as described here
https://astr0baby.wordpress.com/2017/07/07/computer-archeology-ultrix/
Gentoo project can again update their compatibility matrix for GXemul and add Alpha
https://packages.gentoo.org/packages/app-emulation/gxemul
Once we compile it, install ULTRIX in it, we immediately perform the Act. 2
——————————————————————————————————————————–
Act 3 – Running DOSBox inside the Alphavm simulation
Third act required some patience and time to get right. But what would the acrobatics be without good old DOS games right ? Thanks to Gentoo portage we make our life easier once again and after many hours of interdependency hell we can build DOSBox
emerge --ask games-emulation/dosbox
Once built, a final preparation of the Act 3 needs to be done – choosing the GAME to load via DOSBox. For this I have chosen my life-time favorite – Eye of the Beholder II. Assault on Myth Drannor
Gentoo project can again update their compatibility matrix for DOSBox and add Alpha
https://packages.gentoo.org/packages/games-emulation/dosbox
——————————————————————————————————————————–
Act 4 – Running MacOS 6.x and 7.x on a simulated Macintosh Plus via minivmac inside the Aphavm simulation
For the last act I have chosen the full vintage Macintosh Plus simulation via minivmac which is not available via portage on Gentoo, but which is (with some tweaks) compilable on the Alpha Gentoo and able to run and simulate MacOS 6.0.x and MacOS 7.5.x
Download minivmac sources from here https://github.com/jsdf/minivmac
Delete the embuild.sh and keep only the nabuild.sh
Modify the Makefile accordingly:
# make file generated by gryphel build system # CC=gcc # CC=clang # CC=emcc mk_COptions = \ -c \ -Wall \ -Wmissing-prototypes \ -Wno-uninitialized \ -Wundef \ -Wstrict-prototypes \ ${EMFLAGS} \ # -Os \ # .PHONY: TheDefaultOutput clean # TheDefaultOutput : minivmacjs TheDefaultOutput : minivmac.app/Contents/MacOS/minivmac nativeconfig : echo "" > src/config.h emconfig : echo "#define EMSCRIPTEN" > src/config.h bld/MYOSGLUE.o : src/MYOSGLUE.c src/COMOSGLU.h src/STRCONST.h src/CONTROLM.h src/CNFGGLOB.h $(CC) "src/MYOSGLUE.c" -o "bld/MYOSGLUE.o" $(mk_COptions) -I/usr/local/include/ -D_GNU_SOURCE=1 -D_THREAD_SAFE bld/GLOBGLUE.o : src/GLOBGLUE.c src/CNFGGLOB.h $(CC) "src/GLOBGLUE.c" -o "bld/GLOBGLUE.o" $(mk_COptions) bld/M68KITAB.o : src/M68KITAB.c src/CNFGGLOB.h $(CC) "src/M68KITAB.c" -o "bld/M68KITAB.o" $(mk_COptions) bld/MINEM68K.o : src/MINEM68K.c src/CNFGGLOB.h $(CC) "src/MINEM68K.c" -o "bld/MINEM68K.o" $(mk_COptions) bld/VIAEMDEV.o : src/VIAEMDEV.c src/CNFGGLOB.h $(CC) "src/VIAEMDEV.c" -o "bld/VIAEMDEV.o" $(mk_COptions) bld/IWMEMDEV.o : src/IWMEMDEV.c src/CNFGGLOB.h $(CC) "src/IWMEMDEV.c" -o "bld/IWMEMDEV.o" $(mk_COptions) bld/SCCEMDEV.o : src/SCCEMDEV.c src/CNFGGLOB.h $(CC) "src/SCCEMDEV.c" -o "bld/SCCEMDEV.o" $(mk_COptions) bld/RTCEMDEV.o : src/RTCEMDEV.c src/CNFGGLOB.h $(CC) "src/RTCEMDEV.c" -o "bld/RTCEMDEV.o" $(mk_COptions) bld/ROMEMDEV.o : src/ROMEMDEV.c src/CNFGGLOB.h $(CC) "src/ROMEMDEV.c" -o "bld/ROMEMDEV.o" $(mk_COptions) bld/SCSIEMDV.o : src/SCSIEMDV.c src/CNFGGLOB.h $(CC) "src/SCSIEMDV.c" -o "bld/SCSIEMDV.o" $(mk_COptions) bld/SONYEMDV.o : src/SONYEMDV.c src/CNFGGLOB.h $(CC) "src/SONYEMDV.c" -o "bld/SONYEMDV.o" $(mk_COptions) bld/SCRNEMDV.o : src/SCRNEMDV.c src/CNFGGLOB.h $(CC) "src/SCRNEMDV.c" -o "bld/SCRNEMDV.o" $(mk_COptions) bld/KBRDEMDV.o : src/KBRDEMDV.c src/CNFGGLOB.h $(CC) "src/KBRDEMDV.c" -o "bld/KBRDEMDV.o" $(mk_COptions) bld/SNDEMDEV.o : src/SNDEMDEV.c src/CNFGGLOB.h $(CC) "src/SNDEMDEV.c" -o "bld/SNDEMDEV.o" $(mk_COptions) bld/MOUSEMDV.o : src/MOUSEMDV.c src/CNFGGLOB.h $(CC) "src/MOUSEMDV.c" -o "bld/MOUSEMDV.o" $(mk_COptions) bld/PROGMAIN.o : src/PROGMAIN.c src/CNFGGLOB.h $(CC) "src/PROGMAIN.c" -o "bld/PROGMAIN.o" $(mk_COptions) ObjFiles = \ bld/MINEM68K.o \ bld/MYOSGLUE.o \ bld/GLOBGLUE.o \ bld/M68KITAB.o \ bld/VIAEMDEV.o \ bld/IWMEMDEV.o \ bld/SCCEMDEV.o \ bld/RTCEMDEV.o \ bld/ROMEMDEV.o \ bld/SCSIEMDV.o \ bld/SONYEMDV.o \ bld/SCRNEMDV.o \ bld/KBRDEMDV.o \ bld/SNDEMDEV.o \ bld/MOUSEMDV.o \ bld/PROGMAIN.o \ minivmac.app/Contents/Resources/AppIcon.icns : src/AppIcon.icns rm -fr "minivmac.app/" rm -fr "AppTemp/" mkdir "AppTemp/" mkdir "AppTemp/Contents/" mkdir "AppTemp/Contents/MacOS/" mkdir "AppTemp/Contents/Resources/" mkdir "AppTemp/Contents/Resources/English.lproj/" cp "src/AppIcon.icns" "AppTemp/Contents/Resources/" cp "src/Info.plist" "AppTemp/Contents/" printf "dummy\n" > "AppTemp/Contents/Resources/English.lproj/dummy.txt" printf "APPL????" > "AppTemp/Contents/PkgInfo" mv "AppTemp/" "minivmac.app/" minivmac.app/Contents/MacOS/minivmac : $(ObjFiles) minivmac.app/Contents/Resources/AppIcon.icns $(CC) \ -o "minivmac.app/Contents/MacOS/minivmac" \ $(ObjFiles) -L/usr/local/lib -lSDLmain -lSDL clean : rm -f $(ObjFiles) rm -fr "minivmac.app/"
On the Alpha Gentoo you can now run make and build the minivmac simulator. The final executable will be located in
minivmac-minivmacjs/minivmac.app/Contents/MacOS/minivmac -rwxr-xr-x 1 user user 158592 Jul 9 16:40 minivmac
Make sure you have the Macintosh ROM file in path from where you run minivmac which is called exactly like so:
vMac.ROM
Then you can then download these ready made Macintosh images to load inside the minivmac http://www.toughdev.com/content/2008/06/system-7-5-5-on-mini-vmac/
So we come to the end of the fabulous Alpha Gentoo acrobatic show, and hopefully there will be more acts to add in the future.