Install FreeDOS 1.2 with MS Client 3.0

If you want to build a working FreeDOS 1.2 with MS Client in VirtualBox from scratch, you need:

Prerequisites:

  • The FD12CD.ISO FreeDOS 1.2 install CD,
  • the NDIS driver PCNTND for the Am79C973 network card ,
  • DIS_PKT9, a “shim”, that makes the NDIS driver act as packet driver.

And three files from Microsoft:

Sometimes “ftp.microsoft.com” is hard to reach. An image of the site with all its files can found in archive.org.

If you own the Windows NT 4.0 CD, create the Network Client disks with “Network Client Administrator” – “Make Installation Disk Set“. 

Store the files

Insert the FreeDOS CD and install FreeDOS in VirtualBox. Choose VHD as image type. Read the freedos wiki for details.

Afterwards it is important to Power the virtual machine OFF.
(Do not choose the option: “Save the machine state”).

  • Mount the VHD according to the wiki.
  • Make an install directory „C:\SOFTWARE

Now make subdirectories and copy the drivers into them:

  • Unpack PCNTND.CAB to C:\SOFTWARE\PCNTND
  • Unpack DIS_PKT9.ZIP to C:\SOFTWARE\DIS_PKT9
  • Put WG1049.EXE in C:\SOFTWARE\WG1049
  • Put DSK3-1.EXE and DSK3-2.EXE in C:\SOFTWARE\MSC.

Now it is important again to unmount (eject) the VHD! 

The host should not access the image, while it is live in VirtualBox. Otherwise the image might get corrupted.

MS Client Setup

  • Boot FreeDOS and do: cd C:\SOFTWARE\MSC
  • Run both *.EXE files. Let the second one overwrite the two files which were double on the floppies.
  • Run SETUP.EXE from the same directory.
  • Let it install itself into C:\NET.
  • For now choose the „Advanced Micro Devices AM2100/AM1500T“ driver.

  • Let setup change the buffers
  • Choose a username, f.i. „freedos

Do NOT confirm your settings with „The listed options are correct“. Instead: Choose „Change Network Configuration“ and remove the „NW Link IPX Compatible Transport“.


Replace it with „Microsoft TCP/IP“.

You can confirm the rest with „Network configuration is correct“ and „The listed options are correct“.

Please do NOT reboot your FreeDOS machine. Press F3 instead. We have to copy the other drivers to C:\NET and change a few configuration files.

Now we install Microsofts MS Client patch. It enables MS Client to provide network shares. Most people will want this. Command:

    • cd C:\NET.
    • move net.exe net.old
    • move net.msg netmsg.old
    • move neth.msg neth.old
    • cd C:\SOFTWARE\WG1049
    • Run: WG1049.EXE
    • copy NET*.* C:\NET

We need the NDIS driver for our network card:
cd C:\SOFTWARE\PCNTND
copy *.* C:\NET

And the packet driver converter:
cd C:\SOFTWARE\DIS_PKT9
copy *.* C:\NET

Configuration:

Make a copy of the old configuration files:
copy C:\AUTOEXEC.BAT C:\AUTOEXEC.OLD
copy C:\AUTOEXEC.BAT C:\AUTOEXEC.OLD
copy C:\FDCONFIG.SYS C:\FDCONFIG.OLD
move C:\CONFIG.SYS C:\CONFIG.OLD
copy C:\NET\PROTOCOL.INI C:\NET\PROTOCOL.OLD
copy C:\NET\SYSTEM.INI C:\NET\SYSTEM.OLD

  • Shutdown the FreeDOS machine.
  • Mount the VHD file.
  • Replace the configuration with these files:

C:\AUTOEXEC.BAT

@ECHO OFF
SET DOSDIR=C:\FDOS
SET LANG=EN
SET TZ=UTC
SET PATH=%dosdir%\BIN
if exist %dosdir%\LINKS\NUL SET PATH=%path%;%dosdir%\LINKS
SET NLSPATH=%dosdir%\NLS
SET HELPPATH=%dosdir%\HELP
SET TEMP=%dosdir%\TEMP
SET TMP=%TEMP%
SET BLASTER=A220 I5 D1 H5 P330
SET DIRCMD=/P /OGN /Y
SET COPYCMD=/-Y

IF "%config%"=="4" GOTO END

LH FDAPM APMDOS
IF "%config%"=="2" LH SHARE
rem IF EXIST %DOSDIR%\BIN\DOSLFN.COM LH DOSLFN
REM NLSFUNC %dosdir%\BIN\COUNTRY.SYS
REM DISPLAY CON=(EGA),858,2)
REM MODE CON CP PREP=((858) %dosdir%\CPI\EGA.CPX)
REM KEYB US,858,%dosdir%\bin\keyboard.sys
REM CHCP 858
REM MKEYB UK

IF "%config%"=="5" GOTO NET

DEVLOAD /H /Q %dosdir%\BIN\UDVD2.SYS /D:FDCD0001

REM MOUSE
CTMOUSE

SHSUCDX /QQ /D3
REM LH SHSUCDHD /QQ /F:FDBOOTCD.ISO
REM DEVLOAD /H /Q %dosdir%\BIN\UIDE.SYS /H /D:FDCD0001 /S5
SHSUCDX /QQ /~ /D:?SHSU-CDR,D /D:?SHSU-CDH,D /D:?FDCD0001,D /D:?FDCD0002,D /D:?FDCD0003,D

MEM /C /N
SHSUCDX /D

GOTO END

:NET
SET PATH=%PATH%;C:\NET
LH SHARE
LH C:\NET\net initialize
C:\NET\netbind.com
rem LH C:\NET\umb.com
C:\NET\tcptsr.exe
C:\NET\tinyrfc.exe
LH C:\NET\nmtsr.exe
rem C:\NET\emsbfr.exe
C:\NET\DNR.EXE
LH C:\NET\net start


:END
SET AUTOFILE=%0
SET CFGFILE=C:\FDCONFIG.SYS
alias reboot=fdapm warmboot
alias reset=fdisk /reboot
alias halt=fdapm poweroff
alias shutdown=fdapm poweroff
alias cfg=edit %cfgfile%
alias auto=edit %0

set OS_NAME=FreeDOS
set OS_VERSION=1.2

if exist %dosdir%\bin\fdnet.bat call %dosdir%\bin\fdnet.bat start
if exist %dosdir%\bin\welcome.bat call %dosdir%\bin\welcome.bat

C:\FDCONFIG.SYS

SET DOSDIR=C:\FDOS

!COUNTRY=001,858,C:\FDOS\BIN\COUNTRY.SYS
!LASTDRIVE=Z
!BUFFERS=20
!FILES=40
!MENUCOLOR=7,0

MENUDEFAULT=5,5
MENU 1 - Load FreeDOS with JEMMEX, no EMS (most UMBs), max RAM free
MENU 2 - Load FreeDOS with EMM386 (Expanded Memory) and SHARE loaded
MENU 3 - Load FreeDOS without drivers (Emergency Mode)
MENU 4 - Load FreeDOS low with some drivers (Safe Mode)
MENU 5 - Load FreeDOS with MS Client

124?DOS=HIGH
12?DOS=UMB
124?DOSDATA=UMB
1?DEVICE=C:\FDOS\BIN\JEMMEX.EXE NOEMS X=TEST I=TEST NOVME NOINVLPG
234?DEVICE=C:\FDOS\BIN\HIMEMX.EXE
2?DEVICE=C:\FDOS\BIN\JEMM386.EXE X=TEST I=TEST I=B000-B7FF NOVME NOINVLPG

34?SHELL=C:\FDOS\BIN\COMMAND.COM C:\FDOS\BIN /E:1024 /P=C:\AUTOEXEC.BAT
12?SHELLHIGH=C:\FDOS\BIN\COMMAND.COM C:\FDOS\BIN /E:1024 /P=C:\AUTOEXEC.BAT

; These are the lines for MS Client
5?DOS=HIGH
5?DOS=UMB
5?DOSDATA=UMB
5?DEVICE=C:\FDOS\BIN\JEMMEX.EXE NOEMS X=TEST I=B000-B7FF I=C800-EFFF NOVME NOINVLPG
5?VERSION=6.22
5?STACKS=9,256
5?FILES=20
5?device=C:\NET\ifshlp.sys
5?LASTDRIVE=Z
5?SHELLHIGH=C:\FDOS\BIN\COMMAND.COM C:\FDOS\BIN /E:1024 /P=C:\AUTOEXEC.BAT

C:\NET\PROTOCOL.INI

[network.setup]
version=0x3110
netcard=PC_CARD,1,PC_CARD,1
transport=tcpip,TCPIP
lana0=PC_CARD,1,tcpip

[TCPIP]
NBSessions=6
; SubNetMask0=255 0 0 0
; IPAddress0=0 0 0 0
DisableDHCP=0
DriverName=TCPIP$
BINDINGS=PC_CARD
LANABASE=0

[PC_CARD]
DriverName=PCNTND$

[protman]
DriverName=PROTMAN$
PRIORITY=MS$NDISHLP

; [MS$NDISHLP]
; DriverName=ndishlp$
; BINDINGS=PC_CARD

[PKTDRV]
drivername=PKTDRV$
bindings=PC_CARD
intvec=0x60
chainvec=0x66

C:\NET\SYSTEM.INI

[network]
sizworkbuf=1498
filesharing=yes
printsharing=yes
autologon=no
computername=FREEDOS
lanroot=C:\NET
username=FREEDOS
workgroup=WORKGROUP
reconnect=no
dospophotkey=N
lmlogon=0
logondomain=WORKGROUP
preferredredir=full
autostart=full
maxconnections=8

[network drivers]
netcard=pcntnd.dos
transport=tcpdrv.dos,nemm.dos,dis_pkt9.dos
devdir=C:\NET
LoadRMDrivers=yes

[386enh]
TimerCriticalSection=5000
UniqueDosPSP=TRUE
PSPIncrement=2

[Password Lists]
*Shares=C:\NET\Shares.PWL
FREEDOS=C:\NET\FREEDOS.PWL

C:\NET\TCPUTILS.INI

[tcpglobal]
drivername=GLOBAL$
hostname=username

[sockets]
drivername=SOCKETS$
bindings=TCPIP
numsockets=4
numthreads=32
poolsize=3200
maxsendsize=1024

[telnet]
drivername=TELNET$
bindings=TCPIP
nsessions=0
max_out_sends=0


[dnr]
drivername=DNR$
bindings=TCPIP

Learn more about configuring MS Client and NDIS drivers.

After changing the configuration files above:

  • Reboot.

Clean up

If everything works:

  • Remove the old configuration files.
  • Delete the C:\SOFTWARE directory.

Two more things

If you just want to use MS Client with FreeDOS 1.2, you are good to go with the configuration above.

But I suggest two more small changes:

  1. A DHCP client (freeware) that updates the configuration files for other DOS networking programs at startup.
  2. The old memory manager (Open Source) from FreeDOS 1.0. (Some users say it’s still running more stable in VirtualBox).

For making these changes, please:

  • Download the freeware DDHCP from Dave Dunfield’s website.
  • Download EMM386.EXE and HIMEM.EXE
  • Shut down the virtual machine.
  • Mount the VHD image file.
  • Unpack DDHCP.ZIP into C:\UTIL\DDHCP.
  • Copy the two files EMM386.EXE and HIMEM.EXE from the \BIN directory of EMMX226.ZIP into C:\UTIL\EMM386.

Unmount the VHD and boot the FreeDOS virtual machine.

DHCP

To enable DHCP:

  • At the DOS prompt, command:
    SET WATTCP.CFG=%dosdir%
    SET MTCPCFG=%dosdir%\MTCP.CFG
  • Create a file C:\FDOS\MTCP.CFG with a line:
    packetint 0x60
  • Create an empty file C:\FDOS\WATTCP.CFG.
  • Run: C:\UTIL\DDHCP\DDHCP.COM /M /W /F /R

DDHCP retrieves the network configuration and writes it into MTCP.CFG and WATTCP.CFG.

  • To repeat this at every startup, add the following lines to the end of the section :NET in AUTOEXEC.BAT:

    SET WATTCP.CFG=%dosdir%
    SET MTCPCFG=%dosdir%\MTCP.CFG
    C:\UTIL\DDHCP\DDHCP.COM /M /W /F

Note: Your FreeDOS machine will get two IP-addresses: One for Microsofts TCP/IP, one for other DOS networking programs.

EMM386

If you prefer to use the old memory manager of FreeDOS 1.0 instead of “JEMMEX”, the default in FreeDOS 1.2, edit FDCONFIG.SYS.

Replace the line:

5?DEVICE=C:\FDOS\BIN\JEMMEX.EXE NOEMS X=TEST I=B000-B7FF I=C800-EFFF NOVME NOINVLPG

with these two:

5?DEVICE=C:\UTIL\EMM386\HIMEM.EXE
5?DEVICE=C:\UTIL\EMM386\EMM386.EXE NOEMS X=EF00-EFFF

And reboot.

Ulrich Hansen