home *** CD-ROM | disk | FTP | other *** search
/ Columbia Kermit / kermit.zip / mskermit / msvibm.net < prev    next >
Text File  |  2020-01-01  |  65KB  |  1,477 lines

  1. File NETWORKS\SETUP.DOC                           January 1995
  2.  
  3. SETTING UP YOUR PC FOR MS-DOS KERMIT NETWORKING
  4.  
  5. Applies to:  MS-DOS Kermit 3.14
  6. Authors:     Joe R. Doupnik, Utah State University
  7.          Frank da Cruz, Columbia University
  8.  
  9. Last updated: Wed May 31 09:45:25 1995
  10.  
  11. Revised June 2002:
  12.   to emphasize that all references to Windows are to 16-bit Windows 3.x.
  13.  
  14.  
  15. ABSTRACT
  16.  
  17. Applying mainly to TCP/IP, but with some discussion of STARLAN, etc, this file
  18. concentrates on the low-level network configuration of your PC, network board
  19. interface standards, drivers and shims, Windows 3.x, memory management, TCP/IP
  20. configuration, and how to get MS-DOS Kermit working on your network.
  21.  
  22.  
  23. CHAPTER 0. GENERAL PRINCIPLES
  24.  
  25. Specific Network Boards:
  26.  
  27.   Kermit does not support specific network boards.  It speaks to network
  28.   boards only through interpreters known as drivers, and only those drivers
  29.   that present certain standard interfaces to the application (Kermit).
  30.  
  31. The Zeroth Law of Kermodynamics (pay attention):
  32.  
  33.   ONLY ONE PROTOCOL STACK OF A GIVEN KIND PER NETWORK BOARD.
  34.  
  35. Corollary:
  36.  
  37.   Only one TCP/IP-based application can use a LAN adapter at a time.
  38.  
  39. Some applications of this principle:
  40.  
  41.   You can't run Kermit's TCP/IP stack at the same time as (for example):
  42.   . LAN Workplace for DOS (LWP) (but Kermit can run over it)
  43.   . PC/TCP            (but Kermit can run over it)
  44.   . PC NFS
  45.   . Trumpet Winsock
  46.   . etc etc etc
  47.  
  48. Brief explanation: The board driver has little slots for each "protocol", such
  49. as IP, ARP, IPX, LAT, etc, one slot for each.  Each slot identifies the
  50. application that is using the given protocol on the board.  Now, the network
  51. packets also contain protocol types.  So if (say) an IP packet comes in, the
  52. driver looks up IP in its protocol slots, sees who owns it, and gives the
  53. packet to that application.  There is only one slot per protocol.
  54.  
  55. This is good because it allows multiple protocols to be active at once,
  56. for example IPX and TCP/IP (this is why Kermit can, say, transfer a file from
  57. a NetWare disk to a UNIX computer via TCP/IP, when the NetWare server and the
  58. UNIX system are both being accessed by Kermit at the same time through the
  59. same Ethernet board).
  60.  
  61. But... if you need to run multiple TCP/IP applications, i.e. different
  62. applications that use the *same* protocol, you'll have to unload one before
  63. you can start the other.  For example, you can't make a TCP/IP connection
  64. with Kermit to transfer a file from an NFS-mounted disk.
  65.  
  66. If you need to run them simultaneously, then you have the following choices:
  67.  
  68.  . Install a second network board (recommended) (really, they're cheap).
  69.  . Tell one, if possible, to use the other's TCP/IP stack for transport.
  70.    More about this later on.
  71.  . Look into something called PKTMUX, but please don't ask us about it.
  72.    We don't support it or recommend it.     But if it works for you, fine.
  73.    (We don't denigrate it either -- it is a heroic attempt at dealing
  74.    with the limitations of the PC platform, but it is very complicated,
  75.    and a short glance at the warnings and disclaimers at the beginning
  76.    of the manual will scare away all but the most courageous.)
  77.  
  78. Note, by the way, that TCP, UDP, and ICMP are not "protocols" at this level.
  79. The network driver software never sees them because they are encapsulated
  80. inside IP packets.
  81.  
  82. CHAPTER 1.  NETWORK DRIVERS USABLE BY KERMIT
  83.  
  84. MS-DOS Kermit 3.11 and later contains an extremely compact and fast built-in
  85. TCP/IP protocol implementation, including TELNET protocol, designed to run
  86. over any of the following types of network board drivers:
  87.  
  88.  1. A packet driver of the ETHERNET (1) or SLIP (6) class.
  89.  2. An ODI driver.
  90.  3. The Novell SLIP_PPP driver.
  91.  4. The Telebit PPP driver.
  92.  
  93. (1.1) PACKET DRIVERS
  94.  
  95. These provide a somewhat uniform interface between a wide variety of network
  96. boards and the application.  However, the application still must be aware of
  97. which kind of network technology is being used -- Ethernet, Token Ring,
  98. Arcnet, SLIP, etc.  Kermit knows about Ethernet and SLIP.  In order to use
  99. Kermit with a packet driver over some other kind of network board, such as
  100. Token Ring or Arcnet, you need an "Ethernet simulation" packet driver -- i.e.
  101. one that converts between its own networking method and Ethernet, tricking
  102. Kermit into thinking it has an Ethernet board.
  103.  
  104. The packet driver should be loaded in conventional memory from AUTOEXEC.BAT,
  105. or by hand when you need to use it.
  106.  
  107. The packet driver works as an extension of the application program, since they
  108. share the same memory.    To send a packet, the application puts it in a buffer,
  109. tells the packet driver where the buffer is, and tells it to send it.  The
  110. packet driver returns some kind of completion code.  When packets arrive from
  111. the outside, the packet driver gets an interrupt from the device, takes over
  112. the CPU, asks the application for a buffer, and copies the incoming data from
  113. the device to the buffer, and then taps the application on the shoulder to 
  114. let it know that the packet has arrived.  There are several incompatible
  115. "classes" of packet drivers: 1 (Ethernet), 2 (ProNet), 3 (Token Ring), ...,
  116. 5 (Appletalk), 6 (Serial Line), etc.  Kermit supports classes 1 and 6.
  117.  
  118. Packet drivers are usually provided with each network board by the vendor.
  119. There are also some free packet drivers (Cyrnwr Collection being the best
  120. known), including the one supplied on the Kermit disk for SLIP. 
  121.  
  122. This discussion has neglected what happens under Microsoft Windows 3.x, which
  123. is postponed until later. If you need to use Kermit to make TCP/IP connections
  124. from within Windows, don't forget to read CHAPTER 3: WINDOWS.
  125.  
  126. (1.2) ODI DRIVERS
  127.  
  128. ODI is Novell's Open Datalink Inteface, providing a uniform way for the
  129. application to talk to the network board, independent of which networking
  130. method it uses: Ethernet, Token Ring, etc.  MS-DOS Kermit supports this method
  131. directly.  That is, it talks directly to the ODI driver.
  132.  
  133. Direct use of ODI drivers permits Kermit's TCP/IP to run with several kinds of
  134. Ethernet frames: DIX/Blue-Book/Ethernet_II, Token Ring, Arcnet, and PCLan
  135. broadband.  No extra protocol "shim" is needed, but you must have ODI drivers
  136. from Novell or your network board vendor.
  137.  
  138. The mechanics are roughly the same as for packet drivers.  The driver
  139. configuration, however, is done differently.  Rather than feeding command-line
  140. parameters to the driver, a file called NET.CFG is created to give certain
  141. information not only to the driver, but also to the applications that use it.
  142.  
  143. ODI drivers generally come on a diskette packaged with your network board.
  144. Novell supplied drivers and ODI components are available from Compuserve
  145. and across the Internet from ftp.novell.com and its official mirror sites:
  146.  
  147.   BNUG FTP server, bnug.proteon.com [128.185.17.201]
  148.   University of Groningen, ftp.rug.nl [129.125.4.15]
  149.   University of Salford, ftp.salford.ac.uk [146.87.0.201]
  150.   Utah State University, netlab2.usu.edu [129.123.1.44],
  151.    netlab1.usu.edu [129.123.1.43]
  152.   Lincoln University, tui.lincoln.ac.nz [138.75.80.3]
  153.   National Research Council (Canada), novell.nrc.ca [132.246.160.4]
  154.  
  155. Example Ethernet NET.CFG file, using VLMs in this case
  156.  
  157. ; File NET.CFG for NW 4.0 and for VLMs
  158. ; Don't forget to say  lastdrive=z  in config.sys!
  159.  
  160. Netware dos requester
  161.     PB buffers=6
  162.     true commit=off        ; off=let server buffer writes
  163.     network printers=1    ; shrinks print.vlm, won't load it
  164.     average name length=24    ; shrinks connection table
  165.     load low conn=ON
  166.     load low ipxncp=ON
  167.     signature level=0    ; 0=don't load security.vlm
  168.     read only compatibility=on
  169.     first network drive=n
  170.     preferred server=edu-usu-netlab2
  171.     preferred tree=USU-TREE
  172.     name context="O=USU"
  173. ; VLM selection, order sensitive.
  174. ; For Bindery include bind and netx, omit nds.
  175. ;   Also preferred server is read for Bindery only.
  176. ; For Directory Services include nds, omit bind and netx.
  177. ;   Also preferred tree and name context are read for DS only.
  178.     use defaults=off    ; off=use explict list of vlms which follow
  179.     vlm=conn.vlm        ; Connection tables
  180.     vlm=ipxncp.vlm        ; NCP over IPX
  181.     vlm=tran.vlm        ; Transport services worker
  182.     vlm=security.vlm    ; Security, optional
  183. ;     vlm=nds.vlm        ; DS, NCP Directory Services
  184.     vlm=bind.vlm        ; Bindery, NCP
  185.     vlm=nwp.vlm        ; Transport services worker
  186.     vlm=fio.vlm        ; File i/o
  187.     vlm=general.vlm        ; General support routines
  188.     vlm=redir.vlm        ; Redirector
  189.     vlm=print.vlm        ; Print services, optional
  190.     vlm=netx.vlm        ; Bindery, shell compatibility
  191. ;    vlm=rsa.vlm        ; DS, RSA encryption, optional
  192. ;    vlm=auto.vlm        ; DS, autoreconnect/retry, optional
  193. ;    vlm=nmr.vlm        ; Managment responder, optional
  194.  
  195. Netx
  196.     show dots=on
  197.  
  198. ;# Below this line material is the same as for NetWare 3.x and for NETX
  199.  
  200. protocol KERMIT
  201.     bind ne2000
  202.  
  203. Link Support
  204.     Buffers    6 1600
  205.     MemPool    2048
  206.  
  207. Link Driver NE2000
  208.     INT 5
  209.     PORT 360
  210.     FRAME    Ethernet_II
  211.     Protocol IPX    8137    Ethernet_II
  212.     Protocol IP    0800    Ethernet_II
  213.     Protocol ARP    0806    Ethernet_II
  214.     Protocol RARP    8035    Ethernet_II
  215.  
  216. Please notice several things about this file. Items must be spelled as shown,
  217. indented items must be indented (with a tab for SMC drivers), and flush left
  218. items must be flush left. There is no, none, zero, creativity permitted in
  219. this material, and that applies especially to the indented protocol lines.
  220. IP is not IPX, so don't get them mixed up.  Please type carefully.
  221.  
  222. Ethernet clients must use Ethernet_II frames for TCP/IP work (IP, ARP, and
  223. RARP).    Token Ring clients will use TOKEN-RING_SNAP for the frame kind with
  224. IP, ARP, and RARP.  The protocol ident values are the same as above.
  225.  
  226. LINK DRIVER TOKEN
  227.      INT 3
  228.      FRAME TOKEN-RING
  229.      FRAME TOKEN-RING_SNAP
  230.      PROTOCOL IPX  E0    TOKEN-RING
  231.      Protocol IP   0800 TOKEN-RING_SNAP
  232.      Protocol ARP  0806 TOKEN-RING_SNAP
  233.      Protocol RARP 8035 TOKEN-RING_SNAP
  234.  
  235. Arcnet clients will use NOVELL_RX-NET for the frame kind, and the protocol
  236. ident values will be D4 for IP, D5 for ARP, and D6 for RARP, rather than 0800
  237. etc, as per RFC-1201.
  238.  
  239. LINK DRIVER SMCARCWS
  240.      INT 3
  241.      PORT 300
  242.      MEM D0000
  243.      Frame NOVELL_RX-NET
  244.      Protocol IPX  FA NOVELL_RX-NET
  245.      Protocol IP   D4 NOVELL_RX-NET
  246.      Protocol ARP  D5 NOVELL_RX-NET
  247.      Protocol RARP D6 NOVELL_RX-NET
  248.  
  249. Which board will Kermit (or IPX or other application) use if two or more boards
  250. are available? Although one would think the board could be selected by placing
  251. the Protocol IP, etc, lines under the desired Link Driver section, such is not
  252. the case; those lines tell LSL the frame kind to associate with the protocol
  253. (say IP) but not the board.  The frame lines are associated with particular
  254. boards, however.  By default, the application chooses "the first board"
  255. offering a suitable frame, regardless of whether or not the Protocol IP, etc,
  256. lines are present for that board. "First" refers not to the contents of NET.CFG
  257. but to the order in which board drivers are loaded at DOS level.  So the
  258. indented protocol lines tell ODI which frame a protocol needs, and a TYPE to
  259. use for recognizing packets, but the lines do not identify a particular board.
  260.  
  261. To target a particular board, a separate main section is used in NET.CFG.  The
  262. section starts with the word Protocol against the left margin and has Bind
  263. indented beneath it, like this -
  264.  
  265.     Protocol Kermit            Identifies Kermit section of NET.CFG
  266.         bind SMCPLUS        Bind to SMCPLUS board driver
  267.  
  268. When a board name is used more than once then the alternative form is to use
  269. a board number in place of the name:
  270.  
  271.     Protocol Kermit
  272.         bind #2            bind to the board loaded second
  273.  
  274. Kermit considers the text in these sections to be case-insensitive.  The
  275. #<digit> construction must not have a separation between the number sign (#)
  276. and the digit. The #<digit> case is normally used when two or more boards share
  277. the same driver and thus are not distinguishable by name alone.     Note that
  278. IPXODI now can use only the #number form.
  279.  
  280. A sample STARTNET.BAT file might look like this:
  281.  
  282. @echo off            run quietly
  283. c:\lsl >nul            LSL is always loaded before boards
  284. c:\smcplus.com >nul        SMC/WD8003E board, the first
  285. c:\exos.com >nul        EXOS-205T board, the second
  286. rem c:\odinsup            Odinsup can coexist with Kermit
  287. rem c:\odipkt 0 96        Odipkt can coexist with Kermit
  288. c:\ipxodi >nul            IPX is always loaded after boards
  289. rem echo Starting network...    may be needed to help some drivers
  290. c:\bnetx ps=my-preferred-server > nul
  291. rem (Packet Burst mode)    NETX loads after IPX
  292. @echo on
  293.  
  294. If both EXOS and SMCPLUS boards offer frame Ethernet_II Kermit will choose the
  295. first loaded board, SMCPLUS, in the absence of a "bind" command.  Putting the
  296. section "Protocol Kermit, bind <board name or number>" anywhere in NET.CFG
  297. selects a particular board for Kermit.
  298.  
  299. (1.3) THE NOVELL SLIP_PPP DRIVER
  300.  
  301. Novell provides a combined SLIP/PPP async ODI board driver and separate dialer.
  302. The ODI configuration file NET.CFG needs sections as shown below to support
  303. Kermit and SLIP_PPP.
  304.  
  305. Protocol KERMIT
  306.     Bind SLIP_PPP
  307.  
  308. Link Driver SLIP_PPP
  309.     DIRECT    YES
  310.     BAUD     9600
  311.     OPEN    ACTIVE
  312. ;;    TCPIPCOMP    VJ        <<< Optional Van Jacobson compression
  313.     PCOMP    YES
  314.     ACCOMP    YES
  315.     PORT    2F8            << serial port details, COM2 here
  316.     INT    3
  317.     FRAME    SLIP            << choose SLIP or PPP, not both
  318. ;;    FRAME    PPP
  319.     Protocol IP    0800    SLIP    << required for Kermit
  320. ;;    Protocol PPP    0800    PPP    << alternative, with PPP
  321.  
  322. Dialing the phone is separate from loading the ODI components.  Once those
  323. components are loaded the phone may be dialed with Novell's Dialer program (see
  324. Netwire archives for LWP/DOS updates; archives include Compuserve,
  325. ftp.novell.com, and official mirrors such as netlab2.usu.edu).  Kermit itself
  326. can be used to dial the phone, and in many cases it can do so after SLIP_PPP is
  327. loaded (but you will need to tell Kermit the port details via "SET COM1 port
  328. irq" because SLIP_PPP will try to hide them for safety).  The remote host may
  329. say or your notes will be needed to find out the current IP number.
  330.  
  331. Further details are given in the documentation for Lan WorkPlace for DOS and in
  332. the NetWare 3.12 and 4.02 operating systems.  The latter pair are available
  333. across the net from the sites mentioned above, directory EPUB.
  334.  
  335. (1.4) THE TELEBIT PPP DRIVER
  336.  
  337. Telebit provides an ODI compatible PPP driver with their NetBlazer modem pool
  338. product.  That driver needs a section of ODI configuration file NET.CFG as
  339. shown below in the ODIPPP section.  The driver has a feature of reporting back
  340. the IP number to be used in a PPP session and writing it into an application
  341. part of NET.CFG.  Kermit's part is shown below, and the MYIP line is ready to
  342. receive the IP number.  The IPCP line tells the PPP driver the syntax to be
  343. used when locating Kermit's MYIP line, and the constuction must be as shown
  344. below in the IPCP line.
  345.  
  346. Kermit can be told to look at the MYIP line for its IP address by command SET
  347. TCP ADDRESS Telebit-PPP.  Notice also that the driver name to bind to is
  348. "telebit", not ODIPPP unfortunately (a Telebit design "feature").
  349.  
  350. Protocol KERMIT
  351.     Bind telebit
  352.     MYIP                <<< ODIPPP fills in IP number here
  353.  
  354. Link Driver ODIPPP
  355.     Frame PPP
  356.     Protocol IP    0800 PPP
  357.     Protocol IPX    0000 PPP
  358.     Protocol ARP    0806 PPP
  359.     Protocol RARP    8035 PPP
  360.     IPCP DYNAMIC "PROTOCOL KERMIT: MYIP:"
  361.  
  362. An example batch file to startup this combination is shown below.
  363.  
  364. @echo off
  365. set nwlanguage=ENGLISH
  366. comppp pppmar94.jrd    << pppmar94.jrd is a personalized Telebit config file
  367. lsl.com            << serial part is going, now start ODI material
  368. odippp            << ODI MLID (board driver), Telebit's PPP here
  369. ipxodi /d        << /d omits diagnostic part, to save memory
  370. vlm /mX            << /mX loads VLMs into extended (raw) memory
  371. @echo on
  372.  
  373. The COMPPP driver reads configuration file PPPMAR94.JRD (or your file name) and
  374. makes a telephone connection before exiting back to the .BAT file to load the
  375. ODI components.
  376.  
  377. CHAPTER 2.  SHIMS.
  378.  
  379. Some interface standards are not supported directly by Kermit.  In such cases,
  380. we insert what is known as a "shim" (a term familiar to carpenters) between the
  381. board driver and Kermit, which fools Kermit into thinking it is one of the
  382. driver types that it knows about.
  383.  
  384. An example is NDIS (Network Driver Interface Specification) from Microsoft and
  385. 3COM.  You probably have NDIS drivers installed if you are using Banyan Vines,
  386. LAN Manager, DEC PATHWORKS, AT&T STARGROUP, some cases of Windows for
  387. Workgroups, etc.  Like ODI, NDIS gives a uniform interface to the application,
  388. independent of the networking method, but a different one from ODI.
  389.  
  390. To use Kermit over NDIS, we insert the shim called DIS_PKT9.  It talks NDIS on
  391. one side and packet-driver on the other.  Expect Packet Driver applications to
  392. work properly with this shim only if the board is Ethernet; there is no
  393. general frame-conversion facility.
  394.  
  395. Here is a section of NDIS configuration file PROTOCOL.INI.  Several important
  396. points about this need to be noticed:
  397.  
  398.  . Spelling must be correct.
  399.  . The names in [square brackets] must be those specified by the various
  400.    vendors, including the [pktdrv] one for DIS_PKT9.
  401.  . The right side of the "DRIVERNAME=" clause must be as given by the vendor
  402.    (pktdrv$ for dis_pkt9); it is not a filename.  The drivername string is
  403.    written into the code of the driver; no user choices. 
  404.  . The right side of the "BINDINGS=" clause is a name which appears elsewhere
  405.    in square brackets, and for DIS_PKT9 it is the square bracket name for a
  406.    board driver.
  407.  
  408. ; Packet Driver protocol users tie in here, dis_pkt9 section
  409. [pktdrv]
  410.     drivername = pktdrv$
  411.     bindings = wd8003
  412.     intvec = 0x60
  413. ;    chainvec = 0x66        ; chaining to another Packet Driver is unused
  414.  
  415. ; AT&T StarGROUP protocol stack ties in here via name ATTISO$
  416. [attiso]
  417.     drivername = ATTISO$
  418.     bindings = wd8003
  419.     nsess = 5
  420.     ncmds = 14
  421.     use_emm = n
  422.  
  423. ;Western Digital EtherCard PLUS Family Adapter, WD8003E in this case
  424. [wd8003]
  425.     drivername = MACWD$
  426.     irq = 7
  427.     ramaddress = 0xCA00
  428.     iobase = 0x280
  429.     receivebufsize = 1536
  430.  
  431. Lengthier examples are presented in text file DIS_PKT9.DOC.
  432.  
  433. Similarly, there is a shim called ODIPKT, which makes an ODI driver look like a
  434. packet driver.    This is not normally needed by Kermit except when running in
  435. Windows 3.x (explained in Chapter 3).
  436.  
  437. Please note that the introduction of Windows For Workgroups (WFW) 3.11 has
  438. changed the way networking drivers are loaded and which kind of drivers, NDIS
  439. v2 real mode or NDIS v3 protected mode.     This is explained more fully in 
  440. Chapter 8, below.
  441.  
  442. CHAPTER 3.  WINDOWS.
  443.  
  444.   This chapter applies to Microsoft Windows 3.x.  It does not apply to
  445.   Windows 95 or later (including Windows 98, ME, NT, 2000, or XP), which
  446.   has its own native Kermit software, Kermit 95:
  447.  
  448.     http://www.columbia.edu/kermit/k95.html
  449.   
  450. Windows complicates matters for us by moving Kermit around in memory and/or
  451. swapping it in and out, and also by disguising the address of its network
  452. buffers (in technical terms, providing a virtual address space when the the
  453. packet driver must be given actual physical addresses).  The latter case occurs
  454. under Windows in Enhanced Mode, when Windows loads Kermit in "high memory".
  455.  
  456. If you paid attention to Chapter 1, you can see why this might be a problem.
  457. The board driver has been given a buffer address to use for incoming packets,
  458. but Kermit's buffer isn't really there -- Kermit has been moved, or it is in
  459. high memory, or it is swapped out.  When the driver writes the data to the
  460. address, it is writing it over something else -- another application, a disk
  461. buffer, it could be almost anything, with results ranging from bad to worse.
  462.  
  463. There are two ways around this.  First, you can tell Windows to "Lock
  464. Application Memory" for Kermit -- that is, once having loaded Kermit into
  465. memory, leave it there and don't move it or swap it out.  This is a .PIF file
  466. option, good for Kermit but bad for your other applications, which have less
  467. memory available to them (not only because Kermit is hanging on to its own
  468. piece, but because the remaining memory might therefore be fragmented).
  469.  
  470. The second method is to put the shim WINPKT on top of the Packet Driver.
  471. WINPKT knows about Windows, traps the packet delivery, asks Windows to activate
  472. our application (putting it back where it was at buffer handout time), and then
  473. copies the packet safely to the application's buffer.  WINPKT is sort of a way
  474. to "lock in memory but only when needed."
  475.  
  476. The setup of a packet driver depends on the particular driver, but in general
  477. one feeds it parameters on the command line:
  478.  
  479.   c:\wd8003e 0x60 7 0x280 0xd000
  480.   c:\winpkt 0x60
  481.  
  482. The first line loads a Packet Driver for a WD8003E Ethernet board, using
  483. software interrupt 60 hexadecimal, with the board using hardware IRQ 7, port
  484. 280 hex, and shared memory starting at segment D000 hex.  The second line loads
  485. WINPKT, telling it to form a new Packet Driver interface at the same interrupt,
  486. hiding the real packet driver from the application (see NETWORKS\WINPKT.DOC for
  487. details).  Now you see why we call it a shim.
  488.  
  489. WINPKT only works over packet drivers, not ODI drivers or NDIS drivers.     Thus,
  490. if you have an ODI or NDIS driver, you must run the appropriate packet-driver
  491. simulation shim over it, and then run WINPKT over that.
  492.  
  493. Please note that there are two WINPKT programs: the two-argument one (included
  494. on the Kermit diskette as WINPKT9.COM) and the one-argument one described
  495. above (WINPKT.COM).  The one-arg WINPKT is newer, and works with Winsock (in
  496. fact, it comes from the Winsock distribution) but, reportedly, is less stable.
  497. If you have trouble with it when using Kermit, try the two-arg version:
  498.  
  499.   c:\wd8003e 0x61 7 0x280 0xd000
  500.   c:\winpkt 0x60 0x61
  501.  
  502. Also note that the introduction of Windows For Workgroups (WFW) 3.11 has
  503. changed the way networking drivers are loaded and which kind of drivers, NDIS
  504. v2 real mode or NDIS v3 protected mode.     See Chapter 8.
  505.  
  506. CHAPTER 4.  SETTING UP KERMIT'S TCP/IP CONFIGURATION
  507.  
  508. This chapter discusses TCP/IP setup *after* you have successfully coped with
  509. the driver issues, and assumes some knowledge of TCP/IP.  See "Using MS-DOS
  510. Kermit", Chapter 16, for additional explanatory material, or Douglas Comer's
  511. book(s) "Internetworking with TCP/IP" (Prentice-Hall), or show this material to
  512. your network manager.  Also consult the networks section of MSKERM.BWR
  513. (KERMIT.BWR) for additional detail.
  514.  
  515. Before Kermit can use the TCP/IP network, you must use SET TCP/IP commands to
  516. supply Kermit with the necessary details about it.  Check with your network
  517. manager to find out the correct values for these commands, and then put them
  518. in your MSCUSTOM.INI file.  Don't make them up!     Automatic downloading of your
  519. TCP/IP network configuration via BOOTP is recommended.
  520.  
  521. You can view your TCP/IP settings with the SHOW COMMUNICATIONS command.
  522.  
  523. Here are the commands for configuring Kermit for TCP/IP connections:
  524.  
  525. SET TCP/IP ADDRESS {<IP-address>, BOOTP, RARP, TELEBIT-PPP}
  526.   Tell Kermit your PC's IP address (required).    If your local network has a
  527.   BOOTP or RARP server, you can SET TCP/IP ADDRESS BOOTP or RARP to have the
  528.   server download your IP address automatically.  Examples:
  529.     SET TCP/IP ADDRESS 128.59.77.23 ; My IP address, fully specified
  530.     SET TCP/IP ADDRESS BOOTP        ; Get my address from a BOOTP server
  531.     SET TCP/IP ADDRESS RARP        ; Get my address from a RARP server
  532.  
  533. SET TCP/IP SUBNETMASK <IP-address-mask>
  534.   Tell Kermit which portion of an IP address corresponds to your physical
  535.   network.  The default is 255.255.255.0.  A correct value is essential; it is
  536.   used by Kermit to tell whether an IP address is on your physical network
  537.   or must be accessed through a gateway.  Incorrect values prevent successful
  538.   communication.  The subnetmask can be downloaded by BOOTP.
  539.  
  540. SET TCP/IP BROADCAST <IP-broadcast-address>
  541.   Tell Kermit the IP address to use when sending IP broadcast messages, for
  542.   example to the BOOTP server, and to recognize incoming ones.    The default is
  543.   255.255.255.255, meaning "my own physical network".  Change this parameter
  544.   if your BOOTP server is on a different subnet of your local network, or if
  545.   your local network uses the old 4.2 Berkeley UNIX convention of 0's rather
  546.   than 1's for IP broadcast addresses.    An incorrect value can prevent
  547.   successful communication, or worse.  This parameter can NOT be downloaded
  548.   from a BOOTP server -- you can't reach the BOOTP server in the first place
  549.   unless you already have the correct broadcast address.
  550.  
  551. SET TCP/IP PRIMARY-NAMESERVER <IP-address>
  552.   The IP address of your network's primary nameserver, which translates
  553.   hostnames into IP addresses.    Required if you want to use host names rather
  554.   than numeric IP addresses in your SET PORT TCP/IP commands.  Example:
  555.     SET TCP/IP PRIMARY-NAMESERVER 128.59.77.1
  556.   Can also be downloaded automatically by BOOTP.
  557.  
  558. SET TCP/IP SECONDARY-NAMESERVER <IP-address>
  559.   The IP address of your network's secondary nameserver, used by Kermit if the
  560.   primary nameserver is unavailable.  If no nameserver is reachable, use IP
  561.   host numbers rather than names in your SET PORT TCP/IP commands.  Nameserver
  562.   addresses can also be downloaded automatically by BOOTP.
  563.  
  564. SET TCP/IP GATEWAY <IP-address>
  565.   The IP address of the gateway between your local area network and the rest of
  566.   the Internet.     Required if you want to communicate outside of your immediate
  567.   local network.  Can also be downloaded automatically by BOOTP.
  568.  
  569. SET TCP/IP HOST {<IP-address>, <IP-hostname>}
  570.   The default host for SET PORT TCP/IP commands.  SET PORT TCP/IP <host> sets
  571.   this too, so the next SET PORT TCP/IP command remembers it if you omit the
  572.   host.     This allows you to switch back and forth between serial and TCP/IP
  573.   connections.
  574.  
  575. SET TCP/IP DOMAIN <domain-name>
  576.   IP domain name for your organization or department, for example columbia.edu
  577.   for Columbia University, cc.columbia.edu for the Computer Center at Columbia
  578.   University.  This lets you refer to hosts on your local network with
  579.   nicknames, for example watsun rather than watsun.cc.columbia.edu.  When a
  580.   hostname given in your SET PORT TCP/IP command can't be found, Kermit appends
  581.   the domain and tries again.  If it still can't be found, Kermit trims the
  582.   leftmost field from the domain and tries again, and so on until the host is
  583.   found or the domain name is used up:
  584.     SET TCP/IP DOMAIN cc.columbia.edu
  585.     SET PORT TCP/IP oofa.cs
  586.   Kermit tries (in this order): oofa.cs, oofa.cs.cc.columbia.edu,
  587.   oofa.cs.columbia.edu, oofa.cs.edu.  Version 3.13 of MS-DOS Kermit can get
  588.   the domain name from a BOOTP server that has been upgraded to RFC1395 level.
  589.  
  590. SET TCP/IP PACKET-DRIVER-INTERRUPT {<number>, ODI}
  591.   MS-DOS Kermit normally searches for the packet driver beginning at interrupt
  592.   \x60 and going up the \x80.  You can use this command to disable MS-DOS
  593.   Kermit's automatic search and specify a particular interrupt number, for
  594.   example, SET TCP PACKET-DRIVER \x63.    If you specify "ODI" instead of an
  595.   interrupt number, Kermit uses ODI rather than packet-driver conventions for
  596.   communicating with the network board driver.
  597.  
  598. SET TCP/IP MSS <number> (version 3.14)
  599.    Maximum TCP Segment Size, to override built-in defaults of 1046 bytes 
  600.    local and 536 bytes if routed (plus 40 bytes TCP and IP headers).  This
  601.    may be considered MTU (maximum transmission unit) but smarter because
  602.    TCP informs the other side.    Maximum size is 1460 bytes (1500 byte pkt).
  603.  
  604. SET TELNET TERM-TYPE <name>
  605.   Normally MS-DOS Kermit sends the name of terminal it is currently emulating,
  606.   for example, "VT320", in response to a terminal-type request from the remote
  607.   TELNET server.  Use this command to supply any terminal-type name you want.
  608.  
  609. SET TELNET NEWLINE-MODE {OFF, ON}
  610.   During terminal emulation on a TCP/IP connection, MS-DOS Kermit follows the
  611.   TELNET specification and transmits carriage and line feed (CRLF) whenever
  612.   you type carriage return (the Enter key).  If the remote TELNET server is
  613.   confused by this (i.e. it does not follow the TELNET specification), use SET
  614.   TCP/IP NEWLINE-MODE OFF to make Kermit omit the line feed.
  615.  
  616. SET TELNET MODE {NVT-ASCII, BINARY}
  617.   NVT-ASCII is the normal TELNET mode; you may also select BINARY if needed.
  618.   Mode selection is effective only when starting a connection.
  619.  
  620. SET TELNET DEBUG-OPTIONS {ON, OFF} 
  621.   Whether to display TELNET options negotiation on the screen.    Default is
  622.   OFF, don't display them.  When ON, you can view the negotiations on the
  623.   screen, and you can capture them in screen dump or session log files, or
  624.   print them, just like any other CONNECT-mode screen text.
  625.  
  626. Sample TCP-related commands for MSCUSTOM.INI (substitute your own correct
  627. values for the ones shown here!):
  628.  
  629.   SET TCP/IP ADDRESS 128.59.77.23           ; Your PC's IP address
  630.   SET TCP/IP SUBNETMASK 255.255.255.0           ; Your local net's subnet mask
  631.   SET TCP/IP GATEWAY 128.59.77.1           ; The gateway on your local net
  632.   SET TCP/IP PRIMARY-NAMESERVER 128.59.77.19   ; Nameserver on your local net
  633.   SET TCP/IP SECONDARY-NAMESERVER 128.59.78.12 ; Fallback nameserver
  634.   SET TCP/IP DOMAIN bar.baz.edu               ; Your local IP domain name
  635.  
  636. Then, to make a TCP/IP connection:
  637.  
  638.   SET PORT TCP/IP foo                   ; Connect to foo.bar.baz.edu
  639.   CONNECT
  640.  
  641. The TCP/IP connection is not actually established until the CONNECT (or INPUT,
  642. OUTPUT, PAUSE, or similar) command is given, at which time some progress
  643. messages are displayed on your screen.    If connection is immediate, you won't
  644. see these messages, but if the connection fails, they will remain visible so
  645. you'll know why it failed.
  646.  
  647. Logging out from the remote host will normally terminate your session and
  648. pop you back to the MS-Kermit> prompt.    The HANGUP command, or Ctrl-]H during
  649. terminal emulation, should do the same thing.
  650.  
  651. If your network has a BOOTP server, Kermit can learn its own IP address, as
  652. well as the nameserver addresses, gateway address, subnet mask, and other
  653. information from the server if the BOOTP server's database has an entry for
  654. your PC that contains these items.  The BOOTP server knows it's your PC making
  655. the request because it has your network interface board's hardware address in
  656. its database, and BOOTP requests contain the network board's hardware address.
  657. To enter your PC in the BOOTP database, use the PKTADDR program (supplied on
  658. your Kermit diskette) to find out the hardware address, for example:
  659.  
  660.   C:\KERMIT\NETWORKS\PKTADDR 0x60
  661.   My Ethernet address is 00:00:1E:0C:AA:1F
  662.  
  663. Give this address to your network administrator, along with the adapter type
  664. (Ethernet, Token Ring, etc), your PC's IP host name and address (if you know
  665. it, or ask your network administrator to assign these to you -- DON'T MAKE THEM
  666. UP!).  Then, the only commands you need to set up your TCP connection are:
  667.  
  668.   SET TCP/IP SUBNETMASK 255.255.254.0 ; Only needed if different from default
  669.   SET TCP/IP BROADCAST 0.0.0.0          ; Only needed if different from default
  670.   SET TCP/IP DOMAIN bar.baz.edu          ; (3.12 and earlier, or pre-RFC1395)
  671.   SET TCP/IP ADDRESS BOOTP          ; Get my TCP/IP configuration from BOOTP 
  672.   SET PORT TCP/IP <name-or-number>    ; Establish a connection
  673.   CONNECT
  674.  
  675. Notes:
  676.  
  677.  . The SET TCP/IP BROADCAST command is not needed unless you have a nonstandard
  678.    network that uses all-zeroes for IP broadcasts, rather than all ones.
  679.  
  680.  . The SET TCP/IP SUBNETMASK command is necessary only if your subnetwork uses
  681.    a different mask than Kermit's default, which is 255.255.255.0.  These
  682.    commands should go in your MSCUSTOM.INI file.
  683.  
  684.  . The SET TCP/IP DOMAIN command is not needed if you have MS-DOS Kermit 3.13,
  685.    the BOOTP server is at RFC1395 level (January 1993), and its BOOTP database
  686.    contains your PC's domain name.
  687.  
  688. Thus, in many cases, your TCP/IP setup can be as simple as this:
  689.  
  690.   SET TCP/IP ADDRESS BOOTP
  691.  
  692. Kermit sends an IP broadcast message to find the BOOTP server. If you also have
  693. given SET TCP/IP ADDRESS, SUBNETMASK, PRIMARY-NAMESERVER, SECONDARY-NAMESERVER,
  694. and GATEWAY commands, their values will be superseded by any values sent by the
  695. BOOTP server.
  696.  
  697. BOOTP service has the great advantage that PC network configurations need be
  698. maintained in only one central file, rather than on many individual PCs.  If
  699. the BOOTP server is unavailable, users can still enter the required information
  700. with SET TCP/IP commands.
  701.  
  702. If your network has a RARP server, Kermit can learn its own IP address from the
  703. server, if the RARP server's database contains an entry for your PC.  The RARP
  704. server can't tell you the subnetmask, nameserver addresses, or gateway address,
  705. so you will still need these items in your MSCUSTOM.INI file.  However,
  706. everybody on the same physical network can use the same TCP/IP network
  707. parameters in their MSCUSTOM.INI files because the SET TCP/IP parameters other
  708. than ADDRESS are all the same.
  709.  
  710. HINT: To avoid typing long SET PORT TCP/IP commands, define a macro for each
  711. host you commonly connect to:
  712.  
  713.   DEFINE OOFA SET PORT TCP/IP OOFA.XYZ.COM, PAUSE 0, IF SUCCESS CONNECT
  714.  
  715. Put these definitions in your MSCUSTOM.INI file.  Then just type "OOFA" to
  716. connect to TCP/IP host OOFA.XYZ.COM.  The standard sample MSCUSTOM.INI file
  717. already defines a TELNET macro for you:
  718.  
  719. ; TELNET macro, and macros for telnetting to particular hosts
  720. ; using appropriate terminal type.
  721. ;   \%1 = IP host name or address
  722. ;   \%2 = TCP port (optional, default is 23)
  723. ;   \%3 = terminal type (optional)
  724. ;
  725. define telnet -
  726.   set port tcp \%1 \%2,-
  727.   set flow none,-
  728.   if def \%3 set term type \%3,-
  729.   pause 0, if fail end 1, connect
  730.  
  731. You can use this to easily make a connection to a particular host:
  732.  
  733.   TELNET FOO
  734.  
  735. and you can optionally specify a nonstandard (i.e. other than 23) TCP port:
  736.  
  737.   TELNET FOO 2000
  738.  
  739. and you can also (optionally) specify a terminal type to use:
  740.  
  741.   TELNET FOO 23 HEATH-19
  742.  
  743. For information about multiple sessions, see KERMIT.UPD.
  744.  
  745. MAKING SLIP CONNECTIONS
  746.  
  747. To make a SLIP (Serial Line IP) connection, follow these steps:
  748.  
  749. 1. SET PORT 1
  750.    (or whichever serial port you will be using for the SLIP connection).
  751.  
  752. 2. SET SPEED 19200
  753.    (or whatever speed you will be using)
  754.  
  755. 3. SET FLOW RTS/CTS (or NONE)
  756.    Don't use Xon/Xoff flow control on a SLIP connection!  SLIP and Xon/Xoff
  757.    are incompatible with each other.
  758.  
  759. 4. Establish a connection to the terminal server or other device that will be
  760.    providing SLIP service.  Determine the IP address and other information
  761.    (e.g. gateway address) that it has assigned to you.    Normally, these are
  762.    displayed on your screen before the terminal server enters SLIP mode.
  763.  
  764. 5. Escape back to the MS-Kermit prompt and EXIT from MS-DOS Kermit.  The
  765.    connection is left open.
  766.  
  767. 6. Start the SLIP8250 driver, telling it to use the same port (hex address and
  768.    IRQ number must be supplied) and speed (decimal) used in (1) and (2) above,
  769.    and to use hardware flow control (-h), for example:
  770.  
  771.       slip8250 0x60 -h slip 4 0x3f8 19200
  772.  
  773. 7. Start MS-DOS Kermit again.  Do NOT give it a SET PORT command for the
  774.    serial port where SLIP is running.  Instead, give the SET TCP ADDRESS,
  775.    SET TCP GATEWAY, and other necessary SET TCP commands.  Then, to make
  776.    a connection, use SET PORT TCP <address>, where <address> is the IP
  777.    hostname or address of the IP host you want to connect to.
  778.  
  779. Note: Even though you might think it's silly to exit from Kermit and then start
  780. it again, when you could simply start the SLIP driver from the Kermit prompt,
  781. there is a reason: starting a driver from inside an application results in
  782. memory fragmentation.
  783.  
  784. Note 2: In version 3.13 and later, it is also possible to obtain BOOTP service
  785. on a SLIP connection if your SLIP server is configured to provide it (for
  786. example, Cisco terminal servers can do this).  Also, MS-DOS Kermit's SHOW
  787. COMMUNICATIONS command will display the IP address of the BOOTP server.
  788.  
  789. CHAPTER 5.  ACCESSING EXTERNAL TCP/IP PROTOCOL STACKS
  790.  
  791. MS-DOS Kermit can also work with TCP/IP protocol stacks from other vendors,
  792. but it cannot be built with support for stacks which require a proprietary
  793. library.  Kermit is a DOS program, 16-bit Windows-aware, but not a pure
  794. Windows program.  Thus it cannot use the various 32-bit Winsock Windows TCP/IP
  795. implementations.
  796.  
  797. (4.1) FTP Software Inc. PC/TCP. 
  798.  
  799. Use the FTP Telnet interface TNGLASS and run Kermit from it.
  800.  
  801.   tnglass host.domain <optional port> -c0 -e kermit.exe
  802.  
  803. This example uses communication port 1 (-c0) so tell Kermit SET PORT BIOS1.
  804. The TNGLASS interface causes the Enter key to send <CR><LF> pairs, as
  805. specified in the Telnet protocol specification.  This may cause some problems
  806. in connecting to UNIX machines.  Using "stty igncr" might help, along with
  807. "set key \284 \10" to re-map the Enter key to send a newline.
  808.  
  809. (4.2) Novell Lan WorkPlace for DOS with TELAPI
  810.  
  811. start LWP/DOS and run the TCPIP.EXE program, and also run TELAPI.EXE:
  812.  
  813.   kermit
  814.   set port telapi host.domain <optional port>
  815.   connect
  816.  
  817. This uses Kermit macro named "telapi" which is defined as:
  818.  
  819.   def telapi run tsu -o \%1 -p \%2 k1,run tsu -a k1 1,set port novell
  820.  
  821. TSU is a LWP/DOS transitor helper program doing resolution of IP names to IP
  822. numbers, -o is open to host in first Kermit argument \%1, -p using port in
  823. second Kermit argument \%2 (defaults to 23, Telnet), and assign TSU label k1 to
  824. the connection.     Then run TSU again to -a attach connection k1 to serial port
  825. simulator for Bios com1 (1).  Finally tell Kermit to use fast transmission
  826. method SET PORT NOVELL.     Other choices are SET PORT 3COM and SET PORT BIOS1
  827. (slowest).  If other serial ports are used then tell Kermit SET PORT BIOSn.
  828.     
  829. Kermit needs ODIPKT only if running in Windows 3.x enhanced mode, and it needs
  830. WINPKT then too.  Otherwise it runs fastest straight over ODI (force use of ODI
  831. over an available Packet Driver by SET TCP PACKET ODI).     If Kermit is run over
  832. LWP then it can do so in Windows too.
  833.  
  834. If you want to use Kermit's built-in TCP/IP stack instead of Telapi, you can
  835. also unload the LWP/DOS TCP/IP stack and then run Kermit.  It unloads smoothly
  836. and can be reloaded as smoothly.
  837.  
  838. (4.3) Beame and Whiteside TCP/IP
  839.  
  840. Kermit uses the loaded B&W TCP/IP drivers to communicate. The command SET PORT
  841. BWTCP Host Port defines the connection. Host is an IP number, not a name, and
  842. port is an optional TCP port number (defaults to 23, Telnet). Here is a section
  843. of config.sys which loads the B&W resident drivers
  844.  
  845.   DEVICE=C:\BWTCP\ETHDEV.SYS
  846.   DEVICE=C:\QEMM\LOADHI.SYS C:\BWTCP\TCPIP.SYS 1514
  847.  
  848. CHAPTER 6.  OTHER NETWORKS
  849.  
  850. (5.1) Meridian Technology SuperLAT
  851.  
  852. Load the SuperLAT driver according to the Meridian instruction manual.    Kermit
  853. can talk to the driver directly via command SET PORT SUPERLAT host.  Host is
  854. the name of a LAT host, or "*" to see a list of available hosts.  An Interrupt
  855. 14h simulator is also available from Meridian, which Kermit can use via SET
  856. PORT BIOS1.
  857.  
  858. When using SuperLAT over ODI drivers please add the following indented Protocol
  859. LAT line to your NET.CFG file, as shown in the example below.  The frame kind
  860. should be Ethernet_II.
  861.  
  862. Protocol LATDRVR
  863.     bind #1            << use these two lines only if multiple boards
  864.  
  865. Link Driver NE2000
  866.     INT 5
  867.     PORT 360
  868.     FRAME    Ethernet_II
  869.     Protocol IPX    8137    Ethernet_II
  870.     Protocol LAT    6004    Ethernet_II
  871.  
  872. (5.2) Novell NASI/NACS
  873.  
  874. Load the NASI.EXE file (or equivalent) on the client PC, then run Kermit.
  875. Command SET PORT NOVELL(NASI) chooses the comms channel. You should see a
  876. connection menu from the NASI.EXE file when you begin Connect mode; that is a
  877. session manager external to Kermit.  Kermit supports NASI/NACS v2, but in many
  878. cases it also works fine with v3.
  879.  
  880. (5.3) DIGITAL PATHWORKS
  881.  
  882. Kermit can use either LAT or CTERM connection facilities of Pathworks. It tries
  883. a LAT connection first (LAT is not routeable so only local nodes are reachable
  884. this way) and then CTERM (regular DECnet). If only LAT or CTERM support modules
  885. are loaded with Pathworks, then that limits Kermit's choices. The command SET
  886. PORT DECNET host (or * to see list of LAT hosts) chooses the communications
  887. channel.
  888.  
  889. LAT tables in clients are frequently too small to hold all host names
  890. advertized on the net, so please review the PATHWORKS documentation and enlarge
  891. the table to match your site.
  892.  
  893. The PATHWORKS LAT module has distinct trouble if too many bytes are sent by the
  894. PC in too short a time, and there's no feedback about what is "too many" at any
  895. given time.  To avoid the link dropping we recommend using medium-small file
  896. transfer packets, say 256 bytes, and only two window slots.
  897.  
  898. LAT comes in at least two much different flavors in PATHWORKS, depending on
  899. version number of PATHWORKS.  Kermit tries to discover which is which and act
  900. properly, but there might still be nuances which lead to trouble.  MS-DOS
  901. Kermit 3.14 is tested with PATHWORKS v4.2, the latest available to us.
  902.  
  903. (5.4) TES, by Interconnections, Inc.
  904.  
  905. Kermit works with older and the latest TES client programs.  It accommodates
  906. both kinds transparently to the user.  Command SET PORT TES host (or * to see
  907. all available hosts) chooses the communications channel.
  908.  
  909. (5.5) General "Int 14h" Interceptors
  910.  
  911. Many network products are issued with what as known as an Int 14h support
  912. program.  Interrupt 14h is the BIOS support for serial ports, and it is very
  913. simple.     Kermit supports this via the command SET PORT BIOSn where n is 1 to 4.
  914. There are other variations on Int 14h, most well known of which is 3COM(BAPI).
  915. Older TES uses Int 14h too.  Kermit supports these through commands SET PORT
  916. 3COM(BAPI) and SET PORT TES.
  917.  
  918. Bios Int 14h does not provide feedback about baud rate, has no facility to send
  919. a BREAK, does not provide information about a network link closing, has no
  920. interrupt facility, etc.  Loss of a network connection is not reported to
  921. Kermit.     It is a very simple interface.     Further, it is a markedly slower path
  922. for networking than say 3COM(BAPI).
  923.  
  924. It is important to distinguish these Int 14h drivers from real serial port
  925. hardware.  For Kermit, the real hardware is touched by commands SET PORT
  926. COM1..COM4 and synonyms SET PORT 1..4. Int 14h drivers will not be used if
  927. Kermit is told to use the hardware.  Be sure to choose the proper kind of
  928. connection.
  929.  
  930. UnixWare NVT offers an Int 14h interceptor which Kermit may use.  Please see
  931. your UnixWare documenation for details.
  932.  
  933. CHAPTER 7.  INTERRUPTS AND MEMORY MANAGEMENT
  934.  
  935. Network communication problems are often really systems conflicts of one kind
  936. or another.  Some useful tips are summarized below.
  937.  
  938. Hardware IRQ (Interrupt) wires are not sharable.  Only one device can connect
  939. to an IRQ wire even if other devices are "not active."    No program can clearly
  940. identify which device is connected to an IRQ wire, you must look inside the
  941. machine.  The MSD program by Microsoft shows only "conventional" assignments,
  942. not actual usage.
  943.  
  944. Network LAN adapters can use shared memory to transfer packets between board
  945. and driver.  That shared memory MUST be protected against memory management
  946. programs, including Windows.  Exclude that memory at both DOS level and again
  947. in Window's SYSTEM.INI file [386Enh] section; see typically "exclude=" commands
  948. in your memory managment program manual, and the examples below.  SYSTEM.INI
  949. excerpt, WFW 3.11 -
  950.  
  951.   [386Enh]
  952.    ...
  953.   EMMPageFrame=EC00        << expanded memory page frame 
  954.   EMMExclude=C000-C007        << video bios signature area
  955.   EMMExclude=A000-BFFF        << video adapter work area
  956.  
  957. For greater detail about memory management, read section 19 of KERMIT.BWR.
  958.  
  959. CHAPTER 8.  WINDOWS FOR WORKGROUPS 3.11
  960.  
  961. This chapter contains collected hints and tips regarding how to use MS-DOS
  962. Kermit to make TCP/IP connections from Microsoft Windows for Workgroups 3.11.
  963. You might encounter contradictions among the various texts, but this does not
  964. mean that the contradicting items are necessarily wrong (or right) -- only that
  965. this is yet another extremely complicated and obscure topic, and that differing
  966. approaches are possible.
  967.  
  968. ------------------------------
  969. TEXT #1
  970.  
  971. Windows-for-Workgroups (WFW) networking is built upon LAN Manager NDIS board
  972. handler software.  MS-DOS Kermit can make TCP/IP connections from within
  973. Windows for Workgroups by using the DIS_PKT9.DOS and WINPKT.COM shims that come
  974. on the Kermit disk.  For WFW 3.10 and earlier, NDIS drivers are normal
  975. CONFIG.SYS device drivers, and DIS_PKT9 instructions apply.  For WFW 3.11 and
  976. later, which uses its own built-in protected-mode NDIS 3.0:
  977.  
  978.  . In the SYSTEM.INI file, [Network Drivers] section, add DIS_PKT9.DOS at the
  979.    end of the "transport=" line.  Make sure you are using DIS_PKT9 as
  980.    distributed on the MS-DOS Kermit diskette, and not DIS_PKT11 or any other
  981.    version.  See below about PROTOCOL.INI.
  982.  
  983.  . Also in the [Network Drivers] section of SYSTEM.INI file, include
  984.    "LoadRMDrivers=yes".     This means that the NET START command loads Real Mode
  985.    (RM) Drivers.  DIS_PKT9.DOS is a Real Mode Driver.
  986.  
  987.  . In AUTOEXEC.BAT, use NET START.
  988.  
  989.  . As with all network connections in Windows, you must either lock Kermit in
  990.    memory (Check Lock Application Memory in the KERMIT.PIF file) or else load
  991.    the WINPKT shim "on top of" DIS_PKT9, following the instructions in
  992.    WINPKT.DOC.
  993.  
  994. ------------------------------
  995. TEXT #2
  996.  
  997. A Noddy's Guide to Kermit over TCP/IP under Windows for Workgroups 3.11
  998.  
  999.   Gisbert W. Selke
  1000.   WIdO, Bonn, Germany, January 1994
  1001.  
  1002. This document contains a brief outline of the problem and a step-for-step guide
  1003. on how to overcome it.    If you are only interested in a quick solution, feel
  1004. free to skip ahead to section 2.
  1005.  
  1006. 1. Where's the problem?
  1007.  
  1008. Running multiple network protocols over a single Ethernet adapter has always
  1009. been a problem, since each application tends to try and gain complete control
  1010. over the board.     A solution has been developed, back in the good ol' DOS days,
  1011. by FTP Inc., in the form of so-called packet drivers.  The idea behind this
  1012. approach is beautifully explained elsewhere [1], so I will not attempt to give
  1013. a complete description here.  Suffice it to say that a resident module -- the
  1014. packet driver -- grabs hold of the networking board, and all software wanting
  1015. to access the Ethernet talks to the packet driver instead of directly to the
  1016. board.    This driver hands the network packets of each application down to the
  1017. networking board, and distributes packets arriving over the network back to the
  1018. individual applications, keeping track of which application uses what protocol.
  1019. Using this strategy, one could, e.g., concurrently run TELNET and Netware.
  1020.  
  1021. As time went by, other solutions were developed that basically served the some
  1022. purpose; the non-proprietary nature of the packet driver approach and the
  1023. availability of them for a huge range of adapter types ensured their
  1024. popularity. The situation grew worse with the introduction of Windows, however;
  1025. with its task-switching capabilities, the demand for multiple protocols grew,
  1026. while at the same time Windows' habit of shifting resident programmes around in
  1027. memory made it more difficult for applications to find the packet driver, which
  1028. had suddenly turned into a moving target.  Again, a non-proprietary solution
  1029. was found: on top of the original packet driver, a fake winpacket driver was
  1030. loaded, whose only purpose was to overcome the shifting around in memory.
  1031.  
  1032. In the meantime, Microsoft had discovered that a great number of places used
  1033. this kind of software which had Not been Invented There in Redmond; so it was
  1034. decided to re-invent the wheel and dub it NDIS.     Of course, nobody had to pay
  1035. any attention, really ...  But, to simplify things for people who, for some
  1036. reason, had to employ NDIS drivers, a shim was developed -- and given to the
  1037. public for free -- that made NDIS look like a packet driver.  So one could
  1038. continue to run, say, TCP/IP, Netware and the Microsoft networking method named
  1039. NetBEUI.
  1040.  
  1041. Then, however, Windows for Workgroups 3.11 came out, and all the magic
  1042. incantations that were necessary in order to run NDIS, and to make it
  1043. accessible to other software, changed again, with all the documentation buried
  1044. somewhere deep down on CD-ROM, if at all.  Since Microsoft, of course, did not
  1045. supply, say, TELNET or FTP clients, a solution had to be found -- that was the
  1046. situation at our site early in January 1994.
  1047.  
  1048. Without the many pieces of freely available software mentioned above, and
  1049. without the profound networking wisdom of and support by Joe Doupnik, we would
  1050. either have had to abandon our host computers or else turn away from MS Windows
  1051. for good.
  1052.  
  1053. Instead of delving into the merits of each of these possibilities, it is
  1054. preferable to explain the steps that are necessary for a successful setup of
  1055. Windows for Workgroups, so that its built-in incompatibilities with TELNET/FTP
  1056. applications (like, e.g., MS-Kermit 3.13) do not show up.
  1057.  
  1058. 2. The Nine Steps on the Stairway to Network Heaven
  1059.  
  1060. Requirements:
  1061.  
  1062. * You have the Windows for Workgroup 3.11 (WfW for short) setup diskettes.
  1063.  
  1064. * You have MS-Kermit 3.11 (or later) already installed on your disk.
  1065.   (Applications like NCSA TELNET, QVTNet etc. will also do; it is assumed that
  1066.   the application is configured for packet driver use, where necessary.)
  1067.  
  1068. * You have DIS_PKT9.DOS (this is version 1.09) and WINPKT.COM (version 9.x or
  1069.   later) (found, e.g., in the MS-Kermit distribution).    You know which version
  1070.   of WINPKT you have (if in doubt, execute it without parameters and see.)
  1071.  
  1072. Now follow these steps:
  1073.  
  1074. a) Remove all references to a packet driver from AUTOEXEC.BAT (or from
  1075.    whatever batch file you used to start it from).
  1076.  
  1077. b) Install WfW properly.Once you get to the item of "Network Setup", you should
  1078.    notice that WfW has recognized your network adapter and has installed
  1079.    NetBEUI support. When prompted later to enter a network name for your
  1080.    computer, go ahead and do so. At some point, you will be prompted to install
  1081.    an NDIS driver appropriate for your kind of network adapter. If the driver
  1082.    has been supplied with WfW, fine; if not, get out the support disk that came
  1083.    with your adapter and hope there is an up-to-date NDIS driver there.
  1084.  
  1085. c) At the very end of installation, choose "Return to DOS".
  1086.  
  1087. d) Copy DIS_PKT9.DOS and WINPKT.COM to a suitable directory, e.g., \KERMIT, if
  1088.    you have not done so before.
  1089.  
  1090. e) Use your favourite plain ASCII editor to edit file SYSTEM.INI which can be
  1091.    found in your main Windows directory:
  1092.  
  1093.    * Find the section "[network drivers]".There should be a line starting
  1094.      "transport=" among the next few lines. Add ";C:\KERMIT\DIS_PKT9.DOS" to
  1095.      the end of this line, without any intervening blanks. (If you have used a
  1096.      different directory in the previous step, you should, of course, change
  1097.      this entry accordingly.)
  1098.  
  1099.    * If there is a line "LoadRMDrivers=No" in this section, change the "No" to
  1100.      "Yes". If there is no such line, add a line "LoadRMDrivers=Yes".
  1101.  
  1102.    *  Save the changed file (making sure it is in plain ASCII format).
  1103.  
  1104. f) Use your favourite plain ASCII editor to edit file PROTOCOL.INI found in the
  1105.    very same directory:
  1106.  
  1107.    * Locate a section starting "[NetBEUI]".
  1108.  
  1109.      There should be a line like this: "Bindings=foo$bar". If there is no line
  1110.      starting with "Bindings=", you are in trouble, because networking support
  1111.      has apparently not been properly installed. Go and call the Microsoft
  1112.      Hotline in order to listen to some nice muzak.
  1113.  
  1114.    * If there is such a line, memorize the value of this field (the "foo$bar"
  1115.      part).
  1116.  
  1117.    * Go to the end of the file, add a blank line and then a new section:
  1118.  
  1119.      [PKTDRV]
  1120.      DriverName=PKTDRV$
  1121.      Bindings=foo$bar
  1122.      IntVec=0x7E
  1123.  
  1124.      It is a good idea to insert the name you remember from the previous step
  1125.      instead of the word "foo$bar", of course. The value of 'IntVec' can be any
  1126.      interrupt number that has been used with your old packet driver; in any
  1127.      case, it should be in the range 0x61 to 0x7F (in C-style hex notation).
  1128.      Remember the value you choose; you will need it below.
  1129.  
  1130.    * Save the changed file (again making sure it is plain ASCII).
  1131.  
  1132. g) Use your favourite plain ASCII editor once again to change file AUTOEXEC.BAT
  1133.    in your root directory:
  1134.  
  1135.    * There should be a line "...Net Start" there. (If it is not, you're
  1136.      probably in trouble anyway; cf. the helpful hints under f) in this
  1137.      case). Change this line to read "...Net Start NetBind".
  1138.  
  1139.    * Right after this line, add a new one with contents like this:
  1140.    
  1141.        c:\kermit\winpkt 0x7E    (if your WINPKT version is 11.x or later)
  1142.  
  1143.      or
  1144.  
  1145.        c:\kermit\winpkt 0x7D 0x7E           (otherwise)
  1146.  
  1147.      In the first case, the only argument should be the value you chose at the
  1148.      end of the previous step. In the second case, the second argument should
  1149.      be that value, while the first argument should be a hex number less than
  1150.      the second argument.
  1151.  
  1152.    * Save the changed file (yes, indeed, in plain ASCII).
  1153.  
  1154. h) Re-boot your computer -- you're done.
  1155.  
  1156. i) Check wether it worked:
  1157.  
  1158.    * While still in DOS, run Kermit.
  1159.  
  1160.    * Start Windows, insert Kermit into a program manager group, double-click
  1161.      on it.
  1162.  
  1163. HINT: The applications and the packet drivers talk to each others using DOS
  1164. interrupts; hence, they must both know which interrupt vector to use.  (Older
  1165. versions of WINPKT use two interrupts -- one to talk "upstream" to the
  1166. application, one to talk "downstream" to DIS_PKT or some other "real" packet
  1167. driver.)  MS-Kermit finds the packet driver interrupt itself.  If your
  1168. networking software must be configured for what interrupt vector number it
  1169. should employ (like NCSA TELNET/FTP must; look for a line like "ioaddr=0x7E" in
  1170. file CONFIG.TEL), be sure that the first -- or only -- argument to WINPKT
  1171. (cf. step g)) is specified.
  1172.  
  1173. 3. Acknowledgements
  1174.  
  1175. We would have been completely lost were it not for Prof. Joe R. Doupnik, Utah
  1176. State University, USA, his wonderful assortment of long-range crystal balls,
  1177. and his amazing readiness to help others. Thanks also to the Kermit people of
  1178. Columbia University, New York, USA, in particular to Frank da Cruz, for their
  1179. support and their channelling of vital information.  Duncan Phillips of
  1180. Staffordshire University, UK, succeeded first in what we were merely
  1181. attempting, and was very helpful in sharing his knowledge.
  1182.  
  1183. Finally, thanks to my colleagues who helped sorting out this mess, in
  1184. particular to Ernst-Peter Beyer, without whose ingenuity and patience I would
  1185. probably still be trying to find my way through a labyrinthine heap of windows.
  1186.  
  1187. References:
  1188.  
  1189. [1] Joe R. Doupnik: Packet Drivers, made simple.  To be found, e.g., in the
  1190.     Crynwr packet driver distribution as file PACKET.DOC
  1191.  
  1192. All trademarks etc. mentioned are owned by their respective owners.
  1193.  
  1194. Gisbert W. Selke
  1195. Wissenschaftliches Institut der AOK
  1196. Bonn, Germany
  1197. <gisbert@watsun.cc.columbia.edu>
  1198.  
  1199. ------------------------------
  1200. TEXT #3
  1201.  
  1202. Windows for Workgroups v3.11 and DIS_PKT9.DOS
  1203.  
  1204. Joe R. Doupnik
  1205. jrd@cc.usu.edu
  1206. Utah State University
  1207. 3 Feb 1994
  1208.  
  1209. Windows for Workgroups v3.11 introduces major changes to the network support
  1210. material.  If you wish to use a Packet Driver program, such as MS-DOS Kermit
  1211. or one of the winsock DLLs, while within WFW then two supporting shims will be
  1212. need to be loaded before WFW starts.  There are at least two situations to
  1213. consider and different shims are involved.
  1214.  
  1215. SITUATION 1: WFW runs over a LAN adapter dedicated to WFW.
  1216.  
  1217. This is the case we explore in detail below.  The two shims needed are
  1218. DIS_PKT9.DOS and WINPKT.COM, both available by anonymous ftp from
  1219. netlab2.usu.edu [129.123.1.44] in directory \anonftp\drivers and from sites
  1220. carrying the Crynwr Collection of Packet Drivers.  The important points are
  1221. that a Version 2 NDIS driver is required, not the newer Version 3 32-bit
  1222. protected mode NDIS kind, and that small edits will be needed to WFW text files
  1223. PROTOCOL.INI and SYSTEM.INI.
  1224.  
  1225. SITUATION 2: WFW runs over a Novell ODI handler. 
  1226.  
  1227. The two shims needed are ODIPKT.COM and WINPKT.COM, both available from netlab2
  1228. above.    Both are installed independently of WFW and no changes to WFW are
  1229. needed.     DIS_PKT9 will not run in this environment because no NDIS V2 interface
  1230. is provided by WFW when using ODI.  Instead ODIPKT provides the Packet Driver
  1231. interface on the top of ODI.
  1232.  
  1233. SITUATION OTHER: WFW runs over another network's handler.
  1234.  
  1235. We can't say much because the environment is not known to us.  The general
  1236. guidlines about NDIS V2 support still apply.
  1237.  
  1238. Please notice that we deal only with DIS_PKT9.DOS and WINPKT.COM.  If you have
  1239. another variation of DIS_PKT you will need to contact the persons responsible
  1240. for your variation. Similarly, people have circulated modified copies of winpkt
  1241. without source code or external identifying markings. The winpkt referred to
  1242. here uses two command line arguments and the entire package is bundled in
  1243. winpkt.zip as source code, doc, and executable. Both are available from netlab2
  1244. as cited above. If in doubt get these.
  1245.  
  1246. ODIPKT is on your Kermit disk.
  1247.  
  1248. Steps to follow after installing network support in WFW v3.11.    This presumes
  1249. that WFW owns the network adapter (Situation 1 above).
  1250.  
  1251. 1. Ensure that both PROTMAN.EXE and PROTMAN.DOS are in the WFW directory.
  1252.    You may have to uncompress them from the WFW distribution media.  Copy 
  1253.    files DIS_PKT9.DOS and WINPKT.COM there too.
  1254.  
  1255. 2. Edit PROTOCOL.INI to insert the [pktdrv] section as shown below.
  1256.    Changes to the intvec= and novell= lines are permitted.  An NE2000 
  1257.    NDIS v2 board driver, MS$NE2000, is used in this example:
  1258.  
  1259.     [pktdrv]
  1260.     DriverName=PKTDRV$
  1261.     bindings=MS$NE2000
  1262.     intvec=0x63
  1263.     novell=no
  1264.  
  1265. 3. Edit SYSTEM.INI [network drivers] section to add ",DIS_PKT9.DOS" to the 
  1266.    transport= line, and to ensure an NDIS v2 netcard= driver has been given. 
  1267.    Please do not confuse this transport= line with a similar one in the 
  1268.    [enhanced] section; the [enhanced] section refers to 32-bit protected 
  1269.    mode material.  An NE2000 board is used in this example.
  1270.  
  1271.     [network drivers]
  1272.     devdir=C:\WFW
  1273.     LoadRMDrivers=Yes
  1274.     transport=ndishlp.sys,*netbeui,dis_pkt9.dos
  1275.     netcard=ne2000.dos
  1276.  
  1277. 4. Before starting Windows issue DOS commands (once only)
  1278.  
  1279.     NET START
  1280.     WINPKT \x060 0x63        (example interrupts)
  1281.  
  1282.    The first command energizes the NDIS V2 handlers, and the DIS_PKT9 banner
  1283.    should be displayed ending with the Ethernet address of your board.    NET.EXE
  1284.    is in the WFW directory; also see next paragraph.  The second command starts
  1285.    Windows helper shim WINPKT, and that needs the Packet Driver (DIS_PKT9)
  1286.    active beforehand.
  1287.    
  1288.    A comment on the line "LoadRMDrivers=Yes."  NET START reads file SYSTEM.INI
  1289.    to obtain loading information, and the answer "Yes" tells it to run
  1290.    PROTMAN.EXE that loads the drivers with PROTOCOL.INI supplying details.  If
  1291.    the answer were "No" then the Real Mode (RM) drivers would not be loaded or
  1292.    available.  However, if "No" were stated then we could give command NET
  1293.    START NETBIND to run PROTMAN.EXE and get the same results as the "Yes" case.
  1294.  
  1295. SAMPLE WFW 3.11 PROTOCOL.INI FILE USING AN NE2000 ETHERNET BOARD
  1296.  
  1297. [network.setup]
  1298. version=0x3110
  1299. netcard=ms$ne2000,1,MS$NE2000,3
  1300. transport=ms$ndishlp,MS$NDISHLP
  1301. transport=ms$netbeui,NETBEUI
  1302. lana0=ms$ne2000,1,ms$ndishlp
  1303. lana1=ms$ne2000,1,ms$netbeui
  1304.  
  1305. [protman]
  1306. DriverName=PROTMAN$
  1307. PRIORITY=MS$NDISHLP
  1308.  
  1309. [MS$NDISHLP]
  1310. DriverName=ndishlp$
  1311. BINDINGS=MS$NE2000
  1312.  
  1313. [NETBEUI]
  1314. DriverName=netbeui$
  1315. SESSIONS=10
  1316. NCBS=12
  1317. BINDINGS=MS$NE2000
  1318. LANABASE=0
  1319.  
  1320. [pktdrv]                (dis_pkt9 section, use as shown)
  1321. DriverName=PKTDRV$            (spelling must be correct here)
  1322. bindings=MS$NE2000            (use board driver section name)
  1323. intvec=0x63                (Packet Driver interrupt to use)
  1324. novell=no                (use novell=y if Ethernet_802.3)
  1325.  
  1326. [MS$NE2000]                (NDIS v2 board driver section)
  1327. DriverName=MS2000$
  1328. INTERRUPT=5
  1329. IOBASE=0x360
  1330.  
  1331. [NE2000]
  1332. Adapters=MS$NE2000
  1333.  
  1334. SECTION FROM WFW 3.11 SYSTEM.INI FILE
  1335.  
  1336. [network drivers]            (You need to edit this section)
  1337. devdir=C:\WFW
  1338. LoadRMDrivers=Yes
  1339. transport=ndishlp.sys,*netbeui,dis_pkt9.dos
  1340. netcard=ne2000.dos          ^^^^^^^^^^^^^--+
  1341. ^^^^^^^^^^^^^^^^^^                 |
  1342. |                         |
  1343. ensure a netcard= line like this         |- add this by hand
  1344. exists right here.  It chooses the
  1345. NDIS v2 level board driver.
  1346.  
  1347. ------------------------------
  1348. TEXT #4 (Not directly related, but maybe useful)
  1349.  
  1350. X-News: cc.usu.edu comp.protocols.tcp-ip.ibmpc:4768
  1351. From: fks@ftp.com  (Frances Selkirk)
  1352. Subject: Re: PC/TCP+ WfWg3.11+ Novell 3.12
  1353. Date: Sun, 30 Jan 1994 21:21:01
  1354.  
  1355. In article <frank.25.0010A199@isis.wu-wien.ac.at> frank@isis.wu-wien.ac.at
  1356. (Mag. Wolfgang FRANK) writes:
  1357. > Is there any way to use Pc/Tcp Ver. 2.2 with WfWg 3.11 and Novell 3.12
  1358.  
  1359. You can run PC/TCP version 2.2 with WfWg 3.11 with one bit of additional
  1360. software - a driver that is freely available from our anonymous FTP server and
  1361. BBS - but if you wish to use our NetBIOS as well, you will need to upgrade to
  1362. 2.3. The standard instructions we have assume use of the NDIS. If you need to
  1363. use ODI, that gets more complicated. Please contact me (fks@ftp.com) or
  1364. support@ftp.com if you have problems with the instructions below:
  1365.  
  1366. How to Configure PC/TCP Network Software v2.3, DOS/Windows and Windows for
  1367. Workgroups, Version 3.11
  1368.  
  1369. Since our last newsletter, Microsoft Windows for Workgroups 3.11 was released.
  1370. There were some changes from the beta version of this release which alter the
  1371. configuration necessary for PC/TCP Network Software v2.3, DOS/Windows.    Follow
  1372. these steps to configure PC/TCP, DOS/Windows with Windows for Workgroups
  1373. Version 3.11:
  1374.  
  1375. 1. Choose Real Mode NDIS Driver (NDIS2) during Windows for Workgroups setup.
  1376.  
  1377. 2. Review the config.sys file to make sure:
  1378.  
  1379.  * The Windows for Workgroups installation program inserted the
  1380.    Device=drive:\path\ifshlp.sys entry which is necessary to load the NDIS2
  1381.    converter.
  1382.  
  1383.  * There are no entries that load protocol manager or an NDIS card specific
  1384.    driver.  If they exist in this file, remove them.
  1385.  
  1386. 3. Make the following changes to the autoexec.bat file:
  1387.  
  1388.   * Arrange the entries so that the net start command, inserted by the Windows
  1389.     for Workgroups installation program, precedes any TSRs (Terminate and Stay
  1390.     Resident programs).     The net start command should include the full path, if
  1391.     the command precedes the path statement in the autoexec.bat file.  If the
  1392.     netbind command is in this file, remove it.
  1393.  
  1394.   * Add the drive:\path\kernel command to load PC/TCP kernel after net start.
  1395.  
  1396. 4. Make the following changes to the Windows system.ini file:
  1397.  
  1398.   * Add the Secondnet.drv=drive:\path\pctcpnet.drv entry after the
  1399.     Network.drv=wfwnet.drv entry in the [Boot] section.
  1400.  
  1401.   * Add the Secondnet=drive:\path\vpctcp.386 and
  1402.     Device=drive:\path\wfwftp.386 entries to the [386Enh] section.
  1403.  
  1404. Note: You must use the wfwftp.386 file that FTP Software created specifically
  1405. for Windows for Workgroups Version 3.11.  You can get the file from our
  1406. Technical Support BBS (filename: wfw311.exe) or our vax.ftp.com anonymous FTP
  1407. server (filename:/support/fixes/pctcpdos/wfw311.exe).
  1408.  
  1409. This wfwftp.386 file will also work with Windows for Workgroups 3.1.  The
  1410. wfwftp.386 file created for Windows for Workgroups 3.1 will not work with 3.11.
  1411.  
  1412. * Review the [network drivers] section.     These entries must be present:
  1413.  
  1414. netcard=(your NDIS driver)
  1415. transport=ndishlp.sys,*netbeui
  1416. LoadRMDrivers=Yes
  1417.  
  1418. By the way, the asterisk in *netbeui is an accurate statement used by
  1419. Microsoft.
  1420.  
  1421. * Replace the Transport= entry with 
  1422.   Transport=ndishlp.sys,*netbeui,drive:\path\dis_pkt.gup.
  1423.  
  1424. 5. Make the following changes to the protocol.ini file.
  1425.  
  1426. * Add a [PKTDRV] section with the following entries:
  1427.  
  1428. [PKTDRV]
  1429. DriverName=PKTDRV$
  1430. Bindings=(The Windows for Workgroups name for the driver section)
  1431. IntVec=        
  1432. ChainVec=
  1433.  
  1434. The IntVec= and ChainVec= entries must be available software interrupts; common
  1435. settings are 0x60 and 0x65, respectively).
  1436.  
  1437. If you want to use the PC/TCP,DOS/Windows netbios.com program in addition to
  1438. the Windows for Workgroups NetBEUI stack, make the following changes:
  1439.  
  1440. 1. Add the drive\path\netbios.com entry to the autoexec.bat file.
  1441.  
  1442. 2. Make the following changes to the protocol.ini file:
  1443.  
  1444. * Change the lana0= entry to lanan (where n is the next available adapter
  1445. number) in the [network.setup] section.     An example of this entry follows:
  1446.  
  1447. lanan=ms$drivername,1,ms$netbeui
  1448.  
  1449. * Change LANABASE=0 to LANABASE=n in the [NETBEUI] section (where n is the same
  1450. number as the adapter number in the previous bullet.)
  1451.  
  1452. The lana0 and LANABASE=0 settings are reserved for the PC/TCP, DOS/Windows
  1453. netbios.com program.
  1454.  
  1455. 3. Edit the [pctcp netbios] section of the pctcp.ini file to include the
  1456.    following NetBIOS specific parameters:
  1457.  
  1458. [pctcp netbios]
  1459. Ncbs=64
  1460. Sessions=n
  1461. Names=32
  1462.  
  1463. Note: The Sessions= entry must correspond to the value set in the
  1464. Tcp-Connections= entry in the [pctcp kernel] section of the pctcp.ini file.
  1465.  
  1466. If you want to use the PC/TCP, DOS/Windows netbios.com program without the
  1467. Windows for Workgroups NetBEUI stack, comment out the NetMisc= and Transport=
  1468. entries in the [386Enh] section in the Windows system.ini file by placing a
  1469. semi-colon (;) before the entry.
  1470.  
  1471. Frances K. Selkirk                    fks@ftp.com
  1472. FTP Software, Inc.        Technical Support        support@ftp.com
  1473. Support's newsletter provides technical information on our products.
  1474. FTP to vax.ftp.com, or login to our BBS at 1-508-659-6240.
  1475.  
  1476. (End of NETWORKS\SETUP.DOC)
  1477.