• Please review our updated Terms and Rules here

Getting NDIS->PKT shim to work for mTCP

djfitzgerald

Experienced Member
Joined
Dec 28, 2018
Messages
73
Location
Western New England
Long story short, I can't get mTCP to recognize the NDIS packet driver shim that appears to be correctly installing in my MS-DOS 5 based 5170. Read on for details...

I have an Ungermann-Bass NIUpc/EOTP card and am trying to get a packet driver working for it so that I can use mTCP. I cannot find a native packet driver for the card, but I did find NDIS drivers; it turns out that this card is also natively supported by Microsoft LAN Manager 2.2c for MS-DOS. Following the directions on mbrutman's website and the latest mTCP User Documentation, I went and found Joe Doupnik and Dan Lanciani's DIS_PKT NDIS packet driver shim on this website.

Following the instructions that I could find in the DIS_PKT v1.09 *.zip file, and in the DIS_PKT v1.11 assembly source file, I configured my CONFIG.SYS thusly:
Code:
FILES= 30
DEVICE=C:\himem.sys
DEVICE=C:\DOS\SETVER.EXE
DOS=HIGH
DEVICE=C:\WINDOWS\smartdrv.sys 2048 512
DEVICE=C:\WINDOWS\ega.sys

LASTDRIVE=Z
DEVICE=C:\NET\LANMAN.DOS\DRIVERS\PROTMAN\PROTMAN.D OS /i:C:\NET\LANMAN.DOS
DEVICE=C:\NET\LANMAN.DOS\DRIVERS\ETHERNET\UBNEI\UB NEI.DOS
DEVICE=C:\NET\DISPKT\dis_pkt.dos
DEVICE=C:\NET\LANMAN.DOS\DRIVERS\PROTOCOL\tcpip\ne mm.dos

I then configured my AUTOEXEC.BAT like this:
Code:
@ECHO OFF
PROMPT $p$g
PATH C:\MOUSE;C:\WINDOWS;C:\DOS;C:\NORTON;
SET LMOUSE=C:\MOUSE
C:\MOUSE\MOUSE
FR /SAVE
SET TEMP=C:\DOS
C:\DOS\SHARE.EXE

@REM ====[ Network configuration section ]=========
SET PATH=C:\NET;C:\NET\LANMAN.DOS\BASIC;%PATH%
SET MTCPCFG=C:\NET\TCP.CFG

Next, I modified the Lan Manager's PROTOCOL.INI to include the sections needed for the packet driver:
Code:
[PROTOCOL_MANAGER]
    DriverName=PROTMAN$
    Dynamic = YES
    Priority = NETBEUI
 
[PKTDRV]
    DriverName=PKTDRV$
    Bindings="UBNEITP_NIF"
    INTVEC=0x60
    CHAINVEC=0x66
    Novell=N

[UBNEITP_NIF]
    DriverName = UBNEI$
    AdapterType = NIUpc/EOTP
    MemoryWindow = 0xD8000
    IO_Port = 0x368
    IRQ_Level = 5
    SlotNumber = 4
    MaxRequests = 6
    MaxTransmits = 6
    ReceiveBufSize = 600
    MaxMulticast = 16
    ReceiveMethod = ReceiveLookahead
    ReceiveBuffers = 64

Lastly, I created a simple TCP.CFG file for mTCP:
Code:
PACKETINT 0x60

When I start my system, I see the following output from LAN Manager and DIS_PKT:
Code:
MS DOS LAN Manager Protocol Manager v2.0

UBNEI$: Initialization started.

UBNEI$: Initialization succeeded.
MAC/DIS to Packet Driver Converter loaded. Version 1.11
Copyright 1991 FTP Software, Inc.  All rights reserved.
 v1.07 by Joe R. Doupnik, jrd@cc.usu.edu, Utah State Univ, 18 May 1991
 v1.09 by Joe R. Doupnik, jrd@cc.usu.edu, Utah State Univ, 3 Nov 1991
 v1.08, v1.10, v1.11 by Dan Lanciani, ddl@danlan.com
Microsoft DOS TCP/IP NEMM Driver 1.0

So far so good. But here is my problem... when I try to run the mTCP DHCP software, I get this error:
Code:
C:\>dhcp
mTCP DHCP Client by M Brutman (mbbrutman@gmail.com) (C)opyright 2008-2020
Version: Mar  7 2020

Init: could not setup packet driver
Could not initialize TCP/IP stack


C:\>

Does anybody have any suggestions as to what may be going on?
 
Last edited:
For debugging, I'd suggest to forget about mtcp for now.

Install the etherdfs package (it talks to packet driver, uses 0x60 by default, and doesn't use a tcp stack)

Run
Code:
etherdfs :: C-D
and see what happens.

If packet driver does not work, etherdfs will complain about it, thus you'll know why mtcp's dhcp doesn't work either.

If packet driver does work, etherdfs will only complain about there not being a server in the network. a problem you can easily solve by running the etherdfs server on some linux machine in the network, should you want to use etherdfs (I like it).

And thus you'll know it's a matter of "dhcp" not seeing the configuration for mtcp, for whatever reason. Not finding the file (looking at some other ENV rather than what you set) or not being able to parse it (syntax wrong somehow, or maybe it needs an extra blank line it doesn't have or something else silly).
 
Last edited:
Code:
C:\NET\ETHERDFS>etherdfs :: C-D
Packet driver initialization failed.

Well that answers that question. Now I need to figure out why the heck DIS_PKT is failing me. Anybody have any experience in this area?
 
Code:
C:\NET\ETHERDFS>etherdfs :: C-D
Packet driver initialization failed.

Well that answers that question. Now I need to figure out why the heck DIS_PKT is failing me. Anybody have any experience in this area?

I have it working (totally unnecessary, but was messing around) with ne2000 of all things, on a floppy. I can copy/paste config for that to compare. I'll do this in a while, once I get the machine up.
 
OK, so I'm looking at this:

in fdconfig.sys:
Code:
DEVICEHIGH=A:\PROTMAN.DOS /I:A:\
DEVICEHIGH=A:\DE200.DOS
DEVICEHIGH=A:\DIS_PKT.DOS

in protocol.ini:
Code:
; protocol.ini session for DE-200 Driver
[protman]
DriverName=PROTMAN$

[DE200]
Drivername = de200$
ioaddress = 0x300
interrupt = 11
basememory = 0xd000

[PKTDRV]
drivername=PKTDRV$
bindings=DE200
intvec=0x60

in fdauto.bat:
Code:
NETBIND
etherdfs :: C-D

From a glance at your pasted configuration... are you running NETBIND?
 
Back
Top