home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 1996 September / PCWK996.iso / frontier / packet / drivers.doc < prev    next >
Text File  |  1991-02-07  |  26KB  |  708 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.              Installation instructions for the packet driver collection
  8.  
  9.  
  10.           Document conventions
  11.  
  12.                All numbers in this document are given in C-style
  13.           representation.  Decimal is expressed as 11, hexadecimal is
  14.           expressed as 0x0B, octal is expressed as 013.  All reference to
  15.           network hardware addresses (source, destination and multicast)
  16.           and demultiplexing information for the packet headers assumes
  17.           they are represented as they would be in a MAC-level packet
  18.           header being passed to the send_pkt() function.
  19.  
  20.  
  21.           Using the packet drivers
  22.  
  23.                The packet driver must be installed prior to use.  Since
  24.           each packet driver takes only a few thousand bytes, this is best
  25.           done in your autoexec.bat.  Since the Ethernet boards typically
  26.           have jumpers on board, the packet driver must be informed of the
  27.           values of these jumpers (auto-configure is possible, but can
  28.           disturb other boards).  The first parameter is the software
  29.           interrupt used to communicate with the packet driver.  And
  30.           again, because each board is different, the rest of the
  31.           parameters will be different.
  32.  
  33.           All parameters must be specified in C-style representation.
  34.           Decimal is expressed as 11, hexadecimal is expressed as 0x0B,
  35.           octal is expressed as 013.  Any numbers that the packet driver
  36.           prints will be in the same notation.
  37.  
  38.           Before installing the packet driver, you must choose a software
  39.           interrupt number in the range between 0x60 and 0x80.  Some of
  40.           these interrupts are used for other purposes, so your first
  41.           choice may not work.  See Appendix A for the section of Ralf
  42.           Brown's interrupt list between 0x60 and 0x80.
  43.  
  44.           Running a packet driver with no specifications will give a
  45.           usage message.  The parameters for each packet driver are
  46.           documented below.
  47.  
  48.           The -n option is used to convert IPX packets between the
  49.           Ethernet II type 8137 encapsulation used by BYU's PDSHELL IPX
  50.           interface code and the 802.3-style encapsulation normally used
  51.           on Ethernet by Netware servers, shells and boot PROMs.  It will
  52.           also convert incoming type 8137 packets to type 8138 so that
  53.           Netware doesn't get confused.
  54.  
  55.           The -d option is used to delay the initialization of the
  56.           Ethernet card until the packet driver is used for the first
  57.           time.  See PROMBOOT.NOT for how to use -d and -n in a PROM boot
  58.           environment.
  59.  
  60.           The -w switch is used for Windows.  Install the packet driver
  61.           before running MS-Windows.  This switch does not prevent Windows
  62.  
  63.  
  64.  
  65.  
  66.  
  67.  
  68.           from swapping your network application out of memory, it simply
  69.           detects when that has happened, and drops the packets on the
  70.           floor.
  71.  
  72.           3Com 3C501
  73.  
  74.                usage: 3C501 [-n] [-d] [-w] packet_int_no [int_no
  75.           [io_addr]]
  76.  
  77.                The 3c501 driver requires two additional parameters -- the
  78.           hardware interrupt number and the I/O address.  The defaults are
  79.           3 and 0x300.
  80.  
  81.  
  82.           3Com 3C503
  83.  
  84.                usage: 3C503 [-n] [-d] [-w] packet_int_no [int_level(2-5)
  85.           [io_addr [cable_type]]]
  86.  
  87.                The 3c503 driver requires three additional parameters --
  88.           the hardware interrupt number, the I/O address, and the cable
  89.           type.  The 3c503 can be attached to thick or thin Ethernet
  90.           cables, and the selection is made in software.  The cable type
  91.           parameter should be zero for thick, and one for thin.  The
  92.           defaults are 2, 0x300, and 1 (thin).  The 3c503 uses shared
  93.           memory whose address is set by jumpers, but the software can ask
  94.           the board what the address is.
  95.  
  96.  
  97.           3Com 3c505
  98.  
  99.                usage: 3c505 [-n] [-d] [-w] packet_int_no [int_no [io_addr
  100.           [base_addr]]]
  101.  
  102.                The 3c505 driver requires three additional parameters --
  103.           the hardware interrupt number, the I/O address, and the memory
  104.           base address.  The defaults are 2 and 0x300 and 0xd000.
  105.  
  106.  
  107.           3Com 3c507
  108.  
  109.                usage: 3c507 [-n] [-d] [-w] packet_int_no [int_no [io_addr
  110.           [base_addr]]]
  111.  
  112.                The 3c507 will determine its parameters by reading the
  113.           board.  The only time you would need to specify the parameters
  114.           is when you have multiple 3c507s in the same machine.
  115.                The 3c507 driver will use three additional parameters --
  116.           the hardware interrupt number, the I/O address, and the memory
  117.           base address.
  118.  
  119.  
  120.  
  121.  
  122.  
  123.  
  124.           3Com 3c523
  125.  
  126.                usage: 3c523 [-n] [-d] [-w] packet_int_no [int_no [io_addr
  127.           [base_addr]]]
  128.  
  129.                The 3c523 driver requires three additional parameters --
  130.           the hardware interrupt number, the I/O address, and the memory
  131.           base address.  The defaults are 3 and 0x300 and 0xc000.
  132.  
  133.  
  134.           ARCNET
  135.  
  136.                usage: arcnet [-n] [-d] [-w] packet_int_no [int_no [io_addr
  137.           [base_addr]]]
  138.  
  139.                The ARCNET driver requires three additional parameters --
  140.           the hardware interrupt number, the I/O address, and the memory
  141.           base address.  The defaults are 5 and 0x2e0 and 0xd800.  Note
  142.           that a packet driver client must specifically support ARCNET.
  143.           The only known client is Phil Karn's (KA9Q) networking package,
  144.           NOS.
  145.  
  146.  
  147.           AT&T
  148.  
  149.                usage: at&t [-n] [-d] [-w] packet_int_no [int_no [io_addr
  150.           [base_addr]]]
  151.  
  152.                The AT&T driver requires three additional parameters --
  153.           the hardware interrupt number, the I/O address, and the memory
  154.           base address.  The defaults are 2 and 0x360 and 0xd000.  This
  155.           driver supports the StarLAN 1, StarLAN 10 NAU, EN100 and StarLAN
  156.           Fiber NAU.
  157.  
  158.  
  159.           D-Link DE-600
  160.  
  161.                usage: de600 [-n] [-d] [-w] packet_int_no
  162.  
  163.                The D-Link Pocket Lan Adapter packet driver requires no
  164.           additional parameters.
  165.  
  166.  
  167.           Digital Equipment Corporation DEPCA
  168.  
  169.                usage: depca [-n] [-d] [-w] <packet_int_no> [<int_no>
  170.           [<io_addr> [<mem_addr>]]]
  171.  
  172.                The DEPCA packet driver requires three additional
  173.           parameters -- the hardware interrupt number, the I/O address,
  174.           and the memory base address.  The defaults are 5 and 0x300 and
  175.           0xd000.  The packet driver will resolve the io_addr
  176.           automatically if io_addr is set to '?', e.g.
  177.           depca 0x7e 5 ? 0xd000.
  178.  
  179.  
  180.  
  181.  
  182.  
  183.           Mitel Express
  184.  
  185.                usage: express [-n] [-d] [-w] <packet_int_no> [-n]
  186.           [<driver_class> [<int_no>]]
  187.  
  188.                The Mitel Express packet driver has one optional switch,
  189.           and two optional parameters. The <driver_class> defaults to
  190.           SLIP, and the <int_no> defaults to 7.  The -n switch instructs
  191.           card to be an NT.  The <driver_class> should be SLIP or a
  192.           number.
  193.  
  194.           HP EtherTwist/Starlan10/ThinLan
  195.  
  196.               usage: hppclan [-n] [-d] [-w] packet_int_no [int_no
  197.           [io_addr]]
  198.  
  199.                The hppclan driver supports 8 and 16 bit HP LAN cards
  200.           based on the National 8390 chip.  Earlier HP LAN cards should
  201.           use the 3Com 3C501 driver.  The hppclan driver requires two
  202.           additional parameters -- the hardware interrupt number and the
  203.           I/O address.  The defaults are 3 and 0x300.  On IBM PS/2
  204.           Microchannel machines, the defaults are read from the PS/2
  205.           configuration NOVRAM and additional parameters are not
  206.           normally required.
  207.  
  208.  
  209.           IBM Token Ring
  210.  
  211.                usage: ibmtoken [-n] [-d] [-w] packet_int_no [adapter_no]
  212.  
  213.                The IBM Token Ring packet driver requires one additional
  214.           parameters -- the adapter number.  The default is zero.  See
  215.           IBMTOKEN.DOC for more information.
  216.  
  217.  
  218.           LocalTalk
  219.  
  220.                usage: localtlk [-n] [-d] [-w] <packetintno> [<IP address>]
  221.  
  222.                The LocalTalk packet driver requires atalk.sys to be
  223.           installed.  Because it is not an Ethernet class driver, it
  224.           requires special code in the client.  See LOCALTLK.NOT for more
  225.           details.
  226.  
  227.  
  228.           NCR ET-105
  229.  
  230.                usage: ncret105 [-n] [-d] [-w] <packet_int_no> <int_no>
  231.           <base_addr> <Ethernet_address>
  232.  
  233.                The NCR ET-105 driver requires four additional parameters
  234.           -- the hardware interrupt number, the I/O address, the memory
  235.           base address, and the Ethernet address.  The Ethernet address
  236.           assigned to any particular board is printed on sticky labels
  237.           that come with the board.
  238.  
  239.  
  240.  
  241.  
  242.  
  243.  
  244.           Novell IPX
  245.  
  246.                usage: ipxpkt [-n] [-d] [-w] packet_int_no
  247.  
  248.                The ipxpkt packet driver simulates Ethernet on Novell IPX
  249.           protocol.
  250.  
  251.  
  252.           BICC Data Networks' ISOLAN 4110 ethernet
  253.  
  254.                usage: isolan [-n] [-d] [-w] packet_int_no [int_no
  255.           [base_addr]]
  256.  
  257.                The BICC Isolan requires three additional parameters --
  258.           the hardware interrupt number and the memory base address.  The
  259.           defaults are 2 and 0xb800h.
  260.  
  261.  
  262.           Netbios
  263.  
  264.                usage: nb [-n] [-d] [-w] packet_int_no ip.ad.dr.ess
  265.           [receive queue size]
  266.  
  267.                The netbios packet driver transports IP packets over
  268.           NetBIOS.
  269.  
  270.  
  271.           Novell ne1000
  272.  
  273.                usage: ne1000 [-n] [-d] [-w] packet_int_no [int_no
  274.           [io_addr]]
  275.  
  276.                The ne1000 driver requires two additional parameters --
  277.           the hardware interrupt number and the I/O address.  The defaults
  278.           are 3 and 0x300.
  279.  
  280.  
  281.           Novell ne/2
  282.  
  283.                usage: ne2 [-n] [-d] [-w] <packet_int_no>
  284.  
  285.                The ne/2 driver requires no additional parameters.
  286.  
  287.  
  288.           Novell ne2000
  289.  
  290.                usage: ne2000 [-n] [-d] [-w] packet_int_no [int_no
  291.           [io_addr]]
  292.  
  293.                The ne2000 driver requires two additional parameters --
  294.           the hardware interrupt number and the I/O address.  The defaults
  295.           are 2 and 0x300.
  296.  
  297.  
  298.  
  299.  
  300.  
  301.  
  302.           Racal-Interlan (Formerly Interlan) NI5010
  303.  
  304.                usage: NI5010 [-n] [-d] [-w] packet_int_no [int_no
  305.           [io_addr]]
  306.  
  307.                The NI5010 driver requires two additional parameters --
  308.           the hardware interrupt number and the I/O address.  The defaults
  309.           are 3 and 0x300.
  310.  
  311.  
  312.           Racal-Interlan (Formerly Micom-Interlan) NI5210
  313.  
  314.                usage: ni5210 [-n] [-d] [-w] packet_int_no [int_no [io_addr
  315.           [base_addr]]]
  316.  
  317.                The NI5210 driver requires three additional parameters --
  318.           the hardware interrupt number, the I/O address, and the memory
  319.           base address.  The defaults are 2 and 0x360 and 0xd000.  Note
  320.           that Interlan sets the default memory base to 0xa000, which is
  321.           brain-damaged, because that area of memory is specifically
  322.           reserved for video adapters, and in fact the EGA and VGA use
  323.           it.
  324.  
  325.  
  326.           Racal-Interlan NI6510
  327.  
  328.                usage: ni6510 [-n] [-d] [-w] packet_int_no [int_no
  329.           [io_addr]]
  330.  
  331.                The ni6510 driver has two additional parameters -- the
  332.           hardware interrupt number and the I/O address.  The defaults are
  333.           2 and auto-sense.  These parameters do not need to be set unless
  334.           the auto-sense routine fails, or otherwise disrupts operation of
  335.           your PC.
  336.  
  337.  
  338.           Racal-Interlan (Formerly Micom-Interlan) NI9210
  339.  
  340.                usage: ni9210 [-n] [-d] [-w] packet_int_no [int_no [io_addr
  341.           [base_addr]]]
  342.  
  343.                The ni9210 driver requires three additional parameters --
  344.           the hardware interrupt number, the I/O address, and the memory
  345.           base address.  The defaults are 2 and 0x360 and 0xd000.
  346.  
  347.  
  348.           NTI 16
  349.  
  350.                usage: nti16 [-n] [-d] [-w] packet_int_no [int_no [io_addr
  351.           [base_addr]]]
  352.  
  353.                The nti16 driver requires three additional parameters --
  354.           the hardware interrupt number, the I/O address, and the memory
  355.           base address.  The defaults are 3 and 0x338 and 0xd000.
  356.  
  357.  
  358.  
  359.  
  360.  
  361.  
  362.           SLIP8250
  363.  
  364.                usage: SLIP8250 [-n] [-d] [-w] packet_int_no [-h]
  365.           [driver_class]
  366.                   [int_no]
  367.                   [io_addr] [baud_rate] [send_buf_size] [recv_buf_size]
  368.                   The driver_class should be SLIP, KISS, AX.25, or a
  369.                   number.
  370.  
  371.                The SLIP8250 driver is not strictly an Ethernet adapter,
  372.           however some software packages (such as KA9Q's NET and NCSA
  373.           Telnet) support Serial Line IP (SLIP).  SLIP must be specially
  374.           supported because it doesn't use ARP and has no hardware
  375.           addresses prepended to its packets.  The PDS is not clear on
  376.           this, but the packet driver does the SLIP encoding.  The
  377.           parameters are as follows.  The -h flag is included if you wish
  378.           to use hardware handshaking (the packet driver will then suspend
  379.           the transmission of characters while CTS is low).  The
  380.           driver_class is the class that is returned to a client of the
  381.           packet driver spec in the driver_info call.  The int_no is the
  382.           hardware interrupt number, defaults to 4 (COM1).  The io_addr is
  383.           the hardware I/O address, defaults to 0x3f8 (COM1).  The
  384.           baud_rate defaults to 4800 baud.  The send_buf_size and
  385.           recv_buf_size default to 3000 each.
  386.  
  387.  
  388.           Ungermann-Bass NIC-PC
  389.  
  390.                usage: ubnicpc [-n] [-d] [-w] <packet_int_no> <int_no>
  391.           <base_addr>
  392.  
  393.           The UB NIC-PC driver requires two additional parameters, the
  394.           hardware interrupt number, and the memory base address.
  395.  
  396.  
  397.           Ungermann-Bass NIC-PS/2
  398.  
  399.                usage: ubnicps2 [-n] [-d] [-w] <packet_int_no> <int_no>
  400.           <io_addr> <base_addr>
  401.  
  402.           The UB NIC-PS/2 requires three additional parameters -- the
  403.           hardware interrupt number, the I/O address, and the memory base
  404.           address.  The defaults are the contents of the POS registers, so
  405.           the only time you would need to use the parameters is if you're
  406.           using two NIC-PS/2 boards in one machine.
  407.  
  408.  
  409.           Tiara Lancard
  410.  
  411.                usage: tiara [-n] [-d] [-w] packet_int_no [int_no
  412.           [io_addr]]
  413.  
  414.                The Tiara driver runs the Tiara LANCARD/E cards, both
  415.           eight and sixteen bit cards.  The Tiara driver requires two
  416.           additional parameters, the hardware interrupt number, and the
  417.  
  418.  
  419.  
  420.  
  421.  
  422.  
  423.           I/O port.
  424.  
  425.           Western Digital WD8003 E EBT EB ET/A and E/A
  426.  
  427.                usage: WD8003E [-n] [-d] [-w] packet_int_no [-o]
  428.           [int_level [io_addr [mem_base]]]
  429.  
  430.                The WD8003E driver runs the Western Digital E, EBT, EB,
  431.           ET/A, and E/A Ethernet cards.  The WD8003E requires three
  432.           additional parameters -- the hardware interrupt number, the I/O
  433.           address, and the memory base address.  The defaults are 2 and
  434.           0x280 and 0xd000.  The wd8003 cards do not enable their memory
  435.           until configuration time.  Some 386 memory mappers will map
  436.           memory into the area that the card intends to use.  You should
  437.           be able to configure your software to leave this area of memory
  438.           alone.  Also driver will refuse to map memory into occupied
  439.           memory.  The occupied memory test fails on some machines, so the
  440.           optional switch -o allows you to disable the check for occupied
  441.           memory.
  442.  
  443.  
  444.           Errorlevels
  445.  
  446.                Some of the packet drivers return error codes.  Some of
  447.           these error codes indicate fatal errors, and some are merely
  448.           warnings.  For the moment, you must consult the source to see
  449.           what the errorcodes mean.  For example, pktchk returns 0 if a
  450.           packet driver exists at a given address, and 1 if not.  You
  451.           might use it in a batch file that only installs a packet driver
  452.           if one is not found.
  453.  
  454.                   rem only install the packet driver if there isn't one
  455.                   rem already.
  456.                   pktchk 0x7e
  457.                   if errorlevel 0 goto gotit
  458.                   ni5210 0x7e
  459.           :gotit
  460.  
  461.                The "errorlevel" test is true if the errorlevel is less
  462.           than or equal to the parameter.
  463.  
  464.  
  465.           Utility Programs
  466.  
  467.                There are also several utility programs for packet
  468.           drivers:
  469.  
  470.  
  471.           PKTADDR
  472.  
  473.                usage: pktaddr packet_int_no [ethernet_addr]
  474.  
  475.                If the second argument is given, the Ethernet address of
  476.           the given packet driver is set.  The Ethernet address is printed
  477.           out.
  478.  
  479.  
  480.  
  481.  
  482.  
  483.  
  484.           PKTALL
  485.  
  486.                usage: pktall packet_int_no
  487.  
  488.                All packets are received and discarded from the given
  489.           packet driver.  This program is of most use with PKTMODE and
  490.           TRACE.
  491.  
  492.  
  493.           PKTCHK
  494.  
  495.                usage: pktchk packet_int_no [packet_int_no]
  496.  
  497.                Test for existance of a packet driver.  Returns with
  498.           errorlevel 0 if the specified interrupt has a packet driver.  If
  499.           the second argument is given, all interrupts in the range are
  500.           checked for a packet driver.  If no packet driver is found at
  501.           all, errorlevel 1 is returned.
  502.  
  503.  
  504.           PKTMODE
  505.  
  506.                usage: pktmode packet_int_no [receive_mode]
  507.  
  508.                If the second argument is given, the receive mode of the
  509.           given packet driver is set.  A decimal number from the list of
  510.           modes should be used.  All the possible modes are printed out.
  511.           Unimplemented modes are marked with "xx", and the current mode
  512.           is marked with "->".
  513.  
  514.  
  515.           PKTMULTI
  516.  
  517.                usage: pktmulti packet_int_no [-f filename | address ...]
  518.  
  519.                The specified addresses are set as allowed multicast
  520.           addresses.  If no list of addresses is given, then the current
  521.           list of addresses is printed.  The
  522.           addresses may either be specified on the command line, or in a
  523.           file using the -f option.  When a file is used, any whitespace
  524.           in the file is ignored.
  525.  
  526.  
  527.           PKTSTAT
  528.  
  529.                usage: pktstat first_int_no [last_int_no]
  530.  
  531.                The statistics for all packet drivers in the given range
  532.           are printed.  The default range is 0x60 through 0x80.  The
  533.           meanings of the columns are given below.
  534.  
  535.  
  536.           pkt_in  is the number of packets ever received by this driver.
  537.           pkt_out is the number of packets ever transmitted by this
  538.                   driver.
  539.  
  540.  
  541.  
  542.  
  543.  
  544.  
  545.           byt_in  is the number of bytes ever received by this driver.
  546.           byt_out is the number of bytes ever transmitted by this driver.
  547.           pk_drop Packets dropped because there was no handler for that
  548.                   Ethernet packet type.
  549.           err_in  Dependent upon the packet driver.
  550.           err_out Dependent upon the packet driver.
  551.  
  552.  
  553.           PKTSEND
  554.  
  555.                usage: pktsend packet_int_no [-r] [-f filename | packet]
  556.  
  557.                The specified packet is sent using the specified packet
  558.           driver.  The -r option says to repeat sending as fast as
  559.           possible.  You shouldn't use this option very often.  The packet
  560.           may either be specified on the command line, or in a file using
  561.           the -f option.  When a file is used, any whitespace in the file
  562.           is ignored.
  563.  
  564.           PKTRING
  565.  
  566.                usage: pktring [-m] dest_packet_int_no src_packet_int_no
  567.  
  568.                Test two packet drivers loaded on two Ethernet cards in
  569.           the same machine.  Sends packets of every possible length using
  570.           the driver located at src_packet_int_no to the driver located at
  571.           dest_packet_int_no.  If the -m switch is used, then the various
  572.           receive modes are tested.  Note that the multicast tests (modes
  573.           four and five) do not work properly yet.
  574.  
  575.  
  576.           TERMIN
  577.  
  578.                usage: termin [-s] packet_int_no
  579.  
  580.                The specified packet driver is terminated, and its memory
  581.           recovered.
  582.  
  583.                The s-option (stop) is used to prepare for termination.
  584.           The in-use flag for all handles are cleared. This prevents
  585.           upcalls to handlers that are to be removed and also makes it
  586.           possible to later terminate the packet driver even though
  587.           handles are not released.  Actually, doing termin -s after prom
  588.           boot is like cutting the branch you are sitting on.  Recipe for
  589.           removing packet driver, IPX and NET:
  590.  
  591.  
  592.  
  593.  
  594.  
  595.  
  596.                   pktdrvr 0x7c ....
  597.                   MARKNET C:IPX&NET3.MRK
  598.                   PDIPX
  599.                   NET3
  600.                   . . .
  601.                   NET3 u                ; unload netx to avoid
  602.                                           communication timeout
  603.                   TERMIN -s 0x7c        ; pkt drvr no longer calls any
  604.                                           nonexistent rcvrs
  605.                   RELNET ipxet3.mrk     ; IPX is "removed"
  606.                   TERMIN 0x7c           ; It is now safe to terminate the
  607.                                           packet driver
  608.  
  609.  
  610.           TRACE
  611.  
  612.                usage: trace packet_int_no [buffer_size]
  613.  
  614.                Trace is very useful for debugging packet driver
  615.           troubles.  Trace lets you trace all transactions between a user
  616.           program and the packet driver.  The transactions are stored in a
  617.           memory buffer whose size is set with buffer_size.  The default
  618.           size is 10,000 bytes.
  619.  
  620.                When you run trace, it sets itself up and then spawns
  621.           COMMAND.COM so that you can run a network program that uses the
  622.           packet driver.  After you quit your network session, you issue
  623.           an "EXIT" command.  This returns you to trace, which writes the
  624.           transaction log to "TRACE.OUT".  The following program, DUMP,
  625.           interprets TRACE.OUT.
  626.  
  627.  
  628.           DUMP
  629.  
  630.                usage: dump
  631.  
  632.                Interprets the contents of TRACE.OUT as written by TRACE.
  633.  
  634.  
  635.  
  636.  
  637.  
  638.  
  639.                                      Appendix A
  640.  
  641.           Interrupt usage in the range 0x60 through 0x80, from Ralf
  642.           Brown's interrupt list.
  643.  
  644.  
  645.  
  646.           60 -- -- reserved for user interrupt
  647.           60 -- -- FTP Driver - PC/TCP Packet Driver Specification
  648.           60 01 FF FTP Driver - DRIVER INFO
  649.           60 02 -- FTP Driver - ACCESS TYPE
  650.           60 03 -- FTP Driver - RELEASE TYPE
  651.           60 04 -- FTP Driver - SEND PACKET
  652.           60 05 -- FTP Driver - TERMINATE DRIVER FOR HANDLE
  653.           60 06 -- FTP Driver - GET ADDRESS
  654.           60 07 -- FTP Driver - RESET INTERFACE
  655.           60 11 -- 10-NET - LOCK AND WAIT
  656.           60 12 -- 10-NET - LOCK
  657.           60 13 -- 10-NET - UNLOCK
  658.           60 20 -- FTP Driver - SET RECEIVE MODE
  659.           60 21 -- FTP Driver - GET RECEIVE MODE
  660.           60 24 -- FTP Driver - GET STATISTICS
  661.           61 -- -- reserved for user interrupt
  662.           62 -- -- reserved for user interrupt
  663.           63 -- -- reserved for user interrupt
  664.           64 -- -- reserved for user interrupt
  665.           65 -- -- reserved for user interrupt
  666.           66 -- -- reserved for user interrupt
  667.           67 -- -- LIM EMS
  668.                    ...
  669.           67 DE 00 Virtual Control Program Interface - INSTALLATION CHECK
  670.                    ...
  671.           68 01 -- APPC/PC
  672.                    ...
  673.           69 -- -- unused
  674.           6A -- -- unused
  675.           6B -- -- unused
  676.           6C -- -- system resume vector (CONVERTIBLE)
  677.           6C -- -- DOS 3.2 Realtime Clock update
  678.           6D -- -- VGA - internal
  679.           6E -- -- unused
  680.           6F -- -- Novell NetWare - PCOX API (3270 PC terminal interface)
  681.           6F 00 -- 10-NET - LOGIN
  682.                    ...
  683.           70 -- -- IRQ8 - AT/XT286/PS50+ - REAL-TIME CLOCK
  684.           71 -- -- IRQ9 - AT/XT286/PS50+ - LAN ADAPTER 1
  685.           72 -- -- IRQ10 - AT/XT286/PS50+ - RESERVED
  686.           73 -- -- IRQ11 - AT/XT286/PS50+ - RESERVED
  687.           74 -- -- IRQ12 - PS50+ - MOUSE INTERRUPT
  688.           75 -- -- IRQ13 - AT/XT286/PS50+ - 80287 ERROR
  689.           76 -- -- IRQ14 - AT/XT286/PS50+ - FIXED DISK
  690.           77 -- -- IRQ15 - AT/XT286/PS50+ - RESERVED
  691.           78 -- -- not used
  692.           79 -- -- not used
  693.           7A -- -- Novell NetWare - LOW-LEVEL API
  694.  
  695.  
  696.  
  697.  
  698.  
  699.  
  700.           7A -- -- AutoCAD Device Interface
  701.           7B -- -- not used
  702.           7C -- -- not used
  703.           7D -- -- not used
  704.           7E -- -- not used
  705.           7F -- -- HDILOAD.EXE - 8514/A VIDEO CONTROLLER INTERFACE
  706.           7F -- -- HLLAPI (High-Level Language API)
  707.           80 -- -- reserved for BASIC
  708.