Simulated Alpha Gentoo acrobatics show

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.

 

 

 

Advertisements
Gallery | This entry was posted in Uncategorized. Bookmark the permalink.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s