Help on installing Windows '95 within Bochs
Author: Kevin Lawton

#
Help on installing Windows '95 within Bochs
(1/18/98 KPL)

    NOTE: Please read message regarding licensing of software packages
        which you run within Bochs, and use of temporary files created to
        facilitate installation. 3rd Party Software Licensing and Temp orary Files

    (Using Windows95 for PCs without Windows, 1.44M floppy distribution)

    Additional info may be gleaned from the previous documentation
    on installing Windows '95, which had some info on installing
    from a CD distribution, or update distribution.  I haven't had
    a chance to update that info yet, and will soon.  If you want
    to have a look, check out Windows '95.  Though, please
    read through this page for any changes.

    Preparing for the install
    =========================

    Copy the floppies to files on your workstation.  Keep in mind,
    they are of 2 formats - 1.44M & 1.680M.  The boot disk and
    disk#1 are 1.44M.  The rest of them (disk#2..disk#13) are
    1.680M format.  You may need a Linux workstation to do this
    part, though it should be possible on others if the OS provides
    a way to specify alternate floppy media geometries.

      format   tracks   heads  sectors/track
      1.44M:     80       2        18
      1.680M:    80       2        21

    +- On linux, you achieve this, via the 'setfdprm' command, and
    |  associated parameters in the '/etc/fdprm' file.  Here's an
    |  excerpt from that file:
    |
    |    # /etc/fdprm  -  floppy disk parameter table
    |    1440/1440	2880    18   2  80    0 0x1B 0x00 0xCF     0x6C
    |    1680/1440	3360	21   2  80    0 0x0C 0x00 0xCF     0x6C # ?????
    |
    |  To copy the floppies, you would do something like:
    |
    |    linux-> cp /dev/fd0 win95_boot (after inserting the boot diskette)
    |    linux-> cp /dev/fd0 win95_d1   (after inserting disk #1)
    |
    |  Then switch to the alternate 1.680M geometry:
    |
    |    linux-> setfdprm -p /dev/fd0 1680/1440
    |    linux-> cp /dev/fd0 win95_d2   (after inserting disk #2)
    |    linux-> cp /dev/fd0 win95_d3   (after inserting disk #3)
    |    ...
    |    linux-> cp /dev/fd0 win95_d13  (after inserting disk #13)
    |
    |  And revert back to the default 1.44M geometry if desired
    |
    +-   linux-> setfdprm -p /dev/fd0 1440/1440

    If you have instructions for doing the same on other platforms,
    please email them to me (kevin@bochs.com), and I'll include
    them here.

    You should end up with something similar to the following listing:

      -rw-r--r--   1 user     group    1474560 Oct 31 12:04 win95_boot
      -rw-r--r--   1 user     group    1474560 Jul 15  1997 win95_d1

      -rw-r--r--   1 user     group    1720320 Jul 15  1997 win95_d2
      -rw-r--r--   1 user     group    1720320 Jul 15  1997 win95_d3
      -rw-r--r--   1 user     group    1720320 Jul 15  1997 win95_d4
      -rw-r--r--   1 user     group    1720320 Jul 15  1997 win95_d5
      -rw-r--r--   1 user     group    1720320 Jul 15  1997 win95_d6
      -rw-r--r--   1 user     group    1720320 Jul 15  1997 win95_d7
      -rw-r--r--   1 user     group    1720320 Jul 15  1997 win95_d8
      -rw-r--r--   1 user     group    1720320 Jul 15  1997 win95_d9
      -rw-r--r--   1 user     group    1720320 Jul 15  1997 win95_d10
      -rw-r--r--   1 user     group    1720320 Jul 15  1997 win95_d11
      -rw-r--r--   1 user     group    1720320 Jul 15  1997 win95_d12
      -rw-r--r--   1 user     group    1720320 Jul 15  1997 win95_d13

    Create a hard disk image file.  For example, for a 62M disk with
    the following settings in '.bochsrc':

      diskc: file=62M, cyl=940, heads=8, spt=17

    use (940 * 8 * 17 * 512bytes-per-sector = 127840):

      unix-> dd if=/dev/zero of=62M bs=512 count=127840

    Setup your '.bochsrc' file.  For example:

      megs: 16
      boot: c
      diskc: file=62M, cyl=940, heads=8, spt=17
      floppya: 1_44=1.44, status=inserted
      vgaromimage: bios/VGABIOS-elpin-2.00A
      romimage: bios/BIOS-bochs-980118a (use newest one)
      log: ./bochs.out
      hga_update_interval: 300000
      keyboard_serial_delay: 200
      floppy_command_delay: 500

    You'll also need a floppy image file, sort of a working file,
    which you copy the distribution files into, one by one, as
    they are needed.  This is the file you point the 'floppya:'
    directive in the '.bochsrc' file to.  Copy the Win'95 boot disk
    to your floppy working file ('1.44' in the '.bochsrc' example):

      unix-> /bin/cp -f win95_boot 1.44

    Beginning the install
    =====================

    Fire up bochs and boot the Win'95 boot diskette:

      unix-> bochs boot:a

      Microsoft Windows 95 Setup

    Quit Setup to DOS to use FDISK.

      '[F3]', '[F3]'

    FDISK C: to use the whole disk for the primary partition.

      A:\> fdisk
      '[Return]'
      '[Return]'
      '[Return]'

    Power down Bochs - click the mouse on the 'Power' button
    in the GUI toolbar.  Fire up bochs again.

      unix-> bochs boot:a

      Microsoft Windows 95 Setup

    Quit Setup to DOS to use FORMAT.

      '[F3]', '[F3]'
      A:\> format /u c:
      (answer 'Y' and enter a volume label as desired)

    Click on the floppy A icon in the GUItoolbar.  You should
    see an 'X' through it signifying it's logically ejected.
    Now we're ready for Disk1:

      unix-> /bin/cp -f win95_d1 1.44

    Click on the floppy A icon again to logically insert
    disk1.  The 'X' should go away.  Now run SETUP.EXE which is
    on disk1.

      A:\> setup /C
      To continue ...
      '[Return]'
      Welcome to Windows 95 Setup!...
      '[Return]'  (to select Continue button)
      Please insert "Disk2"...

    From now on, keep in mind that you must click the floppy A
    icon to tell bochs you're ejecting the floppy (in theory)
    BEFORE you copy over your floppy working file on your
    workstation, and click on it again AFTERWARDS, to insert it.
    This is most critical, if you transition from images of
    floppies with different format. (disk1=1.44M, disk2=1.680M)
    You're giving bochs a chance to look at the size of the
    image file, and switch to a different sectors-per-track.
    Also, in the future, you'll be activating the floppy
    hardware media changed line which I haven't implemented yet.

      (Click the floppyA icon to eject)
      unix-> /bin/cp -f win95_d2 1.44
      (Click the floppyA icon to insert)

      '[Return]'  (select OK button)
      Software License Agreement
      '[Tab]'
      '[Return]'  (select Yes button)
      Windows 95 Setup Wizard
      '[Return]'  (select Next button)
      Choose Directory
      '[Return]'  (select Next button)
      Setup Options
      '[Down-Arrow]', '[Down-Arrow]', '[Down-Arrow]' (selects custom)
      '[Return]'  (select Next button)
      User Information
      Name:
      "Your name here"
      '[Tab]'
      Company:
      "Your company here"
      '[Return]'
      Key Identification
      Key:
      "123-4567890"  (from your Certificate of Authenticity)
      '[Return]'  (select Next button)
      Product Identification
      '[Return]'  (select Next button)
      Analyzing Your Computer
      '[Down-Arrow]'  (No, I want to modify the hardware list)
      '[Return]'  (select Next button)
      Analyzing Your Computer

    Let me just note that you can get around in this screen,
    by the Down-Arrow key, Tab to move to a different area,
    and space to toggle selection.  For some options, it's
    much easier to first unselect every device of that
    type, than select the one you want.

    The ultimate selection you're trying to achieve is:

      CD-ROM Drive                    (none)
      Display                         Default Standard VGA Display Adapter
      Floppy Disk Controllers         Standard Floppy Controller
      Hard Disk Controllers           Standard IDE/ESDI Hard Disk Controller
      Keyboard                        Keyboard
      Mouse                           (none)
      Network Adpater                 (none)
      PCMCIA Socket                   (none)
      Ports                           (none)
      SCSI Controllers                (none)
      Sound, MIDI, or Video...        (none)

    The exact sequence I used was:

      [Space]  (unselect all CD-ROMs)
      [Down-Arrow]
      [Space]  (unselect all Displays)
      [Tab]  (move to Manufacturer and model section)
      13 [Down-Arrows] (Default Standard VGA Display Adapter)
      [Space] (to select this adapter)
      4 [Tabs] (get back to Hardware types section)
      2 [Down-Arrows] (get to Hard Disk Controllers)
      [Space] (to unselect all Hard Disk Controllers)
      [Tab]   (to get to Manufacturer and model section)
      3 [Down-Arrows] (get to Standard IDE/...)
      [Space] (to select this device)
      4 [Tabs] (get back to Hardware types section)
      2 [Down-Arrows] (get to Mouse)
      [Space] (to unselect all Mouse types)
      [Down-Arrow] (get to Network Adapter)
      [Space] (to unselect all Network Adapters)
      [Down-Arrow] (get to PCMCIA Socket)
      [Space] (to unselect all PCMCIA Socket types)
      [Down-Arrow] (get to Ports)
      [Space] (to unselect all Ports)
      [Down-Arrow] (get to SCSI Controllers)
      [Space] (to unselect all SCSI Controllers)
      [Down-Arrow] (get to Sound, MIDI...)
      [Space] (to unselect all Sound, MIDI...)
      3 [Tabs] (get to Next button)
      [Return]  (select Next button)

      Analyzing Your Computer
      [Return] (select Next button)

      Get Connected
      [Return] (select Next button)

      Select Components

    Well, you have to decide this one.  Remember, use [Down-Arrow],
    [Tab], and [Space].  [Tab] to the Next button when you're done
    and type [Return].

      Network Configuration
      '[Return]' (to take default config, or change it as you want)

      Computer Settings
      '[Return]' (to take current settings)

      Startup Disk

    If you do NOT want to create a Startup Disk, you could type

      '[Down-Arrow]'  (select No, I do not want a startup disk)
      '[Return]'      (select Next button)

    If you DO want to create a Startup disk.

      '[Return]'      (select Next button)

    Either way, the following appears,

      Start Copying Files
      '[Return]'

    +- If you optioned to create a Startup Disk, the following appears:
    |
    |    Label a disk "Windows 95 Startup Disk"...
    |
    |  Click the floppyA icon to eject.  Now copy any floppy image file
    |  which has a 1.44M format on it, onto your floppy working file.
    |  Win '95 will erase any files on it.  Use the 'win95_boot' file,
    |  since it's a 1.44M format.
    |
    |    unix-> /bin/cp -f win95_boot 1.44
    |
    |  Click on floppyA to insert.
    |
    |    '[Return]'
    |    Setup has finished creating your startup disk...
    |    '[Return]'  (select OK button)
    |
    |    Please insert the disk labeled 'Windows 95 Disk 2'...
    |
    |  Click the floppyA icon to eject.
    |  Copy the working floppy disk image file to something signifying
    |  it's the startup disk.  Then copy the disk#2 image file onto the
    |  working file.
    |
    |    unix-> cp 1.44 win95_startup
    |    unix-> /bin/cp -f win95_d2 1.44
    |
    |  Click on floppyA to insert.
    |
    +-   '[Return]'  (select OK button)

    In any case (startup disk or not), the rest is very methodical.

    +->  Please insert the disk labeled 'Windows 95 Disk 3'...
    |
    |    (Click the floppyA icon to eject.)
    |      unix-> /bin/cp -f win95_d3 1.44
    |    (Click the floppyA icon to insert.)
    |
    |    '[Return]'  (select OK button)
    |
    |  Just repeat this process, until SETUP has asked for all
    +- 13 floppies in the distribution.  Of course, change
       'win95_d3' to each number in the succession; win95_d4,
       win95_d4, ... , win95_d13.

    After asking for all the floppy disks in the distribution,
    Windows '95 will let you know it's going to restart your
    computer.  Acknowledge this, and then bochs will bomb upon
    attempt to reboot.

    Fire up bochs again.  The 'boot:c' is not necessary if
    you have the 'boot: c' directive in your '.bochsrc' file.

      unix-> bochs boot:c

    You'll get a screen full of garbage text for a while Win '95
    updates your configuration files.  I'm not handling that
    text screen mode correctly.  Then the window switches to
    a blank graphics screen (say 2 to 5 minutes).

      Windows 95 is now setting up your hardware and any Plug
      and Play devices you may have.

    You'll see the magnifying glass circulating about the
    picture (icon) representing your computer for quite
    awhile.

      Windows is now setting up the following items...

      Setting up Control Panel
      Programs on the Start menu
      Windows Help
      MS-DOS program settings
      Time zone

    You can play with the Time Zone if you want.  I just
    accept the one that comes up.  I like being on Tijuana
    time anyhow!

      '[Return]'

      Set up printer

    Bochs doesn't support printers yet, so Cancel this

      '[Tab]'
      '[Return]'  (select Cancel button)

      Windows 95 is now finalizing settings for your computer

    Windows '95 should now display the 'Welcome to Windows 95'
    screen, and give you one of it's helpful 'Did you know' tips.
    My suggestion, is for you to shutdown Win '95 at this point,
    and make a backup copy of your hard drive image file.
    Otherwise, you are done, though you may want to check
    out the section on getting rid of the 'splash' screen upon
    boot.  In that case, shutdown is necessary also.

      '[Return]'  (selects Close button)
      '[Ctrl]', '[Esc]', '[^Esc]', '[^Ctrl]'

    It's helpful to give slight intentional delays when typing
    multi-key sequences like the one above.  The '^' means a
    release of that key.

      'u'  (shortcut for Shut Down)

      Shut down Windows...
      '[Return]'  (select Yes button)

    Your window changes to a different size graphics mode.  The
    message 'It is now safe to shutdown your computer' will be
    displayed briefly, but then the screen goes blank due to
    bochs not handling something in that graphics mode correctly.

    Power down by clicking on the 'Power' button in the bochs
    GUI toolbar.  The bochs window disappears as bochs stops
    execution.  Make a backup copy.

      unix-> cp 62M 62M.win95.installedOK

    Getting rid of Win '95 'splash' screen upon bootup.
    ===================================================

    When Win '95 boots up, it typically displays the intro
    screen while it boots (splash screen).  It uses a graphics
    mode I don't handle well, mostly because it's not important
    enough to spend the time on it.  You can tell Win '95
    not to display this screen anyways, which I prefer.

    Using the MTOOLS package, if you have a drive letter
    associated with your hard disk image file, for example:

      ~/.mtoolsrc: drive c: file="/path/62M" partition=1

    You can look at and modify the contents of your drive
    image file, using commands on your workstation.

    WARNING: You MUST power down bochs if you are running
    WARNING: any software that does any kind of disk caching!!!
    WARNING: Yes, Windows '95 does disk caching.

    Look at the attributes associated with c:/MSDOS.SYS.

      unix-> mattrib c:/MSDOS.SYS

    Copy it to your workstation, with the text mode translation
    flag.

      unix-> mcopy -t c:/MSDOS.SYS .

    Edit the file, adding "Logo=0" under the Options section.
    Save the file.

      [Options]
      BootMulti=1
      BootGUI=1
      Network=0
      Logo=0      <------- add this line

    Copy it back to your disk image.  Restore proper
    attributes to what they were before.  For example.

      unix-> mcopy -t MSDOS.SYS c:/
      unix-> mattrib -a +s +h +r c:/MSDOS.SYS

    Finishing up after the install
    ==============================

    You should now delete any temporary copies of the floppy disk
    image files, used to facilitate installation.

      unix-> /bin/rm -i win95_boot win95_d*

    OK, you're done!!!  Make sure you tell bochs to boot the
    hard drive either in '.bochsrc' or by the 'boot:c' option,
    and fire it up.

      unix-> bochs

    Enjoy!
    -Kevin Lawton