The Black Art of DOS emulation on Raspberry Pi

Using FastDOSBox.

By : [email protected]

www.norisc-nofun.co.uk

Version 1.0 – May 2013, Author : Franck / NoRiscNoFun , [email protected] – twitter : @Noriscnofun1 Table of Contents What is DOS emulation for who and for what ?...... 3 Why choosing FastDOSBox for DOS emulation on the Rpi ?...... 4 Installing FastDOSBox on the Raspberry Pi...... 5 For RISC OS...... 5 For Raspbian...... 5 Recommended Raspberry Pi CPU settings for FastDOSBox...... 6 Recommended configuration settings for FastDOSBox...... 7 [] Section...... 7 [render] Section...... 7 [cpu] Section...... 7 Sound Section...... 7 [] Section...... 8 Installing Windows 3.x (and others) with FastDOSBox...... 9 Requirements...... 9 Make an hard-drive image usable under FastDOSBox...... 9 Partitioning the Hard-Drive image...... 10 Mount and Format the Hard-Drive image with FastDOSBox...... 11 Copy the Windows 3.x installation files on the Hard-drive image...... 13 Run Windows Installer from FASTDosBOX...... 16

Version 1.0 – May 2013, Author : Franck / NoRiscNoFun , [email protected] – twitter : @Noriscnofun1 What is DOS emulation for who and for what ?

DOS (Disk ) is / was the operating system for PC prior to the era. Between 1981 and 1995, DOS was dominating the market for the IBM PC platform (). During almost 15 years of technology all kind of applications and games have been released, probably thousands of games that constitute an invaluable legacy for any Retro Gamers. Many companies decided to re-release these old DOS games using the principle of emulation that simulates the behavior of a PC hardware and Operating System from the 1981-1995 era. Several DOS have been released to work across modern platforms like Windows, OSX, , Android. DOSBox is one of the most popular and most complete as it offers all the different features of these old-school PC. These last years DOSBox started to be a mandatory program for anyone who likes Retro gaming, this is why NoRisc-NoFun decided to bring to the Raspberry Pi community the best possible version of DOSBox called FastDOSBox (DOSBox name was already taken on Android platform). Raspberry Pi by its form factor, price and target audience is the perfect platform for Retro gaming. Looking at the RetroPie project is quite convincing.

Reference : A proper definition of what is DOS about : http://en.wikipedia.org/wiki/DOS Reference : Official homepage of DOSBox : http://www.dosbox.com Reference : Good Old Games, selling DOS games : http://www.gog.com Reference : Excellent Blog about RetroPie : http://blog.petrockblock.com/retropie/

Version 1.0 – May 2013, Author : Franck / NoRiscNoFun , [email protected] – twitter : @Noriscnofun1 Why choosing FastDOSBox for DOS emulation on the Rpi ?

The Raspberry Pi is an amazing small piece of hardware but no-one can say it is specially shining with its raw CPU power. There is not a single smartphone or tablet with a ARMv6 single core on the market today, that makes the emulation of a x86 PC pretty tough on the Raspberry Pi. Somebody told me recently : “The Raspberry Pi needs some special ARM code”, this is exactly where the challenge is : Straight ports of applications coming from the PC world won't run efficiently on ARM platforms, specially when it comes to emulate other architecture. NoRisc-NoFun (www.norisc-nofun.co.uk) is implementing the best possible routines and optimizations and aim to bring the most efficient version of software for the ARM platform. FastDOSBox is a fork of Dosbox based on the sources of the SVN and 0.74 version of Dosbox, this is the fruit of almost 9 month of work and the result can be consider as the little brother of DosBox Turbo available for Android. The features of FastDOSBox are the following : - All the standard features of DosBox as shown here : http://www.dosbox.com/status.php? show_status=1 Plus more specifically for the Raspberry Pi : - Dynrec emulation for ARM, offering the speed of a 386 DX at 25Mhz. - 1080p native resolution with upscale using dispmanx (GPU aided).

Version 1.0 – May 2013, Author : Franck / NoRiscNoFun , [email protected] – twitter : @Noriscnofun1 Installing FastDOSBox on the Raspberry Pi

For RISC OS Only version 1.0 is available for RISC OS, this version is slightly slower than the Raspbian version, mainly due to the fact that dispmanx (the GPU routines) are not used. However it provides a serious boost over the official version of Dosbox available from riscos.info website. You can download freely !FastDosBox here : http://www.norisc-nofun.co.uk/downloads/fastdosbox_1.0.zip Just extract the !FastDosBox folder from the ZIP archive, and double click on the icon, ! FastDosBox will load automatically. On RISC OS !FastDosbox is not limited to the Raspberry Pi, it runs beautifully on a Beagleboard or even better on a Pandaboard.

For Raspbian Version 1.5 is available on the Pi Store, to install it, you have to run the pistore application from X11 and download it from there. The direct link on the Pi Store is : http://store.indiecity.com/projects/fastdosbox Once the installation process is complete, the application is installed in this directory : /usr/local/bin/indiecity/InstalledApps/fastdosbox/Full/fastdosbox-1.5/

To do a first run of fastdosbox under the console (X11 is not supported) : $ /usr/local/bin/indiecity/InstalledApps/fastdosbox/Full/fastdosbox-1.5/fastdosbox

Alternatively as FastDOSBox is under GPL v2.0, you can download the sources from norisc-nofun website : www.norisc-nofun.co.uk and try to compile your own version.

Version 1.0 – May 2013, Author : Franck / NoRiscNoFun , [email protected] – twitter : @Noriscnofun1 Recommended Raspberry Pi CPU settings for FastDOSBox. Emulating is really CPU consuming no matter how good are the optimizations that have been implemented. To get the most performance out of FastDOSBox, we recommend you to overclock your Raspberry Pi. Edit the /boot/config.txt file and change the following parameters : arm_freq=1000 gpu_mem=64 core_freq=500 sdram_freq=600 over_voltage=6

The new parameters are applied after a reboot.

You may also check that the scaling governor is set on “ondemand”, if not you can use this command :

$ echo ondemand > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor

Reference : http://elinux.org/RPi_config.txt Reference : http://megakemp.com/2013/02/26/adventures-in-overclocking-a-raspberry-pi/

Version 1.0 – May 2013, Author : Franck / NoRiscNoFun , [email protected] – twitter : @Noriscnofun1 Recommended configuration settings for FastDOSBox

By default FastDOSBox is using the most efficient settings according to our tests. It does not mean that they are the best for a perfect faithful emulation, but they are “to our opinion” a good compromise between speed and accuracy. This section does not cover explanation for all the settings as the official Dosbox wiki page does a fantastic job at it : http://www.dosbox.com/wiki/Dosbox.conf The default configuration file for fastDOSBox is located in ~/.fastdosbox/fastdosbox-1.5.conf

[dosbox] Section

[dosbox] machine=svga_et3000 memsize=16

In most documentation svga_s3 is recommended, however we noticed a boost of few FPS using svga_et3000 on the Raspberry Pi.

[render] Section

[render] frameskip=0 aspect=false scaler=none

[cpu] Section

[cpu] core=dynamic cputype=386 cycles=max cycleup=10 cycledown=20

Sound Section

[mixer]

Version 1.0 – May 2013, Author : Franck / NoRiscNoFun , [email protected] – twitter : @Noriscnofun1 nosound=false rate=22050 blocksize=2048 prebuffer=20

[] mpu401=intelligent mididevice=default midiconfig=

[sblaster] sbtype=sb16 sbbase=220 irq=7 dma=1 hdma=5 sbmixer=true oplmode=auto oplemu=default oplrate=44100

[gus] gus=false gusrate=44100 gusbase=240 gusirq=5 gusdma=3 ultradir=C:\ULTRASND

[speaker] pcspeaker=true pcrate=44100 tandy=off tandyrate=44100 disney=false

[dos] Section xms=true ems=true umb=true keyboardlayout=none

Reference : DOSBox wiki page : http://www.dosbox.com/wiki/Main_Page

Version 1.0 – May 2013, Author : Franck / NoRiscNoFun , [email protected] – twitter : @Noriscnofun1 Installing Windows 3.x (and others) with FastDOSBox. This paragraph could have been called “Installing Windows 95” but after many attempts we came to the conclusion than the emulation of a x86 on a Raspberry Pi is not fast enough to run in a descent way Windows 95/98. However running Windows 3.x is perfectly realistic and if you feel brave enough you can apply the same method to install Windows 95.

Requirements A bootable MS-DOS floppy images, for instance version 6.22, called here msdos622.img. Windows 3.x floppy images, in this example we use Windows 3.1 images named as followed : disk1.img disk2.img disk3.img disk4.img disk5.img disk6.img disk7.img

Make an hard-drive image usable under FastDOSBox.

Installing MS Windows will require to boot a proper MS-DOS version and proceed to the installation steps using an hard-drive image. To make the hard-drive image we will use bximage (Disk Image Creation Tool for ) available from apt-get : $ apt-get install bximage Once bximage is installed, follow these steps to make the hard-drive image : pi@raspberrypi ~ $ Images/ pi@raspberrypi ~/Images $ bximage ======bximage Disk Image Creation Tool for Bochs $Id: bximage.c,v 1.34 2009/04/14 09:45:22 sshwarts Exp $ ======

Do you want to create a floppy disk image or a hard disk image? Please hd or fd. [hd]

What kind of image should I create? Please type flat, sparse or growing. [flat]

Enter the hard disk size in megabytes, between 1 and 129023 [10] 420

Version 1.0 – May 2013, Author : Franck / NoRiscNoFun , [email protected] – twitter : @Noriscnofun1 I will create a 'flat' hard disk image with cyl=853 heads=16 sectors per track=63 total sectors=859824 total size=419.84 megabytes

What should I name the image? [c.img] windows-hd.img

Writing: [] Done.

I wrote 440229888 bytes to windows-hd.img.

The following line should appear in your bochsrc: ata0-master: type=disk, path="windows-hd.img", mode=flat, cylinders=853, heads=16, spt=63

Partitioning the Hard-Drive image. We will now create a primary FAT 16 (DOS) partition by attaching the hard-drive image as and using the fdisk utility. Here we go : pi@raspberrypi ~/Images $ sudo losetup /dev/loop0 windows-hd.img pi@raspberrypi ~/Images $ sudo fdisk /dev/loop0 Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel Building a new DOS disklabel with disk identifier 0xef7ffc91. Changes will remain in memory only, until you decide to write them. After that, of course, the previous content won't be recoverable.

Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)

Command (m for ): n Partition type: p primary (0 primary, 0 extended, 4 free) extended Select (default p): p Partition number (1-4, default 1): 1 First sector (2048-859823, default 2048): Using default value 2048 Last sector, +sectors or +size{K,M,G} (2048-859823, default 859823): Using default value 859823

Command (m for help): t Selected partition 1 Hex code (type L to list codes): 6 Changed system type of partition 1 to 6 (FAT16)

Command (m for help): c DOS Compatibility flag is set (DEPRECATED!)

Version 1.0 – May 2013, Author : Franck / NoRiscNoFun , [email protected] – twitter : @Noriscnofun1 Command (m for help): a Partition number (1-4): 1

Command (m for help): p

Disk /dev/loop0: 440 MB, 440229888 bytes 255 heads, 63 sectors/track, 53 cylinders, total 859824 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0xef7ffc91

Device Boot Start End Blocks Id System /dev/loop0p1 * 2048 859823 428888 6 FAT16 Partition 1 does not end on cylinder boundary.

Command (m for help): w The partition table has been altered!

Calling ioctl() to re-read partition table.

WARNING: Re-reading the partition table failed with error 22: Invalid argument. The kernel still uses the old table. The new table will be used at the next reboot or after you run partprobe(8) or kpartx(8)

WARNING: If you have created or modified any DOS 6.x partitions, please see the fdisk manual page for additional information. Syncing disks. pi@raspberrypi ~/Images $ sudo losetup -d /dev/loop0

Mount and Format the Hard-Drive image with FastDOSBox

Start FastDOSBox : pi@raspberrypi ~ $ fastdosbox

Under the DOS prompt in FastDOSBox :

Z:\> imgmount 2 /home/pi/Images/windows-hd.img -size 512,63,16,255 -t hdd -fs none Drive number 2 mounted as /home/pi/Images/windows-hd.img

Version 1.0 – May 2013, Author : Franck / NoRiscNoFun , [email protected] – twitter : @Noriscnofun1 Z:\> boot /home/pi/Images/msdos622.img Starting msdos... A:\>format c: /s

WARNING: ALL DATA ON NON-REMOVABLE DISK DRIVE C: WILL BE LOST! Proceed with Format (Y/N)?Y

Formatting 418.83M Format complete. System transferred

Volume label (11 characters, ENTER for none)? HD 438,943,744 bytes total disk space 212,992 bytes used by system 438,7320,752 bytes available on disk

8.192 bytes in each allocation unit. 53,556 allocation units availbale on disk

Volume Serial Number is 305E-1316

A:\>

From there you can quit FastDOSBox.

Version 1.0 – May 2013, Author : Franck / NoRiscNoFun , [email protected] – twitter : @Noriscnofun1 Copy the Windows 3.x installation files on the Hard-drive image.

Under the UNIX prompt, use the following commands, please note that may have to adapt the filenames and directory names to the one that you are actually using.

pi@raspberrypi ~ $ sudo losetup -o 1048576 /dev/loop1 /home/pi/Images/windows-hd.img pi@raspberrypi ~ $ cd /home/pi/Images/ pi@raspberrypi ~/Images $ cd Win31/

pi@raspberrypi ~/Images/Win31 $ sudo /tmp/win31 pi@raspberrypi ~/Images/Win31 $ sudo mount /dev/loop1 /tmp/win31 pi@raspberrypi ~/Images/Win31 $ ls /tmp/win31 COMMAND.COM DRVSPACE.BIN IO.SYS MSDOS.SYS

pi@raspberrypi ~/Images/Win31 $ sudo mkdir /tmp/win31/WININST

pi@raspberrypi ~/Images/Win31 $ sudo mkdir /tmp/floppy

pi@raspberrypi ~/Images/Win31 $ for i in 1 2 3 4 5 6 7 > do > sudo mount -o loop disk${i}.img /tmp/floppy > sudo cp -r /tmp/floppy/* /tmp/win31/WININST > sudo umount /tmp/floppy > done pi@raspberrypi ~/Images/Win31 $ ls /tmp/win31/WININST 1252_UNI.00_ COURB.FO_ EXPAND.EXE KBDPO.DL_ N2290520.WP_ PRTUPD.INF SYMBOL.FO_ VGA.3G_ 256COLOR.BM_ COURBI.FO_ FINSTALL.DL_ KBDSF.DL_ N2990523.WP_ PS1.DR_ SYMBOL.TT_ VGA850.FO_ 386MAX.VX_ COURBI.TT_ FINSTALL.HL_ KBDSG.DL_ N890_470.WP_ PSCRIPT.DR_ SYSEDIT.EX_ VGA860.FO_ 40291730.WP_ COURE.FO_ FUJI24.DR_ KBDSP.DL_ N890X505.WP_ PSCRIPT.HL_ SYSINI.WR_ VGA861.FO_ 40293930.WP_ COURF.FO_ FUJI9.DR_ KBDSW.DL_ NCM40519.WP_ Q2200510.WP_ SYSTEM.DR_ VGA863.FO_ 8514.DR_ COUR.FO_ GDI.EX_ KBDUK.DL_ NCM80519.WP_ Q820_517.WP_ SYSTEM.SR_ VGA865.FO_ 8514FIX.FO_ COURI.FO_ GENDRV.DL_ KBDUS.DL_ NEC24PIN.DR_ QWIII.DR_ TASKID.CO_ VGACOLOR.2G_ 8514OEM.FO_ COURI.TT_ GLOSSARY.HL_ KBDUSX.DL_ NETAPI20.DL_ RAMDRIVE.SY_ TASKID.MS_ VGADIB.3G_ 8514SYS.FO_ COUR.TT_ HERC.3G_ KEYBOARD.DR_ NETWARE.DR_ README.WR_ TASKMAN.EX_ VGA.DR_ APP850.FO_ CPWIN386.CP_ HERC850.FO_ KRNL286.EX_ NETWARE.HL_ RECORDER.DL_ TBMI240.CO_ VGAFIX.FO_ APPS.IN_ DDEML.DL_ HERCLOGO.LG_ KRNL386.EX_ NETWORKS.WR_ RECORDER.EX_ TBMI2.MS_ VGALOGO.LG_ ARCADE.BM_ DEC1150.WP_ HERCLOGO.RL_ L100_425.WP_ NOMOUSE.DR_ RECORDER.HL_ TERMINAL.EX_ VGALOGO.RL_ ARGYLE.BM_ DEC2150.WP_ .2G_ L200230&.WP_ NOTEPAD.EX_ REDBRICK.BM_ TERMINAL.HL_ VGAMONO.2G_ ARIALBD.FO_ DEC2250.WP_ HERCULES.DR_ L300_471.WP_ NOTEPAD.HL_ REGEDIT.EX_ TESTPS.TX_ VGAMONO.DR_ ARIALBD.TT_ DEC3250.WP_ HERCWOA.FO_ L300_493.WP_ NW40.DR_ REGEDIT.HL_ THATCH.BM_ VGAOEM.FO_

Version 1.0 – May 2013, Author : Franck / NoRiscNoFun , [email protected] – twitter : @Noriscnofun1 ARIALB.FO_ DECCOLOR.WP_ HIMEM.SY_ L330_52&.WP_ NW40.HL_ REGEDITV.HL_ THINKJET.DR_ VGASYS.FO_ ARIALBI.FO_ DECLPS20.WP_ HONEY.BM_ L500_493.WP_ NWCALLS.DL_ RIVETS.BM_ TI850.DR_ VIPX.38_ ARIALBI.TT_ DECNB.38_ HP_3D522.WP_ L530_52&.WP_ NWIPXSPX.DL_ ROMAN.FO_ TIGA.DR_ VIPX40.38_ ARIAL.FO_ DECNET.38_ HP_3P522.WP_ L630_52&.WP_ NWLOCALE.DL_ SCRIPT.FO_ TIGAWIN.RL_ VNETWARE.38_ ARIALI.FO_ DICONIX.DR_ HPDSKJET.DR_ LANGDUT.DL_ NWNET.DL_ SCRNSAVE.SC_ TIM17521.WP_ VNW40.38_ ARIALI.TT_ DING.WA_ HPEBIOS.38_ LANGENG.DL_ NWPOP40.EX_ SEIKO_04.WP_ TIM35521.WP_ VPOWERD.38_ ARIAL.TT_ DISK1 HPELI523.WP_ LANGFRN.DL_ NWPOPUP.EX_ SEIKO_14.WP_ TIMER.DR_ VSBD.38_ BANINST.38_ DISK2 HPIID522.WP_ LANGGER.DL_ NWPSRV.DL_ SERIFB.FO_ TIMESBD.FO_ VTDA.38_ BLUEMAX.VX_ DISK3 HPIII522.WP_ LANGSCA.DL_ O5241503.WP_ SERIFE.FO_ TIMESBD.TT_ VTDAPI.38_ CALC.EX_ DISK4 HPIIP522.WP_ LANGSPA.DL_ O5242503.WP_ SERIFF.FO_ TIMESB.FO_ WIN386.EX_ CALC.HL_ DISK5 HPMOUSE.DR_ LANMAN10.38_ OKI24.DR_ SETUP.EXE TIMESBI.FO_ WIN386.PS_ CALENDAR.EX_ DISK6 HPPCL5A.DR_ LANMAN.DR_ OKI9.DR_ SETUP.HL_ TIMESBI.TT_ WIN87EM.DL_ CALENDAR.HL_ DISK7 HPPCL5A.HL_ LANMAN.HL_ OKI9IBM.DR_ SETUP.INF TIMES.FO_ WIN.CN_ CAN_ADF.EX_ DM309.DR_ HPPCL5E1.DL_ LBPII.DR_ OL840518.WP_ SETUP.INI TIMESI.FO_ WINDOWS.LO_ CANON10E.DR_ DMCOLOR.DL_ HPPCL5E2.DL_ LBPIII.DR_ OLECLI.DL_ SETUP.RE_ TIMESI.TT_ WINFILE.EX_ CANON130.DR_ DOSAPP.FO_ HPPCL5E3.DL_ LMOUSE.CO_ OLESVR.DL_ SETUP.SHH TIMES.TT_ WINFILE.HL_ CANON330.DR_ DOSX.EX_ HPPCL5E4.DL_ LMOUSE.DR_ OLIBW.DR_ SETUP.TXT TKPHZR21.WP_ WINGDING.FO_ CANYON.MI_ DRIVERS.CP_ HPPCL5E.DR_ LVMD.38_ OLIGRAB.2G_ SF4019.EX_ TKPHZR31.WP_ WINGDING.TT_ CARDFILE.EX_ DRWATSON.EX_ HPPCL5E.HL_ LZEXPAND.DL_ OLIVETI1.WP_ SFINST.EX_ TOOLHELP.DL_ WINHELP.EX_ CARDFILE.HL_ DSWAP.EX_ HPPCL5EO.HL_ MAIN.CP_ OLIVETI2.WP_ .DL_ TOSHIBA.DR_ WINHELP.HL_ CASTLE.BM_ EGA.3G_ HPPCL5MS.DR_ MCICDA.DR_ P4455514.WP_ SL.DL_ TRIUMPH1.WP_ WININI.WR_ CGA40850.FO_ EGA40850.FO_ HPPCL5OP.HL_ MCISEQ.DR_ PACKAGER.EX_ SL.HL_ TRIUMPH2.WP_ WINLOGO.BM_ CGA40WOA.FO_ EGA40WOA.FO_ HPPCL.DR_ MCIWAVE.DR_ PACKAGER.HL_ SMALLB.FO_ TTY.DR_ WINMINE.EX_ CGA80850.FO_ EGA80850.FO_ HPPLOT.DR_ MIDIMAP.CF_ PAINTJET.DR_ SMALLE.FO_ TTY.HL_ WINMINE.HL_ CGA80WOA.FO_ EGA80WOA.FO_ HPSYSTEM.DR_ MIDIMAP.DR_ PANSON24.DR_ SMALLF.FO_ U9415470.WP_ WINOA386.MO_ CGALOGO.LG_ EGACOLOR.2G_ IBM17521.WP_ MMSOUND.DR_ PANSON9.DR_ SMARTDRV.EX_ UNI_1252.00_ WINOLDAP.MO_ CGALOGO.RL_ EGA.DR_ IBM39521.WP_ MMSYSTEM.DL_ PBRUSH.DL_ SNDBLST2.DR_ UNI_COL.00_ WINPOPUP.EX_ CHARMAP.EX_ EGAFIX.FO_ IBM4019.DR_ MMTASK.TS_ PBRUSH.EX_ SNDBLST.DR_ UNIDRV.DL_ WINPOPUP.HL_ CHARMAP.HL_ EGAHIBW.DR_ IBM5204.DR_ MODERN.FO_ PBRUSH.HL_ SND.CP_ UNIDRV.HL_ WIN.SR_ CHIMES.WA_ EGALOGO.LG_ IBMCOLOR.DR_ MORICONS.DL_ PCSA.DR_ SOL.EX_ UNI_MON.00_ WINTUTOR.DA_ CHORD.WA_ EGALOGO.RL_ KBDBE.DL_ MOUSE.DR_ PG306.DR_ SOL.HL_ USER.EX_ WINTUTOR.EX_ CIT24US.DR_ EGAMONO.2G_ KBDCA.DL_ MOUSEHP.CO_ PHIIPX.WP_ SOUNDREC.EX_ V7VDD.38_ WINVER._ CIT9US.DR_ EGAMONO.DR_ KBDDA.DL_ MOUSEHP.SY_ PIFEDIT.EX_ SOUNDREC.HL_ V7VGA.3G_ WRITE.EX_ CITOH.DR_ EGAMONO.LG_ KBDDV.DL_ MPLAYER.EX_ PIFEDIT.HL_ SQUARES.BM_ V7VGA.DR_ WRITE.HL_ CLIPBRD.EX_ EGAMONO.RL_ KBDFC.DL_ MPLAYER.HL_ PLASMA.3G_ SSERIFB.FO_ VADLIBD.38_ WSWAP.EX_ CLIPBRD.HL_ EGAOEM.FO_ KBDFI.DL_ MPU401.DR_ PMSPL20.DL_ SSERIFE.FO_ VDD8514.38_ XGA.DR_ CLOCK.EX_ EGA.SY_ KBDFR.DL_ MSADLIB.DR_ POWER.DR_ SSERIFF.FO_ VDDCGA.38_ XLAT850.BI_ COMMDLG.DL_ EGASYS.FO_ KBDGR.DL_ MSC3BC2.DR_ POWER.HL_ SSFLYWIN.SC_ VDDEGA.38_ XLAT860.BI_ COMM.DR_ EGYPT.BM_ KBDHP.DR_ MSCMOUSE.DR_ PRINTERS.WR_ SSMARQUE.SC_ VDDHERC.38_

Version 1.0 – May 2013, Author : Franck / NoRiscNoFun , [email protected] – twitter : @Noriscnofun1 XLAT861.BI_ CONTROL.EX_ EMM386.EX_ KBDIC.DL_ MSCVMD.38_ PRINTMAN.EX_ SSSTARS.SC_ VDDSVGA.38_ XLAT863.BI_ CONTROL.HL_ EPL75523.WP_ KBDIT.DL_ MSD.EXE PRINTMAN.HL_ SUPERVGA.DR_ VDDTIGA.38_ XLAT865.BI_ CONTROL.INF EPSON24.DR_ KBDLA.DL_ MSD.IN_ PROGMAN.EX_ SVGA256.DR_ VDDVGA30.38_ XMSMMGR.EXE CONTROL.SR_ EPSON9.DR_ KBDMOUSE.DR_ MSNET.DR_ PROGMAN.HL_ SYMBOLB.FO_ VDDXGA.38_ ZIGZAG.BM_ COURBD.FO_ ESCP2.DR_ KBDNE.DL_ MT_TI101.WP_ PROPRINT.DR_ SYMBOLE.FO_ .DL_ COURBD.TT_ EXECJET.DR_ KBDNO.DL_ N2090522.WP_ PROPRN24.DR_ SYMBOLF.FO_ VGA30.3G_

pi@raspberrypi ~/Images/Win31 $ sudo umount /tmp/win31

Version 1.0 – May 2013, Author : Franck / NoRiscNoFun , [email protected] – twitter : @Noriscnofun1 Run Windows Installer from FASTDosBOX

Start FastDOSBox : pi@raspberrypi ~ $ fastdosbox

Under the DOS prompt in FastDOSBox : Z:\> imgmount 2 /home/pi/Images/windows-hd.img -size 512,63,16,255 -t hdd -fs none Drive number 2 mounted as /home/pi/Images/windows-hd.img Z:\> boot /home/pi/Images/msdos622.img Starting msdos... A:\> c: C:\> cd wininst C:\WININST>setup

And then the Windows installer starts :

Version 1.0 – May 2013, Author : Franck / NoRiscNoFun , [email protected] – twitter : @Noriscnofun1