FTP and Telnet Package for Small Systems Documentation



                             FTP and Telnet Package


                                       for


                                  Small Systems




                            Version 2.40, 15-Jun-2008


        CHAPTER 1  SOFTWARE INSTALLATION                             1-1 
          1.1     INSTALLATION CONFIGURATIONS                        1-2 
          1.1.1     Install All Files on System Device               1-2 
          1.1.2     Install Only Command Files on System Device      1-2 
          1.1.3     Install All Files on a Logical Disk              1-2 
          1.2     SOFTWARE COMPONENTS                                1-2 
          1.3     CONFIGURATION FILE                                 1-3 
          1.4     INSTALLATION IN DETAIL                             1-8 

        CHAPTER 2  HARDWARE INSTALLATION                             2-1 
          2.1     Q-BUS SYSTEMS                                      2-1 
          2.2     1;UNIBUS SYSTEMS                                   2-1 

        CHAPTER 3  SYSTEM GENERATION                                 3-1 

        CHAPTER 4  PROGRAM OPTIONS                                   4-1 
          4.1     FTP                                                4-1 
          4.2     TELNET                                             4-3 
          4.3     CNCT                                               4-5 

        CHAPTER 5  ETHERNET DEVICE HANDLERS                          5-1 
          5.1     DEVICE HANDLER SYSTEM SUMMARY                      5-3 
          5.2     DEVICE HANDLER FEATURE SUMMARY                     5-4 
          5.3     ALTERNATE DEUNA DEVICE HANDLERS                    5-5 
          5.4     PROGRAMMING                                        5-6 
          5.5     USE OF SPECIAL FUNCTIONS (.SPFUN)                  5-6 
          5.5.1     Unit Specification (.SPFUN 200)                  5-7 
          5.5.1.1     Allocate Unit                                  5-8 
          5.5.1.2     Deallocate Unit                                5-9 
          5.5.2     Promiscuous Mode (.SPFUN 201)                   5-10 
          5.5.2.1     Enable Promiscuous Mode                       5-10 
          5.5.2.2     Disable Promiscuous Mode                      5-11 
          5.5.3     Protocol Type (.SPFUN 202)                      5-12 
          5.5.3.1     Enable Protocol Type                          5-12 
          5.5.3.2     Disable Protocol Type                         5-13 
          5.5.4     Multicast Address (.SPFUN 203)                  5-14 
          5.5.4.1     Enable Multicast Address                      5-14 
          5.5.4.2     Disable Multicast Address                     5-15 
          5.5.5     Transmit Ethernet Frame (.SPFUN 204)            5-16 
          5.5.6     Receive Ethernet Frame (.SPFUN 205)             5-17 
          5.5.7     Frame Queueing (.SPFUN 206)                     5-18 
          5.5.7.1     Enable Frame Queueing                         5-19 
          5.5.7.2     Disable Frame Queueing                        5-19 
          5.5.8     Get Ethernet Address (.SPFUN 207)               5-20 
          5.5.9     Get Ethernet Status Block (.SPFUN 210)          5-21 
          5.5.10    Abort Job I/O (.SPFUN 211)                      5-22 
          5.5.11    Timeout / Reset (.SPFUN 212)                    5-22 
          5.5.11.1    Receive Timeout / Reset                       5-23 
          5.5.11.2    Transmit Timeout / Reset                      5-23 
          5.6     HANDLERS FOR TSX-PLUS V6.0 THROUGH V6.2           5-24 
          5.6.1     Get PLAS Allocation Size (.SPFUN 300)           5-24 
          5.6.2     Initialize Handler (.SPFUN 301)                 5-25 
          5.6.3     ENPLAS.SAV - Allocating the PLAS Region         5-25 

        CHAPTER 6  BUILDING THE FTP AND TELNET PACKAGE               6-1 
          6.1     C COMPILER                                         6-1 


                                                                 Page ii
        


          6.1.1     Building under RT-11                             6-1 
          6.1.2     Building under TSX-Plus                          6-2 
          6.2     FTP AND TELNET PACKAGE                             6-2 
          6.3     COMPILING OPTIONS                                  6-3 

        CHAPTER 7  DISTRIBUTION DISKS                                7-1 

        APPENDIX A  SMALL SYSTEM CHANGE LOG                          A-1 
          A.1     VERSION 2.40                                       A-2 
          A.2     VERSION 2.38                                       A-3 
          A.3     VERSION 2.38                                       A-4 
          A.4     VERSION 2.37                                       A-5 
          A.5     VERSION 2.36                                       A-6 
          A.6     VERSION 2.35                                       A-7 
          A.7     VERSION 2.34                                       A-8 
          A.8     VERSION 2.33                                       A-9 
          A.9     VERSION 2.32                                      A-10 
          A.10    VERSION 2.31                                      A-12 
          A.11    VERSION 2.30                                      A-13 


                                                                Page iii
        


        FTP and Telnet Package for Small Systems, Version 2.40 

        Submitted by Alan R.  Baldwin, 
        Kent State University, Kent, Ohio 44242 

        Operating System:  RT-11/TSX-Plus 

        Source Langauge:  DECUS C and RT-11 Macro 

        Abstract:  

           The 'FTP and Telnet Package for Small Systems' provides stan-
        dalone FTP and Telnet programs.  These programs will run under
        all RT-11 monitors (SJ, SB, FB, XB, XM, ZB, and ZM) and
        TSX-Plus.  

           The sources for the 'FTP and Telnet Package for Small
        Systems' include header, command, C language, and macro files.
        The DECUS C compiler (with some bug fixes) and AS assembler are
        included with the software distribution to allow the package to
        be recompiled from the supplied sources.  

           The requirements are an RT-11 system with 56K bytes of memory
        and a DEQNA/DELQA (Q-Bus) or DEUNA/DELUA (Unibus) ethernet card
        with associated transceiver (thick, thin, or CAT-5).  



        Alan R. Baldwin
        Physics Department
        Kent State University
        Kent, Ohio  44242
        
        tel: (330) 672 2531
        fax: (330) 672 2959
        
        Internet:
        baldwin@kent.edu
        baldwin@shop-pdp.kent.edu














                                    CHAPTER 1

                              SOFTWARE INSTALLATION




           The  FTP and Telnet Package components should be installed as
        described  in  the  following  sections.   The  ethernet  device
        handler  specific to your particular hardware configuration must
        be copied to the RT-11 system device.  The logical name  assign-
        ments used by the package are:  

             1.  TCP:   Location of programs and configuration file.  

             2.  ENx:   Selected device driver units 0-3.  


           The  FTP and Telnet Package for Small Systems executables are
        found on logical disk SSDSK1.DSK.  The required device  handlers
        are found on the logical disks DVDSK1.DSK and DVDSK2.DSK.  


                                      NOTE

             The  size  of  one  or more of the programs FTPSB.SAV,
             TLNTSB.SAV, or CNCTSB.SAV  may  exceed  the  available
             program  space  under  the  SJ,  SB,  or  FB monitors.
             Usually the programs will load/run under the RT11 V5.3
             SJ  and FB monitors and the RT11 V5.6 SB monitor.  The
             RT11 V5.6 FB monitor must be minimally  configured  to
             load/run  the programs.  No limitation exists when run
             under an XM, ZM, or TSX monitor.  






        SOFTWARE INSTALLATION                                   PAGE 1-2
        INSTALLATION CONFIGURATIONS


        1.1  INSTALLATION CONFIGURATIONS 


           The  FTP  and  Telnet  package may be installed in one of the
        following three configurations:  


        1.1.1  Install All Files on System Device 


           All  command  files  and programs are copied directly to your
        system disk.  Assign SY:  to TCP:.  This configuration  installs
        9 files (and 320 blocks) on your system disk.  


        1.1.2  Install Only Command Files on System Device 


           Create  a  seperate  logical disk (TCP:) for the programs and
        copy only the command files to the system directory.  This  will
        install 3 files (and 3 blocks) on your system device.  


        1.1.3  Install All Files on a Logical Disk 


           Create  a  seperate  logical  disk (TCP:) for the package and
        copy all the files to this disk.  


        1.2  SOFTWARE COMPONENTS 


           The   following   annotated   list  summarizes  the  software
        components:  

        1.  FTP Client 
           1.  FTP.CSM          FTP IND control file (SJ/SB/FB) 
           2.  FTP.CXM          FTP IND control file (XB/XM/ZB/ZM) 
           3.  FTP.CTM          FTP command file (TSX) 
           4.  FTPSB.SAV        FTP client program 


        2.  Telnet Client 
           1.  TELNET.CSM       TELNET IND control file (SJ/SB/FB) 
           2.  TELNET.CXM       TELNET IND control file (XB/XM/ZB/ZM) 
           3.  TELNET.CTM       TELNET command file (TSX) 
           4.  TLNTSB.SAV       TELNET client program 


        3.  CNCT Client 


        SOFTWARE INSTALLATION                                   PAGE 1-3
        SOFTWARE COMPONENTS


           1.  CNCT.CSM         CNCT IND control file (SJ/SB/FB) 
           2.  CNCT.CXM         CNCT IND control file (XB/XM/ZB/ZM) 
           3.  CNCT.CTM         CNCT command file (TSX) 
           4.  CNCTSB.SAV       CNCT client program 


        4.  Miscellaneous Files 
           1.  TCPIP.CFG        Configuration file 
           2.  RTUCL.INS        UCL commands for RT-11 SJ/SB/FB 
           3.  XMUCL.INS        UCL commands for RT-11 XB/XM/ZB/ZM 
           4.  TSXUCL.INS       UCL commands for TSX-Plus 
           5.  TCPIP.RT         TCPIP.RUN for RT-11 SJ/SB/FB 
           6.  TCPIP.XM         TCPIP.RUN for RT-11 XB/XM/ZB/ZM 
           7.  TCPIP.TSX        TCPIP.RUN for TSX-Plus 



        1.3  CONFIGURATION FILE 


           Each of the programs, FTPSB, TLNTSB, and CNCTSB, requires the
        configuration file TCPIP.CFG which defines  all  the  parameters
        required  to  configure  the  programs for network access.  Note
        that TCP/IP services, tasks, and session logging  are  commented
        out as these are not support.  


        SOFTWARE INSTALLATION                                   PAGE 1-4
        CONFIGURATION FILE


#
#  Example host file for TCP/IP server
#
#  This file is free form
#  Separators are any char <32, 'space' and '='
#  Comments are preceeded by #
#
#  The form is keyword=value for each parameter.
#  The first set of parameters refer to the whole program's defaults.
#  These parameter values can be in any order.
#  Following this are the individual machine specs.
#  If the first machine is name "default", then it contains default
#  values for the rest of the machines.
#
#       These options are specified for this host machine:
#
#       myname=____.____.____   # my internet name
#       myip=___.___.___.___    # host machines's IP number
#           =BOOTP              # to use BOOTP to get host info
#           =RARP               # to use RARP to get IP number
#       netmask=___.___.___.___ # subnetting mask
#       domain=____.____        # default domain for lookup
#       nndomto=____            # timeout for domain lookups
#       nnretry=____            # number of retries for lookup
#       nnarpto=____            # timeout for ARPs
#       nndto=____              # timeout for data layer
#       nnpkt=____              # TCPIP upper limit packets per transq
#                               # nnpkt=1, requires ACK for each packet
#       nnwin=____              # TCPIP upper limit window size
#       nnseg=____              # TCPIP upper limit input segment size
#       nnmtu=____              # TCPIP upper limit output transfer size
#       service=___,___,_____   # TCPIP services specification
#       task=___,___,_____      # TCPIP task specification
#       logsession=__________   # TCPIP session logging filespec
#


        SOFTWARE INSTALLATION                                   PAGE 1-5
        CONFIGURATION FILE


#
#       These are the options which may be specified for each
#       individual machine specification:
#
#       name=____               # name of session (required)
#       host=____               # full name of host computer
#       hostip=___.___.___.___  # IP number of host
#       port=____               # specify initial connection port
#       nameserver=____         # name server level
#       gateway=____            # gateway level
#       retrans=____            # initial retransmit timeout
#       contime=____            # opening connection timeout
#       mwin=____               # advertized window size for this host
#       mseg=____               # maximum advertized input segment size
#       mtu=____                # maximum output transfer size
#       delete=backspace        # value to use for character deletion
#       crmap=4.3BSDCRNUL       # for 4.3BSD null CR
#       duplex=half             # for half duplex TELNET connections
#       copyfrom=____           # copy parameters from this name
#
myname=machine.domain.name
myip=192.3.2.100        # required, this machine's IP number
netmask=255.255.255.0   # subnetting mask
domain="domain.name"    # domain name search path

                        # affects machines on your local network
nnwin=512               # limit advertized window (nnwin == mwin)
nndomto=5               # domain timeout
nnretry=4               # number of retries
nnarpto=2               # arp timeout in seconds
nnpkt=1                 # send only 1 packet(s) per transq



        SOFTWARE INSTALLATION                                   PAGE 1-6
        CONFIGURATION FILE


#  The following line specifies the TCPIP logging file
#  which will contain information for each session
#  started:     TELNET / RTELNT / RPTLNT / CNCT / RCNCT / RPCNCT
#               FTP / FTPL / RFTP
#               MAIL / RSMTP / RPOP3 / MAILER / MMAIL
#               RHTTP / RGOPH / RAUTH
#               RLPD / LPRINT / LPQRM / LLPQRM
#               NTSND / PMON

#logsession=sy:tcpip.log[100]

#  The following are services supported by TCPIP.
#  Each entry contains the listen port, maximum number of
#  sessions and the name of the command file to initiate
#  the service.

#service=21,1,sy:rftp.srv       # remote ftp server
#service=23,1,sy:rtelnt.srv     # remote telnet server
#service=25,1,sy:rsmtp.srv      # remote smtp server (task: -t 1)
#service=27,1,sy:rcnct.srv      # remote cnct server
#service=70,1,sy:rgoph.srv      # remote gopher server
#service=80,1,sy:rhttp.srv      # remote http server
#service=110,1,sy:rpop3.srv     # remote pop3 server (task: -t 1)
#service=113,1,sy:rauth.srv     # remote auth server
#service=515,1,sy:rlpd.srv      # remote lpd server  (task: -t 2)

#  The following specify the tasks that may be initiated by TCPIP.
#  Each entry contains the taskid number, timer interval in seconds
#  (zero means not an automatically started task), and the name
#  of the command file to initiate the service.  These tasks donot
#  have to be related to TCPIP programs, however a TCPIP program
#  can use the TASKCLASS to start a specific task. The selected
#  task will be scheduled by TCPIP and only one (1) copy of the
#  the task will be allowed to run.  Additional requests to start
#  the task will be queued as a single request to rerun the task
#  at the completion of the currently executing task.

#task=1,0,sy:mailer.srv # mmail / pop3      mail delivery agent
#task=2,0,sy:lprint.srv # rlpd / llpqrm     printing delivery agent


        SOFTWARE INSTALLATION                                   PAGE 1-7
        CONFIGURATION FILE


#
#  Following are individual machine specifications
#  Gateways are used in the order that they appear in the file
#  Nameservers rotate, #1, #2, #3, #1, #2 when a request fails
#
#  The machine named "default" contains the fields which are
#  automatically filled in for later hosts
#
name=default            # Session name, "default" is a reserved name
                        # Not a real machine, default parameters only
delete=delete           # Assume mostly non-UNIX connections

#  The following entries affect the tuning of
#       TCP connections to this host.
#  They should be set by the network administrator who is familiar
#       with the requirements of your specific network.

contime=12              # timeout in seconds to try connection
                        #   before returning error to user
retrans=5               # starting retransmit time out in seconds
mtu=512                 # maximum transmit unit in bytes
                        #   outgoing packet size
                        #   MIN = 128, DEFAULT = 512, MAX = 512
mseg=512                # largest segment we can receive
                        #   whatever the hardware can take
                        #   MIN = 128, DEFAULT = 512, MAX = 512
mwin=512                # most bytes we can receive without ACK
                        #   = TCP window size
                        #   MIN = 128, DEFAULT = 512, MAX = 512
                        #   larger isn't always better

#
#  Below this line, most of the communication parameters are obtained
#   from the "default" host entry.
#  Machine names, IP addresses, and special communication parameters
#   are present when needed.
#

name=mygateway          hostip=192.3.2.2
                        gateway=1

name=nameserver         hostip=192.3.2.1
                        nameserver=1

name=alpha              host=alpha.domain.name
                        hostip=192.3.2.200



        SOFTWARE INSTALLATION                                   PAGE 1-8
        CONFIGURATION FILE


#
# If during TCPIP startup you get the error Sreadhosts() error 2,
# you probably have exceeded the memory limits of the machine.
#
#       (1)     reduce the number of machine definitions above
#       (2) or  donot use session logging
#
# Sesion logging and Debugging should not be simultaneously enabled.
#



           The  program  needs  to  know  the  ip address(number) of the
        machine to which it is connecting.  If the TCPIP.CFG  file  does
        not  contain  the  named machines' ip number then it will make a
        request to the specified name server to obtain the  machines  ip
        number.   If  a name server is not specified then the connection
        cannot be made using the machines name (place the machines  name
        and ip address in the configuration file).  If the ip address is
        given as the input to the client program rather  than  the  name
        then a domain name lookup is not required.  


        1.4  INSTALLATION IN DETAIL 


           Complete  the  hardware  installation  as  described  in  the
        chapter titled Hardware Installation.  

           Under RT-11 or TSX-Plus the most convenient installation is: 

        1.  Copy the .SAV files from the distribution disk SMLTCP.DSK to
            SY:  

        2.  Copy the command files from the distribution disk SMLTCP.DSK
            to SY:  
            1.  RT-11 (SJ/SB/FB):  files *.CSM 
            2.  RT-11 (XB/XM/ZB/ZM):  files *.CXM 
            3.  TSX-Plus:  files *.CTM 


        3.  Copy  the configuration file TCPIP.CFG from the distribution
            disk SMLTCP.DSK to SY:.  

        4.  Copy  the  UCL  command  file  from  the  distribution  disk
            SMLTCP.DSK to SY:  
            1.  RT-11 (SJ/SB/FB):  file RTUCL.INS 
            2.  RT-11 (XB/XM/ZB/ZM):  file XMUCL.INS 
            3.  TSX-Plus:  file TSXUCL.INS 




        SOFTWARE INSTALLATION                                   PAGE 1-9
        INSTALLATION IN DETAIL


        5.  Copy the system specific TCPIP.___ file to SY:TCPIP.RUN.  
            1.  RT-11 (SJ/SB/FB):  file TCPIP.RT 
            2.  RT-11 (XB/XM/ZB/ZM):  file TCPIP.XM 
            3.  TSX-Plus:  file TCPIP.TSX 


        6.  Install UCL commands:  
            1.  RT-11 (SJ/SB/FB):  Type '$@RTUCL.INS' 
            2.  RT-11 (XB/XM/ZB/ZM):  Type '$@XMUCL.INS' 
            3.  TSX-Plus:  Installation is in TCPIP.TSX 


        7.  Verify  that  your system was sysgened for timer support and
            no error logging.  If not, then perform a system  generation
            or rebuild the device handlers to your requirements.  

        8.  Copy and rename the appropriate device handler from the log-
            ical disks  DVDSK1.DSK  or  DVDSK2.DSK  to  SY:.   (See  the
            chapter on device handlers for more information on selecting
            the appropriate device handler.) 

        9.  Install  the  handler  using the 'install' command or reboot
            the system and verify the handler was installed.  

        10.  Edit  the  file  SY:TCPIP.RUN  to  assign  TCP:,  load  the
            appropriate device handler (RT-11 only) and assign units 0-3
            of the device handler to EN0-3.  

        11.  Edit  the  file  SY:TCPIP.CFG for your configuration.  Your
            machine's name and IP address are required and the  specifi-
            cation of a name server and gateway may be required for your
            network.  

        12.  Type  '$@SY:TCPIP.RUN'  to load the handler.  (You may wish
            to add the line '$@SY:TCPIP.RUN' to your RT-11 startup  com-
            mand file or your TSX-Plus LINEx.TSX file.) 

        13.  Attempt to FTP or Telnet to a local computer using only the
            IP number of that computer.  (verifies connections are  pos-
            sible) 

        14.  Attempt  to  FTP  or  Telnet  to a local computer using the
            computer's name.  The computer's name and  IP  address  must
            not  be  in  the  TCPIP.CFG  file.   (verifies that the name
            server entry is correct) 

        15.  Attempt  to  FTP  or  Telnet to a machine not on your local
            network.  If you use the machine's name then the name server
            must  be working or the machine's name and IP number must be
            in the configurataion file TCPIP.CFG.   (verifies  that  the
            gateway entry is correct) 















                                    CHAPTER 2

                              HARDWARE INSTALLATION





        2.1  Q-BUS SYSTEMS 


           A Q-Bus based RT-11 or TSX-Plus system requires the installa-
        tion of a DEQNA or DELQA communications  controller.   A  system
        memory  of  56K  bytes  for  SJ/SB/FB  systems,  96K  bytes  for
        XB/XM/ZB/ZM systems, and 128K bytes for TSX-Plus systems is  re-
        quired.   The  EQSJ__ and EQSB__ handlers use about 4K bytes in-
        cluding the internal buffers.  The EQ18XM and EQ18.TSX  handlers
        use  about  5.5K  bytes including the internal buffers.  The NQX
        handler uses about 7.5K bytes.  

           Blockmode  memory  is  recommended  for use with the DEQNA or
        DELQA communications controller although not necessary.  

           The  DEQNA or DELQA interface is connected via a bulkhead ca-
        ble assembly (with perhaps an extension ETHERNET transceiver ca-
        ble)  to a transceiver (with either a thick, thin, or CAT-5 wire
        connection).  


        2.2  1;UNIBUS SYSTEMS 


           A  Unibus based RT-11 or TSX-Plus system requires the instal-
        lation of a DEUNA or DELUA communications controller.  A  system
        memory  of  56K  bytes  for  SJ/SB/FB  systems,  96K  bytes  for
        XB/XM/ZB/ZM systems, and 128K bytes for TSX-Plus systems is  re-
        quired.   The  EUSJ__ and EUSB__ handlers use about 4K bytes in-
        cluding the internal buffers.  The EU18XM and EU18.TSX  handlers
        use  about  6.5K  bytes including the internal buffers.  The NUX
        handler uses about 7.5K bytes.  

           The  DEUNA or DELUA interface is connected via a bulkhead ca-
        ble assembly (with perhaps  an  extension  ETHERNET  transceiver


        HARDWARE INSTALLATION                                   PAGE 2-2
        1;UNIBUS SYSTEMS


        cable)  to  a  transceiver  (with either a thick, thin, or CAT-5
        wire connection).  














                                    CHAPTER 3

                                SYSTEM GENERATION




           The  FTP  and  Telnet  Package for Small Systems is for RT-11
        versions 5.3 and later and TSX-PLus.  This package does not  re-
        quire   a   mapped  monitor.   Device  handlers  supporting  the
        DEQNA/DELQA (EQ and NQ), DEUNA/DELUA (EU and NU), and DECNA (NC)
        are  provided  for  the various devices and processor configura-
        tions.  

           The  selection of the appropriate device handler is dependent
        upon the RT11/TSX-Plus version and processor  configuration.   A
        custom  device  handler  may  be built using the supplied condi-
        tional files.   Options  for  building  the  EQ  and  EU  device
        handlers  include  the number of internal packet buffers, device
        timeout, mfps/mtps or PSW processor types,  and  optional  spfun
        selection.  

           For  small  systems  (i.e.   56K bytes) the EQSB__ and EUSB__
        handlers have been built for only 2 internal packet buffers,  no
        EIS  instructions,  and  support  for  spfuns  206 and 212.  The
        EQSJ__ and EUSJ__ handlers add support for spfun 211.  

           For  mapped  RT-11 systems (96K bytes or larger) and TSX-Plus
        systems select the appropriate mapped handler for your system.  


        SYSTEM GENERATION                                       Page 3-2
        


        Summary of prebuilt EQ/EU/NC/NQ/NU
        device drivers and supported systems:


        RT-11 VERSION   [5.3]   [5.4]   [5.5]      [5.6 ...]    TSX
                        -----   -----   -----      ---------    ---
        eqsjms.[ext]    SJ/FB   SJ/FB   SJ/FB          -         -
        eusjms.[ext]    SJ/FB   SJ/FB   SJ/FB          -         -
        eqsjps.[ext]    SJ/FB   SJ/FB   SJ/FB          -         -
        eusjps.[ext]    SJ/FB   SJ/FB   SJ/FB          -         -
        
        eqsbms.[ext]      -       -       -          SB/FB       -
        eusbms.[ext]      -       -       -          SB/FB       -
        eqsbps.[ext]      -       -       -          SB/FB       -
        eusbps.[ext]      -       -       -          SB/FB       -
        
        eq18xm.[ext]      XM      XM      XM      XB/XM/ZB/ZM    -
        eq22xm.[ext]      XM      XM      XM      XB/XM/ZB/ZM    -
        
        eu18xm.[ext]      XM      XM      XM      XB/XM/ZB/ZM    -
        
        ncxv56.[ext]      -       ?       ?       XB/XM/ZB/ZM    -
        nqxv56.[ext]      -       ?       ?       XB/XM/ZB/ZM    -
        nuxv56.[ext]      -       ?       ?       XB/XM/ZB/ZM    -
        
        eq18.v62          -       -       -            -        <= V6.2
        eq22.v62          -       -       -            -        <= V6.2
        
        eu18.v62          -       -       -            -        <= V6.2
        eu22.v62          -       -       -            -        <= V6.2
        
        eq18.tsx          -       -       -            -        >= V6.4
        eq22.tsx          -       -       -            -        >= V6.4
        
        eu18.tsx          -       -       -            -        >= V6.4
        eu22.tsx          -       -       -            -        >= V6.4
        
        
        ______.[ext]    ext == sys, for monitor  with   device timeout
                        ext == nys, for monitor without device timeout
        
        ____ms.[ext]    Drivers are for LSI/11 processors not having a
                        processor status word (PSW == @#177776).
        
        ____ps.[ext]    Drivers are for all processors with a
                        processor status word (PSW == @#177776).
        
        __sj__.[ext]    Drivers contain special function 211 (abort
                        job i/o) for RT11SJ monitors.


        SYSTEM GENERATION                                       Page 3-3
        


        Summary of prebuilt EQ/EU/NC/NQ/NU
        device driver features:


                                SPFUNS               DEVICE
                       206  207  210  211  212    EIS  PSW  UMR
                       ---  ---  ---  ---  ---    ---  ---  ---
        eqsjms.[ext]    X    -    -    X    X      -    -    -
        eusjms.[ext]    X    -    -    X    X      -    -    -
        eqsjps.[ext]    X    -    -    X    X      -    X    -
        eusjps.[ext]    X    -    -    X    X      -    X    -
        
        eqsbms.[ext]    X    -    -    -    X      -    -    -
        eusbms.[ext]    X    -    -    -    X      -    -    -
        eqsbps.[ext]    X    -    -    -    X      -    X    -
        eusbps.[ext]    X    -    -    -    X      -    X    -
        
        eq18xm.[ext]    X    X    X    -    X      X    X    -
        eq22xm.[ext]    X    X    X    -    X      X    X    -
        
        eu18xm.[ext]    X    X    X    -    X      X    X    -
        
        ncxv56.[ext]    X    X    X    -    X      X    X    -
        nqxv56.[ext]    X    X    X    -    X      X    X    -
        nuxv56.[ext]    X    X    X    -    X      X    X    X
        
        eq18.v62        X    X    X    -    X      X    X    -
        eq22.v62        X    X    X    -    X      X    X    -
        
        eu18.v62        X    X    X    -    X      X    X    -
        eu22.v62        X    X    X    -    X      X    X    X
        
        eq18.tsx        X    X    X    -    X      X    X    -
        eq22.tsx        X    X    X    -    X      X    X    -
        
        eu18.tsx        X    X    X    -    X      X    X    -
        eu22.tsx        X    X    X    -    X      X    X    X
        
        
        ______.[ext]    ext == sys, for monitor  with   device timeout
                        ext == nys, for monitor without device timeout
        
        ____ms.[ext]    Drivers are for LSI/11 processors not having a
                        processor status word (PSW == @#177776).
        
        ____ps.[ext]    Drivers are for all processors with a
                        processor status word (PSW == @#177776).
        
        __sj__.[ext]    Drivers contain special function 211 (abort
                        job i/o) for RT11SJ monitors.


        SYSTEM GENERATION                                       Page 3-4
        


           In  addition  to  the  device  handlers  listed in the Device
        Handler tables above are 8 alternate handlers which may  be  re-
        quired  when configuring a system using the DEUNA network inter-
        face.  The DEUNA has  very  little  internal  buffer  space  for
        packets  and  requires more external buffers to operate reliably
        on networks with more than a few active computers.  Testing on a
        PDP-11/44 / DEUNA system attached to a local network having over
        250 active computers required  4  internal  packet  buffers  for
        reliable  operation.   The  additional  EU handlers for SJFB and
        SBFB monitors listed in the  following  table  have  4  internal
        packet buffers instead of the nominal 2 packet buffers.  


        Summary of prebuilt 4 buffer EU device drivers:


        RT-11 VERSION   [5.3]   [5.4]   [5.5]      [5.6 ...]
                        -----   -----   -----      ---------
        eusjm4.[ext]    SJ/FB   SJ/FB   SJ/FB          -
        eusjp4.[ext]    SJ/FB   SJ/FB   SJ/FB          -
        
        eusbm4.[ext]      -       -       -          SB/FB
        eusbp4.[ext]      -       -       -          SB/FB
        
        
                                SPFUNS               DEVICE
                       206  207  210  211  212    EIS  PSW  UMR
                       ---  ---  ---  ---  ---    ---  ---  ---
        eusjm4.[ext]    X    -    -    X    X      -    -    -
        eusjp4.[ext]    X    -    -    X    X      -    X    -
        
        eusbm4.[ext]    X    -    -    -    X      -    -    -
        eusbp4.[ext]    X    -    -    -    X      -    X    -
        
        
        ______.[ext]    ext == sys, for monitor  with   device timeout
                        ext == nys, for monitor without device timeout
        
        ____m4.[ext]    Drivers are for LSI/11 processors not having a
                        processor status word (PSW == @#177776).
        
        ____p4.[ext]    Drivers are for all processors with a
                        processor status word (PSW == @#177776).
        
        __sj__.[ext]    Drivers contain special function 211 (abort
                        job i/o) for RT11SJ monitors.














                                    CHAPTER 4

                                 PROGRAM OPTIONS




           These  programs may be run under RT-11 and TSX-Plus.  Use the
        appropriate file, TSXUCL.INS, XMUCL.INS, or RTUCL.INS to  define
        the UCL commands for your particular system.  

           The  program startup options are outlined and typical startup
        command files listed.  


        4.1  FTP 


           The  FTPSB  program  provides  reliable data transfer between
        cooperating computer systems.  The FTP program  startup  options
        are:  

          FTPSB [?] [-ehv] [-f filespec] [destination host]
                ?               List this Help Text and Exit FTPSB
                e               Enable Error Message Printing
                f  filespec     Configuration File
                h               FTPSB Help List
                v               Verbose Mode Disabled


           The  destination  host  specification may be the host name or
        host ip number.  If the connection is to be made to an alternate
        port then follow the name/ip with the port number (decimal).  

           The FTP program supports the following command line options: 

        ?               print local help information
        ascii           set ascii transfer type
        bell            toggle command completed beep
        binary          set binary transfer type
        cd              change remote working directory
        close           terminate ftp session
        debug           toggle/set debugging mode
        delete          delete remote file


        PROGRAM OPTIONS                                         PAGE 4-2
        FTP


                                - inquires if prompting is on
        dir             list contents of remote directory
        duplicate       enable/disable duplicate packets
        get             receive file
        hash            toggle printing `#' for each
                                1024 bytes transferred
        help            print local help information
        ls              list contents of remote directory
        mkdir           make directory on the remote machine
        netdebug        toggle/set network debugging mode
        open            connect to remote ftp
        passive         enable or disable passive transfer mode
        put             send one file
        pwd             print working directory on remote machine
        quit            terminate ftp session and exit
        quote           send arbitrary ftp command
        recv            receive file
        remotehelp      get help from remote server
        rename          rename remote file
        rm              delete remote file
        rmdir           remove directory on the remote machine
        send            send one file
        sendport        toggle use of PORT cmd for each data connection
        status          show current status
        system          query remote system type
        type            print a remote file to the screen
        user            send new user information
        verbose         toggle verbose mode
        version         FTPSB-11 version displayed



           The  commands  get,  put, and send allow explicit renaming of
        the  files  during  the  transfer  by  specifying  the  optional
        destination file name:  

                get/put/send [source name] [destination name]



           The commands put or send can be used to transfer a device im-
        age to an image file (must specify binary format):  

                put/send  dev:[-1]  destination-image-file



           The command get can be used to restore a device from an image
        file (must specify binary format):  

                get  source-image-file  dev:[-1]


        PROGRAM OPTIONS                                         PAGE 4-3
        FTP




        For  RT-11-SJ/SB/FB  the  IND  control  file  FTP.CSM starts the
        program:  

                .sets cmdlin "-h "+"'p1' 'p2' 'p3' 'p4' 'p5' 'p6'"
                .open sy:tcpfun.com
                .data run TCP:ftpsb.sav
                .data 'cmdlin'
                .close
                $@sy:tcpfun


        For  RT-11-XB/XM/ZB/ZM  the  IND control file FTP.CXM starts the
        program:  

                .sets cmdlin "-h "+"'p1' 'p2' 'p3' 'p4' 'p5' 'p6'"
                .open sy:tcpfun.com
                .data r sy:vbgexe.sav
                .data TCP:ftpsb.sav
                .data 'cmdlin'
                .close
                $@sy:tcpfun


        For TSX-Plus the command file FTP.CTM starts the program:  

                run/single TCP:ftpsb.sav
                -h ^1 ^2 ^3 ^4 ^5 ^6


        4.2  TELNET 


           The  TLNTSB  program allows the user to initiate a connection
        to a remote host for a terminal session.   The  startup  options
        for TELNET are:  

          TLNTSB destination [?] [-eh] [-f filespec]
                ?               List the Help Text and Exit TLNTSB
                e               Enable Error Message Printing
                f  filespec     Configuration File
                h               List the Help Text and Open Connection


           The  destination  host  specification may be the host name or
        host ip number.  If the connection is to be made to an alternate
        port then follow the name/ip with the port number (decimal).  

           The  TLNTSB  program  supports the following command line op-
        tions which are activated by the META character 'control A':  



        PROGRAM OPTIONS                                         PAGE 4-4
        TELNET


                M->C    open capture file
                M->D    close capture file
                M->F    FTP [internet address]
                M->H    this help screen
                M->I    type my internet address
                M->K    erase character
                M->O    abort output
                M->Q    are you there?
                M->R    toggle  follow character
                M->S    skip to end of buffer
                M->T    toggle backspace/delete
                M->U    erase line
                M->X    close connection
                M->Y    interrupt process
                M->@    send a true null character
        
                 ^?      abort Telnet session


        For  RT-11-SJ/SB/FB  the  IND control file TELNET.CSM starts the
        program:  

                .sets cmdlin "-h "+"'p1' 'p2' 'p3' 'p4' 'p5' 'p6'"
                .open sy:tcpfun.com
                .data run TCP:tlntsb.sav
                .data 'cmdlin'
                .close
                $@sy:tcpfun


        For RT-11-XB/XM/ZB/ZM the IND control file TELNET.CXM starts the
        program:  

                .sets cmdlin "-h "+"'p1' 'p2' 'p3' 'p4' 'p5' 'p6'"
                .open sy:tcpfun.com
                .data r sy:vbgexe.sav
                .data TCP:tlntsb.sav
                .data 'cmdlin'
                .close
                $@sy:tcpfun


        For TSX-Plus the command file TELNET.CTM starts the program:  

                run/single TCP:tlntsb.sav
                -h ^1 ^2 ^3 ^4 ^5 ^6




        PROGRAM OPTIONS                                         PAGE 4-5
        CNCT


        4.3  CNCT 


           The  CNCTSB  program allows the user to initiate a connection
        to a remote RT-11/TSX-Plus host for a  terminal  session.   This
        program  is  the  TLNTSB program stripped of all TELNET negotia-
        tions and uses a non standard TCP port (27).   The  startup  op-
        tions for CNCTSB are:  

          CNCTSB destination [?] [-eh] [-f filespec]
                ?               List the Help Text and Exit CNCTSB
                e               Enable Error Message Printing
                f  filespec     Configuration File
                h               List the Help Text and Open Connection


           The  destination  host  specification may be the host name or
        host ip number.  If the connection is to be made to an alternate
        port then follow the name/ip with the port number (decimal).  

           The  CNCTSB  program  supports the following command line op-
        tions which are activated by the META character 'control A':  

                M->C    open capture file
                M->D    close capture file
                M->F    FTP [internet address]
                M->H    this help screen
                M->I    type my internet address
                M->O    abort output
                M->Q    are you there?
                M->S    skip to end of buffer
                M->X    close connection
                M->Y    interrupt process
        
                 ^?      abort CNCT session


        For  RT-11-SJ/SB/FB  the  IND  control  file CNCT.CSM starts the
        program:  

                .sets cmdlin "-h "+"'p1' 'p2' 'p3' 'p4' 'p5' 'p6'"
                .open sy:tcpfun.com
                .data run TCP:cnctsb.sav
                .data 'cmdlin'
                .close
                $@sy:tcpfun


        For  RT-11-XB/XM/ZB/ZM  the IND control file CNCT.CXM starts the
        program:  



        PROGRAM OPTIONS                                         PAGE 4-6
        CNCT


                .sets cmdlin "-h "+"'p1' 'p2' 'p3' 'p4' 'p5' 'p6'"
                .open sy:tcpfun.com
                .data r sy:vbgexe.sav
                .data TCP:cnctsb.sav
                .data 'cmdlin'
                .close
                $@sy:tcpfun


        For TSX-Plus the command file CNCT.CTM starts the program:  

                run/single TCP:cnctsb.sav
                -h ^1 ^2 ^3 ^4 ^5 ^6














                                    CHAPTER 5

                            ETHERNET DEVICE HANDLERS




           The   device  handlers  provide  support  for  the  following
        hardware controllers:  

        1.  DEQNA/DELQA (EQ and NQ Drivers) 

        2.  DEUNA/DELUA (EU and NU Drivers) 

        3.  DECNA (NC Driver) 


           The  Ethernet handlers provide support for one controller and
        a maximum of 8 units numbered 0 through 7.  These  unit  numbers
        are  used  as a logical connection between a user program and an
        address/protocol pair to be recognized by the Ethernet hardware. 

           The NC/NQ/NU device handlers are the DEC handlers modified to
        include special functions 206 (enable/disable frame bufferring),
        207  (get physical address), 210 (get handler status block), and
        212 (device time-out and reset) .  These handlers  support  only
        RT11XM  V5.6  (and  later), NU is coded to use the UB.SYS pseudo
        handler for UNIBUS systems with greater than  256K  bytes.   The
        NC/NQ/NU  handlers perform all interrupt processing at IRQ level
        (FORK level is never entered)  and  do  not  internally  support
        device timeout.  

           The  EQ/EU  device  handlers  are logically equivalent to the
        NQ/NU device handlers but were designed with  special  functions
        206  (enable/disable  frame  bufferring),  207 (get physical ad-
        dress), 210 (get handler status block), 211 (abort job i/o,  for
        SJ  monitors  only),  and  212 (device time-out and reset).  The
        EQ/EU handlers perform all interrupt processing  at  FORK  level
        and donot internally support device timeout.  These handlers may
        be conditionally assembled to support the RT11 SJ, SB,  FB,  and
        XM  monitors (versions 5.3 and later) not supported by the NQ/NU
        device handlers.  



        ETHERNET DEVICE HANDLERS                                Page 5-2
        


           The  EQ  and  EU  handlers may be conditionally assembled for
        Version 6 of the  TSX-Plus  operating  system.   The  22-bit  EU
        handler  requires  a  change in the TSX sysgen file TSGEN.MAC to
        allocate 4 UMR registers to the EU handler.   TSX-Plus  versions
        6.0  through  6.2  require a unique version of the EQ/EU handler
        with special functions 300 (get PLAS region size), 301 (initial-
        ize handler with PLAS region base address), and the support pro-
        gram ENPLAS.SAV.  The program ENPLAS.SAV creates the PLAS memory
        region required by the handler.  


        ETHERNET DEVICE HANDLERS                                Page 5-3
        


        5.1  DEVICE HANDLER SYSTEM SUMMARY 

        Summary of prebuilt EQ/EU/NC/NQ/NU
        device drivers and supported systems:


        RT-11 VERSION   [5.3]   [5.4]   [5.5]      [5.6 ...]    TSX
                        -----   -----   -----      ---------    ---
        eqsjms.[ext]    SJ/FB   SJ/FB   SJ/FB          -         -
        eusjms.[ext]    SJ/FB   SJ/FB   SJ/FB          -         -
        eqsjps.[ext]    SJ/FB   SJ/FB   SJ/FB          -         -
        eusjps.[ext]    SJ/FB   SJ/FB   SJ/FB          -         -
        
        eqsbms.[ext]      -       -       -          SB/FB       -
        eusbms.[ext]      -       -       -          SB/FB       -
        eqsbps.[ext]      -       -       -          SB/FB       -
        eusbps.[ext]      -       -       -          SB/FB       -
        
        eq18xm.[ext]      XM      XM      XM      XB/XM/ZB/ZM    -
        eq22xm.[ext]      XM      XM      XM      XB/XM/ZB/ZM    -
        
        eu18xm.[ext]      XM      XM      XM      XB/XM/ZB/ZM    -
        
        ncxv56.[ext]      -       ?       ?       XB/XM/ZB/ZM    -
        nqxv56.[ext]      -       ?       ?       XB/XM/ZB/ZM    -
        nuxv56.[ext]      -       ?       ?       XB/XM/ZB/ZM    -
        
        eq18.v62          -       -       -            -        <= V6.2
        eq22.v62          -       -       -            -        <= V6.2
        
        eu18.v62          -       -       -            -        <= V6.2
        eu22.v62          -       -       -            -        <= V6.2
        
        eq18.tsx          -       -       -            -        >= V6.4
        eq22.tsx          -       -       -            -        >= V6.4
        
        eu18.tsx          -       -       -            -        >= V6.4
        eu22.tsx          -       -       -            -        >= V6.4
        
        
        ______.[ext]    ext == sys, for monitor  with   device timeout
                        ext == nys, for monitor without device timeout
        
        ____ms.[ext]    Drivers are for LSI/11 processors not having a
                        processor status word (PSW == @#177776).
        
        ____ps.[ext]    Drivers are for all processors with a
                        processor status word (PSW == @#177776).
        
        __sj__.[ext]    Drivers contain special function 211 (abort
                        job i/o) for RT11SJ monitors.


        ETHERNET DEVICE HANDLERS                                PAGE 5-4
        DEVICE HANDLER SYSTEM SUMMARY


        5.2  DEVICE HANDLER FEATURE SUMMARY 

        Summary of prebuilt EQ/EU/NC/NQ/NU
        device driver features:


                                SPFUNS               DEVICE
                       206  207  210  211  212    EIS  PSW  UMR
                       ---  ---  ---  ---  ---    ---  ---  ---
        eqsjms.[ext]    X    -    -    X    X      -    -    -
        eusjms.[ext]    X    -    -    X    X      -    -    -
        eqsjps.[ext]    X    -    -    X    X      -    X    -
        eusjps.[ext]    X    -    -    X    X      -    X    -
        
        eqsbms.[ext]    X    -    -    -    X      -    -    -
        eusbms.[ext]    X    -    -    -    X      -    -    -
        eqsbps.[ext]    X    -    -    -    X      -    X    -
        eusbps.[ext]    X    -    -    -    X      -    X    -
        
        eq18xm.[ext]    X    X    X    -    X      X    X    -
        eq22xm.[ext]    X    X    X    -    X      X    X    -
        
        eu18xm.[ext]    X    X    X    -    X      X    X    -
        
        ncxv56.[ext]    X    X    X    -    X      X    X    -
        nqxv56.[ext]    X    X    X    -    X      X    X    -
        nuxv56.[ext]    X    X    X    -    X      X    X    X
        
        eq18.v62        X    X    X    -    X      X    X    -
        eq22.v62        X    X    X    -    X      X    X    -
        
        eu18.v62        X    X    X    -    X      X    X    -
        eu22.v62        X    X    X    -    X      X    X    X
        
        eq18.tsx        X    X    X    -    X      X    X    -
        eq22.tsx        X    X    X    -    X      X    X    -
        
        eu18.tsx        X    X    X    -    X      X    X    -
        eu22.tsx        X    X    X    -    X      X    X    X
        
        
        ______.[ext]    ext == sys, for monitor  with   device timeout
                        ext == nys, for monitor without device timeout
        
        ____ms.[ext]    Drivers are for LSI/11 processors not having a
                        processor status word (PSW == @#177776).
        
        ____ps.[ext]    Drivers are for all processors with a
                        processor status word (PSW == @#177776).
        
        __sj__.[ext]    Drivers contain special function 211 (abort
                        job i/o) for RT11SJ monitors.


        ETHERNET DEVICE HANDLERS                                PAGE 5-5
        DEVICE HANDLER FEATURE SUMMARY


        5.3  ALTERNATE DEUNA DEVICE HANDLERS 


           In  addition  to  the  device  handlers  listed in the Device
        Handler tables above are 8 alternate handlers which may  be  re-
        quired  when configuring a system using the DEUNA network inter-
        face.  The DEUNA has  very  little  internal  buffer  space  for
        packets  and  requires more external buffers to operate reliably
        on networks with more than a few active computers.  Testing on a
        PDP-11/44 / DEUNA system attached to a local network having over
        250 active computers required  4  internal  packet  buffers  for
        reliable  operation.   The  additional  EU handlers for SJFB and
        SBFB monitors listed in the  following  table  have  4  internal
        packet buffers instead of the nominal 2 packet buffers.  


        Summary of prebuilt 4 buffer EU device drivers:


        RT-11 VERSION   [5.3]   [5.4]   [5.5]      [5.6 ...]
                        -----   -----   -----      ---------
        eusjm4.[ext]    SJ/FB   SJ/FB   SJ/FB          -
        eusjp4.[ext]    SJ/FB   SJ/FB   SJ/FB          -
        
        eusbm4.[ext]      -       -       -          SB/FB
        eusbp4.[ext]      -       -       -          SB/FB
        
        
                                SPFUNS               DEVICE
                       206  207  210  211  212    EIS  PSW  UMR
                       ---  ---  ---  ---  ---    ---  ---  ---
        eusjm4.[ext]    X    -    -    X    X      -    -    -
        eusjp4.[ext]    X    -    -    X    X      -    X    -
        
        eusbm4.[ext]    X    -    -    -    X      -    -    -
        eusbp4.[ext]    X    -    -    -    X      -    X    -
        
        
        ______.[ext]    ext == sys, for monitor  with   device timeout
                        ext == nys, for monitor without device timeout
        
        ____m4.[ext]    Drivers are for LSI/11 processors not having a
                        processor status word (PSW == @#177776).
        
        ____p4.[ext]    Drivers are for all processors with a
                        processor status word (PSW == @#177776).
        
        __sj__.[ext]    Drivers contain special function 211 (abort
                        job i/o) for RT11SJ monitors.


        ETHERNET DEVICE HANDLERS                                PAGE 5-6
        ALTERNATE DEUNA DEVICE HANDLERS


        5.4  PROGRAMMING 


           Programs that call the Ethernet handler must follow a certain
        order.  Write such programs with the following elements  in  the
        order indicated.  

        1.  Use  the .LOOKUP programmed request to open a channel to the
            device unit.  

        2.  Allocate the unit using SPFUN 200.  

        3.  Perform the Ethernet operation(s).  

        4.  Deallocate the unit using SPFUN 200.  

        5.  Use  the  .CLOSE  programmed request to close the channel to
            the specified device unit.  





                                      NOTE

             Special functions 207 (get physical address), 210 (get
             handler status block), 211 (abort job  i/o),  and  212
             (device timeout / reset) do not require device alloca-
             tion.  




        5.5  USE OF SPECIAL FUNCTIONS (.SPFUN) 


           The  EQ/EU/NC/NQ/NU  Ethernet  handlers  operate the Ethernet
        controllers using the .SPFUN programmed request with the follow-
        ing function codes:  



        ETHERNET DEVICE HANDLERS                                PAGE 5-7
        USE OF SPECIAL FUNCTIONS (.SPFUN)


                Function                        Code
                --------                        ----
                Allocate unit                   200
                Deallocate unit                 200
        
                Enable Promiscuous Mode         201
                Disable Promiscuous Mode        201
        
                Enable protocol type            202
                Disable protocol type           202
        
                Enable multicast address        203
                Disable multicast address       203
        
                Transmit Ethernet frame         204
        
                Receive Ethernet frame          205
        
                Enable frame bufferring         206
                Disable frame bufferring        206
        
                Get physical address            207
        
                Get handler status block        210
        
                Abort Job I/O                   211
        
                Receive  Timeout / Reset        212
                Transmit Timeout / Reset        212


        Successful  completion of a .SPFUN request clears the carry bit.
        Completion with an error sets the carry bit, and the status word
        in the buffer contains an error code.  


        5.5.1  Unit Specification (.SPFUN 200) 


           The  allocate  unit  special  function allocates a unit for a
        job's exclusive use.  

           The deallocate unit special function deallocates a unit so it
        can be used by another job.  




        ETHERNET DEVICE HANDLERS                                PAGE 5-8
        USE OF SPECIAL FUNCTIONS (.SPFUN)


        5.5.1.1  Allocate Unit  - 

           The  following  is  the form of the special function allocate
        unit (.SPFUN 200):  

        Macro Call:
                .SPFUN  area,chan,func,buf,wcnt,blkn,[crtn]
        
        where:
        
                area    is address of 6-word EMT argument block
        
                chan    is a channel number in the range
                        0 to 376 (octal)
        
                func    is 200
        
                buf     is the address of a 4-word buffer
                        containing the status word and space
                        for the station's physical address.
                        The buffer contents are returned by
                        the allocate unit special function.
        
                        The high byte of the status word contains a 0.
                        Allocate unit returns one of the following
                        octal status codes in the low byte of the
                        status word:
        
                        0  Success
        
                        2  Controller error while attempting to
                           initialize the network interface
        
                        3  No resources (unit in use)
        
                        11 Reserved
        
                wcnt    is 0
        
                blkn    is 1
        
                crtn    is the entry point of a completion routine




        ETHERNET DEVICE HANDLERS                                PAGE 5-9
        USE OF SPECIAL FUNCTIONS (.SPFUN)


        5.5.1.2  Deallocate Unit  - 

           The  following is the form of the special function deallocate
        unit (.SPFUN 200):  

        Macro Call:
                .SPFUN  area,chan,func,buf,wcnt,blkn,[crtn]
        
        where:
        
                area    is address of 6-word EMT argument block
        
                chan    is a channel number in the range
                        0 to 376 (octal)
        
                func    is 200
        
                buf     is the address of a 1-word buffer
                        containing the status word.
        
                        The high byte of the status word contains a 0.
                        Deallocate unit returns one of the following
                        octal status codes in the low byte of the
                        status word:
        
                        0  Success
        
                        1  Unknown unit. The specified unit was not
                           opened by the job issueing the request.
        
                        2  Controller error while attempting to
                           initialize the network interface
        
                        11 Unit still active
        
                wcnt    is 0
        
                blkn    is 0
        
                crtn    is the entry point of a completion routine




        ETHERNET DEVICE HANDLERS                               PAGE 5-10
        USE OF SPECIAL FUNCTIONS (.SPFUN)


        5.5.2  Promiscuous Mode (.SPFUN 201) 


           The  enable  promiscuous  mode  special  function enables the
        Ethernet hardware to receive all network traffic  regardless  of
        address  or  protocol.  Any read request to the handler will re-
        turn the first available packet received by the  controller  in-
        terface.  

           The disable promiscuous mode special function enables the ad-
        dress/protocol filtering provided by the Ethernet  hardware  and
        enables the specified protocol.  


        5.5.2.1  Enable Promiscuous Mode  - 

           The  following  is  the  form  of the special function enable
        promiscuous mode (.SPFUN 201):  

        Macro Call:
                .SPFUN  area,chan,func,buf,wcnt,blkn,[crtn]
        
        where:
        
                area    is address of 6-word EMT argument block
        
                chan    is a channel number in the range
                        0 to 376 (octal)
        
                func    is 201
        
                buf     is the address of a 1-word buffer
                        containing the status word.
        
                        The high byte of the status word contains a 0.
                        Enable promiscuous mode returns one of the
                        following octal status codes in the low byte
                        of the status word:
        
                        0  Success
        
                        6  address/protocol active
        
                wcnt    is 0
        
                blkn    is 1
        
                crtn    is the entry point of a completion routine




        ETHERNET DEVICE HANDLERS                               PAGE 5-11
        USE OF SPECIAL FUNCTIONS (.SPFUN)


        5.5.2.2  Disable Promiscuous Mode  - 

           The  following  is  the  form of the special function disable
        promiscuous  mode  (which  performs  an  enable  protocol  type)
        (.SPFUN 201):  

        Macro Call:
                .SPFUN  area,chan,func,buf,wcnt,blkn,[crtn]
        
        where:
        
                area    is address of 6-word EMT argument block
        
                chan    is a channel number in the range
                        0 to 376 (octal)
        
                func    is 201
        
                buf     is the address of a 2-word buffer that
                        contains the status word, followed by
                        the 1-word protocol type that is to be
                        enabled when the promiscuous mode is
                        disabled.
        
                        The high byte of the status word contains a 0.
                        The disable promiscuous mode returns one of the
                        following octal status codes in the low byte
                        of the status word:
        
                        0  Success
        
                        1  Unknown unit. The specified unit was not
                           opened by the job issueing the request.
        
                        2  Controller error while attempting to
                           initialize the network interface
        
                        3  Reserved
        
                        6  Reserved
        
                        10 Protocol type in use
        
                wcnt    is 0
        
                blkn    is 0
        
                crtn    is the entry point of a completion routine




        ETHERNET DEVICE HANDLERS                               PAGE 5-12
        USE OF SPECIAL FUNCTIONS (.SPFUN)


        5.5.3  Protocol Type (.SPFUN 202) 


           The  enable  protocol  type  special function adds a protocol
        type to those to be recognized by the Ethernet controller.  Only
        one  protocol type can be specified for each unit.  At least one
        protocol type must be enabled to receive Ethernet frames.  

           The  disable  protocol type special function removes the pro-
        tocol type from the list of those  recognized  by  the  Ethernet
        controller.  


        5.5.3.1  Enable Protocol Type  - 

           The following is the form of the special function enable pro-
        tocol type (.SPFUN 202):  

        Macro Call:
                .SPFUN  area,chan,func,buf,wcnt,blkn,[crtn]
        
        where:
        
                area    is address of 6-word EMT argument block
        
                chan    is a channel number in the range
                        0 to 376 (octal)
        
                func    is 202
        
                buf     is the address of a 2-word buffer
                        that contains the status word followed
                        by the protocol type word.
        
                        The high byte of the status word contains a 0.
                        Enable protocol type returns one of the
                        following octal status codes in the low byte
                        of the status word:
        
                        0  Success
        
                        1  Unknown unit. The specified unit was
                           not opened by the job issuing the
                           request
        
                        2  Controller error while attempting to
                           initialize the network interface
        
                        3  No resources (unit's protocol table full)
        
                        6  Reserved
        


        ETHERNET DEVICE HANDLERS                               PAGE 5-13
        USE OF SPECIAL FUNCTIONS (.SPFUN)


                        10 Protocol type in use
        
                        The protocol type is specified by the user
        
                wcnt    is 0
        
                blkn    is 1
        
                crtn    is the entry point of a completion routine


        5.5.3.2  Disable Protocol Type  - 

           The  following  is  the  form of the special function disable
        protocol type (.SPFUN 202):  

        Macro Call:
                .SPFUN  area,chan,func,buf,wcnt,blkn,[crtn]
        
        where:
        
                area    is address of 6-word EMT argument block
        
                chan    is a channel number in the range
                        0 to 376 (octal)
        
                func    is 202
        
                buf     is the address of a 2-word buffer
                        that contains the status word followed
                        by the protocol type word.
        
                        The high byte of the status word contains a 0.
                        Disable protocol type returns one of the
                        following octal status codes in the low byte
                        of the status word:
        
                        0  Success
        
                        1  Unknown unit. The specified unit was
                           not opened by the job issuing the
                           request
        
                        2  Controller error while attempting to
                           initialize the network interface
        
                        If the disabled protocol type is not the
                        same as the enabled protocol type for this
                        unit then 'success' is returned.
        
                wcnt    is 0
        


        ETHERNET DEVICE HANDLERS                               PAGE 5-14
        USE OF SPECIAL FUNCTIONS (.SPFUN)


                blkn    is 0
        
                crtn    is the entry point of a completion routine


        5.5.4  Multicast Address (.SPFUN 203) 


           The enable multicast address special function adds the multi-
        cast address to those recognized  by  the  Ethernet  controller.
        Ypu  need  not specify the unit's physical or broadcast address.
        Only one multicast address is allowed per handler unit.  

           The  disable  multicast  address special function removes the
        multicast address from those to be recognized  by  the  Ethernet
        controller.  


        5.5.4.1  Enable Multicast Address  - 

           The following is the form of the special function enable mul-
        ticast address (.SPFUN 203):  

        Macro Call:
                .SPFUN  area,chan,func,buf,wcnt,blkn,[crtn]
        
        where:
        
                area    is address of 6-word EMT argument block
        
                chan    is a channel number in the range
                        0 to 376 (octal)
        
                func    is 203
        
                buf     is the address of a 4-word buffer
                        that contains the status word, followed
                        by the 3-word multicast address. The
                        low order bit of the first address
                        word should be a 1.
        
                        The high byte of the status word contains a 0.
                        Enable multicast address returns one of the
                        following octal status codes in the low byte
                        of the status word:
        
                        0  Success
        
                        1  Unknown unit. The specified unit was not
                           opened by the job issueing the request.
        
                        2  Controller error while attempting to


        ETHERNET DEVICE HANDLERS                               PAGE 5-15
        USE OF SPECIAL FUNCTIONS (.SPFUN)


                           initialize the network interface
        
                        3  No resources (unit's address table is full,
                           or hardware address table full)
        
                wcnt    is 0
        
                blkn    is 1
        
                crtn    is the entry point of a completion routine


        5.5.4.2  Disable Multicast Address  - 

           The  following  is  the  form of the special function disable
        multicast address (.SPFUN 203):  

        Macro Call:
                .SPFUN  area,chan,func,buf,wcnt,blkn,[crtn]
        
        where:
        
                area    is address of 6-word EMT argument block
        
                chan    is a channel number in the range
                        0 to 376 (octal)
        
                func    is 203
        
                buf     is the address of a 4-word buffer
                        that contains the status word, followed
                        by the 3-word multicast address. The
                        low order bit of the first address
                        word should be a 1.
        
                        The high byte of the status word contains a 0.
                        Disable multicast address returns one of the
                        following octal status codes in the low byte
                        of the status word:
        
                        0  Success
        
                        1  Unknown unit. The specified unit was not
                           opened by the job issueing the request.
        
                        2  Controller error while attempting to
                           initialize the network interface
        
                        If the disabled multicast address is not the
                        same as the enabled multicast address for this
                        unit then 'success' is returned.
        


        ETHERNET DEVICE HANDLERS                               PAGE 5-16
        USE OF SPECIAL FUNCTIONS (.SPFUN)


                wcnt    is 0
        
                blkn    is 0
        
                crtn    is the entry point of a completion routine


        5.5.5  Transmit Ethernet Frame (.SPFUN 204) 


           The  special  function  transmit Ethernet frame transmits the
        Ethernet frame pointed to in the buf argument.   If  the  source
        field  of  the  frame  is not zero, it is kept and used.  If the
        source field of the frame is zero, the controllers physical  ad-
        dress is inserted in the source field before transmission.  

           The  following  is  the form of the special function transmit
        Ethernet frame (.SPFUN 204):  

        Macro Call:
                .SPFUN  area,chan,func,buf,wcnt,blkn,[crtn]
        
        where:
        
                area    is address of 6-word EMT argument block
        
                chan    is a channel number in the range
                        0 to 376 (octal)
        
                func    is 204
        
                buf     is the address of a variable size buffer
                        containing the status word, followed by
                        the Ethernet packet to be transmitted.
                        The first word following the status word
                        is reserved. Next is the 3-word destination
                        address field followed by the 3-word
                        source address field. The next word is the
                        packet protocol type. Following this is the
                        variable length packet containing from 23 to
                        750 words. 
        
                        The transmit Ethernet frame returns one of the
                        following octal status codes in the low byte
                        of the status word:
        
                        0  Success
        
                        1  Unknown unit. The specified unit was not
                           opened by the job issueing the request.
        
                        2  Controller error while attempting to


        ETHERNET DEVICE HANDLERS                               PAGE 5-17
        USE OF SPECIAL FUNCTIONS (.SPFUN)


                           initialize the network interface
        
                        13 Transmit failed
        
                        When status code 13 is returned in the low byte
                        of the status word, transmit Ethernet frame
                        returns one of the following octal status codes
                        in the high byte of the status word:
        
                        1  Invalid frame length
        
                        2  Excessive collisions
        
                        3  Carrier check failed
        
                wcnt    is determined by the variable size of the user
                        buffer (including the status word and reserved
                        word). The packet size (including the status
                        word and reserved word) can vary between 32
                        and 759 words.
        
                blkn    is 0
        
                crtn    is the entry point of a completion routine


        5.5.6  Receive Ethernet Frame (.SPFUN 205) 


           The  receive Ethernet frame special function returns the next
        Ethernet packet with the desired unit address and protocol  type
        to  the  buffer.   The  function does not return Ethernet frames
        that are received with errors.  

           The  following  is  the  form of the special function receive
        Ethernet frame (.SPFUN 205):  

        Macro Call:
                .SPFUN  area,chan,func,buf,wcnt,blkn,[crtn]
        
        where:
        
                area    is address of 6-word EMT argument block
        
                chan    is a channel number in the range
                        0 to 376 (octal)
        
                func    is 205
        
                buf     is the address of a variable size buffer
                        containing the status word, a word
                        containing the frame size, and followed by


        ETHERNET DEVICE HANDLERS                               PAGE 5-18
        USE OF SPECIAL FUNCTIONS (.SPFUN)


                        upto 757 words to receive the Ethernet
                        frame. The buffer contents are returned
                        by the receive Ethernet frame function.
        
                        The high byte of the status word contains a 0.
                        The receive Ethernet frame special function
                        returns one of the following octal status
                        codes in the low byte of the status word:
        
                        0  Success
        
                        1  Unknown unit. The specified unit was not
                           opened by the job issueing the request.
        
                        2  Controller error while attempting to
                           initialize the network interface
        
                wcnt    is the size of the user buffer including
                        the status and frame size words
        
                blkn    is 0
        
                crtn    is the entry point of a completion routine


        5.5.7  Frame Queueing (.SPFUN 206) 


           The   Enable  frame  queueing  special  function  allows  the
        handlers to internally queue received  packets  that  match  any
        enabled  address/protocol  even though a receive request has not
        been issued for that address/protocol or a previous  packet  has
        not been processed.  The EQ handler normally allocates space for
        internally queueing upto 20 packets (this may be changed by mod-
        ifying  'rbcnt'  in  EQ.MAC and rebuilding the EQ handler).  The
        22-bit EU handler normally allocates space for internally queue-
        ing  10  packets and the 18-bit EU handler allocates space for 2
        packets (this may be changed by modifying 'rbcnt' in EU.MAC  and
        rebuilding the EU handlers).  

           The  disable frame queueing special function disables the in-
        ternal queueing of packets.  This function may only be issued if
        all address/protocol pairs have been disabled.  




        ETHERNET DEVICE HANDLERS                               PAGE 5-19
        USE OF SPECIAL FUNCTIONS (.SPFUN)


        5.5.7.1  Enable Frame Queueing  - 

           The  following  is  the  form  of the special function enable
        frame queueing (.SPFUN 206):  

        Macro Call:
                .SPFUN  area,chan,func,buf,wcnt,blkn,[crtn]
        
        where:
        
                area    is address of 6-word EMT argument block
        
                chan    is a channel number in the range
                        0 to 376 (octal)
        
                func    is 206
        
                buf     is the address of a 1-word buffer
                        for the returned status word which
                        is always 0
        
                wcnt    is 0
        
                blkn    is 1
        
                crtn    is the entry point of a completion routine


        5.5.7.2  Disable Frame Queueing  - 

           The  following  is  the  form of the special function disable
        frame queueing (.SPFUN 206):  

        Macro Call:
                .SPFUN  area,chan,func,buf,wcnt,blkn,[crtn]
        
        where:
        
                area    is address of 6-word EMT argument block
        
                chan    is a channel number in the range
                        0 to 376 (octal)
        
                func    is 206
        
                buf     is the address of a 1-word buffer
                        containing the status word.
        
                        The high byte of the status word contains a 0.
                        Disable frame queueing returns one of the
                        following octal status codes in the low byte
                        of the status word:


        ETHERNET DEVICE HANDLERS                               PAGE 5-20
        USE OF SPECIAL FUNCTIONS (.SPFUN)


        
                        0  Success
        
                        6  address/protocol active
        
                wcnt    is 0
        
                blkn    is 0
        
                crtn    is the entry point of a completion routine


        5.5.8  Get Ethernet Address (.SPFUN 207) 


           The  get Ethernet address special function returns the physi-
        cal address of the Ethernet controller card.  

           The  following  is  the  form  of  the  special  function get
        Ethernet address (.SPFUN 207):  

        Macro Call:
                .SPFUN  area,chan,func,buf,wcnt,blkn,[crtn]
        
        where:
        
                area    is address of 6-word EMT argument block
        
                chan    is a channel number in the range
                        0 to 376 (octal)
        
                func    is 207
        
                buf     is the address of a 4-word buffer
                        in which the status word, which is
                        always 0, and the six byte physical
                        Ethernet address are returned.
        
                wcnt    is 0
        
                blkn    is 0
        
                crtn    is the entry point of a completion routine




        ETHERNET DEVICE HANDLERS                               PAGE 5-21
        USE OF SPECIAL FUNCTIONS (.SPFUN)


        5.5.9  Get Ethernet Status Block (.SPFUN 210) 


           The  get  Ethernet  status block special function returns the
        handler's internal parameter block.  The  information  contained
        in  the  parameter block includes the number of packets received
        and transmitted for each EQ/EU unit as well as timeout  informa-
        tion.  

           The  following  is  the  form  of  the  special  function get
        Ethernet status block (.SPFUN 210):  

        Macro Call:
                .SPFUN  area,chan,func,buf,wcnt,blkn,[crtn]
        
        where:
        
                area    is address of 6-word EMT argument block
        
                chan    is a channel number in the range
                        0 to 376 (octal)
        
                func    is 210
        
                buf     is the address of a buffer into which
                        wcnt words are written from the
                        EQ/EU handlers status block.
        
                wcnt    is the number of words to return
                        to the buffer.  The status word
                        must be included in the word count.
        
                blkn    is 0
        
                crtn    is the entry point of a completion routine

        The complete list of parameters in the status block may be found
        in the EQ/EU Ethernet handler files EQ.MAC, EU.MAC, and  EI.MAC.
        The first word is always a status word of value 0, the following
        4-byte (long integer) parameters are:  

                eiipkt          total receiver interrupts
                eiopkt          total transmitter interrupts
                eirtmo          total receive timeouts
                eixtmo          total transmit timeouts
        
                eirun[8]        received packets for each unit
                eixun[8]        transmitted packets for each unit

           These  are  the  only  parameters  used by any program in the
        'TCP/IP Package for TSX-Plus' or 'TCP/IP Package for RT-11'.  



        ETHERNET DEVICE HANDLERS                               PAGE 5-22
        USE OF SPECIAL FUNCTIONS (.SPFUN)


        5.5.10  Abort Job I/O (.SPFUN 211) 


           The abort job i/o special function is conditionally assembled
        into drivers for the RT11SJ  monitors.   The  SJ  monitor  never
        calls the abort entry point in the device handler (either from a
        .ABTIO request or at job termination) this means that the inter-
        nally  queued  i/o  requests will never complete and the monitor
        will lock waiting for the i/o to complete.  This  special  func-
        tion  calls the abort entry point clearing all internally queued
        elements associated with the current job.  

           The  following  is the form of the special function Abort Job
        I/O (.SPFUN 211):  

        Macro Call:
                .SPFUN  area,chan,func,buf,wcnt,blkn,[crtn]
        
        where:
        
                area    is address of 6-word EMT argument block
        
                chan    is a channel number in the range
                        0 to 376 (octal)
        
                func    is 211
        
                buf     is not used
        
                wcnt    is not used
        
                blkn    is not used
        
                crtn    is the entry point of a completion routine


        5.5.11  Timeout / Reset (.SPFUN 212) 


           The  functionality of the timeout / reset special function is
        equivalent to an internal device timeout.  This  implemenatation
        allows  the  handlers to be assembled for use with monitors with
        or without device timeout functionality.  A user call  to  spfun
        212  aborts  any pending transmit packet, the network handler to
        be cleared, and the network device to be restarted.  The  actual
        device timeout interval is determined by the user program.  




        ETHERNET DEVICE HANDLERS                               PAGE 5-23
        USE OF SPECIAL FUNCTIONS (.SPFUN)


        5.5.11.1  Receive Timeout / Reset  - 

           The  receive  timeout  /  reset (blkn = 0) causes the receive
        timeout counter to be incremeneted.  

           The  following  is  the  form of the special function Receive
        Timeout / Reset (.SPFUN 212):  

        Macro Call:
                .SPFUN  area,chan,func,buf,wcnt,blkn,[crtn]
        
        where:
        
                area    is address of 6-word EMT argument block
        
                chan    is a channel number in the range
                        0 to 376 (octal)
        
                func    is 212
        
                buf     is not used
        
                wcnt    is not used
        
                blkn    0
        
                crtn    is the entry point of a completion routine


        5.5.11.2  Transmit Timeout / Reset  - 

           The  transmit  timeout / reset (blkn = 1) causes the transmit
        timeout counter to be incremeneted.  

           The  following  is  the form of the special function Transmit
        Timeout / Reset (.SPFUN 212):  

        Macro Call:
                .SPFUN  area,chan,func,buf,wcnt,blkn,[crtn]
        
        where:
        
                area    is address of 6-word EMT argument block
        
                chan    is a channel number in the range
                        0 to 376 (octal)
        
                func    is 212
        
                buf     is not used
        
                wcnt    is not used


        ETHERNET DEVICE HANDLERS                               PAGE 5-24
        USE OF SPECIAL FUNCTIONS (.SPFUN)


        
                blkn    1
        
                crtn    is the entry point of a completion routine


        5.6  HANDLERS FOR TSX-PLUS V6.0 THROUGH V6.2 


           The  EQ and EU Ethernet handlers configured for TSX-Plus ver-
        sions 6.0 through 6.2 have these  additional  .SPFUN  programmed
        requests:  

                Function                        Code
                --------                        ----
                Get PLAS Allocation Size        300
        
                Initialize Handler              301


        Successful  completion of a .SPFUN request clears the carry bit.
        Completion with an error sets the carry bit  without  any  error
        code.  


        5.6.1  Get PLAS Allocation Size (.SPFUN 300) 


           The  following  is  the form of the special function Get PLAS
        Alocation Size (.SPFUN 300):  

        Macro Call:
                .SPFUN  area,chan,func,buf,wcnt,blkn,[crtn]
        
        where:
        
                area    is address of 6-word EMT argument block
        
                chan    is a channel number in the range
                        0 to 376 (octal)
        
                func    is 300
        
                buf     handler returns the requested allocation
                        size, in 32. word increments, in the
                        first word of the buffer
        
                wcnt    is not used
        
                blkn    is not used
        
                crtn    is the entry point of a completion routine


        ETHERNET DEVICE HANDLERS                               PAGE 5-25
        HANDLERS FOR TSX-PLUS V6.0 THROUGH V6.2


        5.6.2  Initialize Handler (.SPFUN 301) 


           The  following is the form of the special function Initialize
        Handler (.SPFUN 301):  

        Macro Call:
                .SPFUN  area,chan,func,buf,wcnt,blkn,[crtn]
        
        where:
        
                area    is address of 6-word EMT argument block
        
                chan    is a channel number in the range
                        0 to 376 (octal)
        
                func    is 301
        
                buf     the address of buf is the PLAS base address
        
                wcnt    is not used
        
                blkn    is not used
        
                crtn    is the entry point of a completion routine

           Attempting  to  reinitialize the handler or to initialize the
        handler with a PLAS base address of 0 will be reported as an er-
        ror by setting the carry bit.  


        5.6.3  ENPLAS.SAV - Allocating the PLAS Region 


           The program ENPLAS.SAV is a support program which creates the
        PLAS buffer required by the TSX-Plus V6.0 through V6.2 EQ and EU
        device  handlers.  The program uses .spfun 300 to get the buffer
        size, creates the PLAS region, uses .spfun 301  to  handoff  the
        PLAS region's Base Address to the device handler and to initial-
        ize the handler.  This program must run  before  the  EQ  or  EU
        device handler can be used.  

           The device EN0:  must be assigned before running ENPLAS.SAV. 

                ASSIGN EU0: EN0:        or
                ASSIGN EQ0: EN0:
        
                R ENPLAS.SAV




        ETHERNET DEVICE HANDLERS                               PAGE 5-26
        HANDLERS FOR TSX-PLUS V6.0 THROUGH V6.2


           The  device  handler requires only a single initialization to
        be used by the TCPIP.SAV  server  or  the  small  system  client
        programs.  














                                    CHAPTER 6

                       BUILDING THE FTP AND TELNET PACKAGE




           The  package  can  only  be built under RT-11-XM or TSX-Plus.
        There is insufficient space to compile several of the components
        under the SJ/SB/FB monitors.  


        6.1  C COMPILER 


           The DECUS C Compiler and Assembler and the RT-11 Macro Assem-
        bler and Linker are required to build the the TCP/IP Package for
        RT-11  from  the source files included in the distribution.  The
        DECUS C Compiler is from the DECUS  11-SP-18  distribution  with
        bug  fixes  made  to the compiler and the library.  (The updates
        are on logical disk CCDSK2.DSK).  EIS and  non-EIS  versions  of
        the compiler along with the assembler, library, and the necesary
        header files are included with the  distribution  to  allow  the
        package to be recompiled.  


        6.1.1  Building under RT-11 


        1.  Create CDISK.DSK[1500] as C:, 
            a logical disk for the C compiler 

        2.  Copy the contents of the logical disk CCDSK1.DSK to C:.  The
            device containing the compiler, assembler and  header  files
            should  be  assigned as device C:.  The build procedures as-
            sume that the compiler and header files are on  the  logical
            device 'C:'.  

        3.  Copy  the compiler helper files from logical disk CCXDSK.DSK
            to C:.  

        4.  Use  the  command  file  C:CCSET.NIS  to  copy  the  non-EIS
            specific files into the C:  directory with  the  appropriate
            .SAV and .OBJ file types.  


        BUILDING THE FTP AND TELNET PACKAGE                     PAGE 6-2
        C COMPILER


        5.  UCL CC and ASM commands.  
            1.  For  RT-11-XM  V5.3  use file C:CCXASM.V53 to create the
                UCL commands to invoke CC and ASM.  
            2.  For  RT-11-XM  V5.6 (and later) use file C:CCXASM.V56 to
                create the UCL commands to invoke CC and ASM.  




        6.1.2  Building under TSX-Plus 


        1.  Create CDISK.DSK[1500] as C:, 
            a logical disk for the C compiler 

        2.  Copy the contents of the logical disk CCDSK1.DSK to C:.  The
            device containing the compiler, assembler and  header  files
            should  be  assigned as device C:.  The build procedures as-
            sume that the compiler and header files are on  the  logical
            device 'C:'.  

        3.  Copy  the compiler helper files from logical disk CCXDSK.DSK
            to C:.  

        4.  Use  the  command  file  C:CCSET.NIS  to  copy  the  non-EIS
            specific files into the C:  directory with  the  appropriate
            .SAV and .OBJ file types.  

        5.  Copy  the command files C:CC.TSX and C:ASM.TSX as CC.COM and
            ASM.COM to the system device.  These TSX-Plus command  files
            are used to invoke the C compiler and AS assembler.  



        6.2  FTP AND TELNET PACKAGE 


           The  FTP  and  Telnet  Package  is supplied with the complete
        source code as an assemblage  of  C  files  (*.c),  macro  files
        (*.mac),  header files (*.h), and an assortment of command files
        (*.com).  

        1.  Copy  the  logical disk SSDSK1.DSK to a disk or logical disk
            having at least 3000 blocks of free space.  

        2.  The  command  file BLDALL.COM will compile and link the com-
            plete FTP and Telnet Package.  Inspect BLDALL.COM to see how
            each  individual component is built.  An unloaded 11/73 pro-
            cessor will take from 10 to 15 minutes to compile  and  link
            the complete package.  




        BUILDING THE FTP AND TELNET PACKAGE                     PAGE 6-3
        COMPILING OPTIONS


        6.3  COMPILING OPTIONS 


           The FTP and Telnet Package components may be compiled with or
        without the diagnostic options (the default is no  diagnostics).
        Each component has an individual header file, e.g.  VFTPSB.H for
        FTPSB.SAV, which contains define statements that have been  com-
        mented  out  to exclude the diagnostics.  FTP or Telnet with the
        diagnostics will be too large to run under the  SJ,  SB,  or  FB
        monitors.  














                                    CHAPTER 7

                               DISTRIBUTION DISKS




           The  "TCP/IP  Package  for TSX-Plus", the "TCP/IP Package for
        RT-11", and the "FTP and Telnet Package for Small  Systems"  are
        distributed  as  a  combined  package  of 24 RX02 logical floppy
        disks:  

        1.  TSDSK1    TCP/IP Package for TSX-Plus 
        2.  TSDSK2      Executables for TSX-Plus Systems.  
        3.  TSDSK3      (EQ/EU Device Driver Required) 

        4.  RTDSK1    TCP/IP Package for RT-11 
        5.  RTDSK2      Executables for RT-11 Mapped Systems.  
        6.  RTDSK3      (EQ/EU/NC/NQ/NU Device Driver Required) 

        7.  SRDSK1    TCP/IP Package Sources 
        8.  SRDSK2      All source code files for:  
        9.  SRDSK3            TCP/IP Package for TSX-Plus 
        10.  SRDSK4            TCP/IP Package for RT-11 

        11.  SMLTCP    Small System Package Executables 
                        (EQ/EU/NC/NQ/NU Device Driver Required) 

        12.  SSDSK1    Small System Package Sources 

        13.  DVDSK1    EQ/EU Device Drivers 
        14.  DVDSK2    NC/NQ/NU Device Drivers 

        15.  CCDSK1    DECUS C Compiler, Assembler, and Libraries.  
        16.  CCDSK2    DECUS C Source Changes 

        17.  CCXDSK    Compiler helper files for mapped 
                      RT-11 systems.  

        18.  RTDOC     SS and RT Package Documentation 
        19.  TSXDOC    TSX Package Documentation 
        20.  RNODSK    Package Documentation in RNO Format 



        DISTRIBUTION DISKS                                      Page 7-2
        


        21.  RTHTML    RT-11 Docs in HTML Format 
        22.  TSHTML    TSX-Plus Docs in HTML Format 
        23.  SSHTML    Small System Docs in HTML Format 

        24.  TCPIPM    Minimal Distribution 















                                   APPENDIX A

                             SMALL SYSTEM CHANGE LOG





        SMALL SYSTEM CHANGE LOG                                 Page A-2
        


        A.1  VERSION 2.40 

        V02.40
        15-Jun-2008
            EQ.MAC
                Updated the EQ device driver interrupt processing
                to be more consistant with the EU device driver.


        SMALL SYSTEM CHANGE LOG                                 PAGE A-3
        VERSION 2.40


        A.2  VERSION 2.38 

        V02.39
        15-Jan-2008
                No changes. Synchronized
                to RT/TSX Version 2.39.


        SMALL SYSTEM CHANGE LOG                                 PAGE A-4
        VERSION 2.38


        A.3  VERSION 2.38 

        V02.38
        26-Mar-2007
                No changes. Synchronized
                to RT/TSX Version 2.38.


        SMALL SYSTEM CHANGE LOG                                 PAGE A-5
        VERSION 2.38


        A.4  VERSION 2.37 

        V02.37
        1-Feb-2007
                No changes. Synchronized
                to RT/TSX Version 2.37.


        SMALL SYSTEM CHANGE LOG                                 PAGE A-6
        VERSION 2.37


        A.5  VERSION 2.36 

        V02.36
        15-Nov-2006
                No changes. Synchronized
                to RT/TSX Version 2.36.


        SMALL SYSTEM CHANGE LOG                                 PAGE A-7
        VERSION 2.36


        A.6  VERSION 2.35 

        V02.35
        1-Oct-2006
                No changes. Synchronized
                to RT/TSX Version 2.35.


        SMALL SYSTEM CHANGE LOG                                 PAGE A-8
        VERSION 2.35


        A.7  VERSION 2.34 

        V02.34
        1-Jan-2006
            FTPSBI.C, TLNTI.C, and CNCTI.C
                Help text changes/corrections.


        SMALL SYSTEM CHANGE LOG                                 PAGE A-9
        VERSION 2.34


        A.8  VERSION 2.33 

        V02.33
        15-Jan-2004
            EI.MAC, EU.MAC, and EQ.MAC
                The network device drivers have been rewritten
                to remove the internal device time-out code.
                This change means that the RT-11 monitors no longer
                are required to have the sysgen device time-out
                option.  The device time-out code is now implemented
                through a device handler special function (spfun 212).
                The spfun 212 is an optional device handler function.
                To utilize this device time-out option the user
                program must include coding to determine when a
                time-out has occurred and call spfun 212 to initialize
                the network interface.  [ The removal of the device
                time-out code simplifies the handler.  The device
                handler no longer requires the .timio, .ctimio, or
                .sync processing. This also means that the time-out
                configuration is completely user programmable. ]
        
            NIV56.MAC, NCV56.MAC, NQV56.MAC, and NUV56.MAC
                Added the special function spfun 212 to the DEC
                network device drivers.  This function adds
                device time-out to the NC, NQ, and NU handlers.
                The functionality is identical to that described
                for the EQ and EU drivers above.
        
            ENDRVR.MAC and SYSTEM.MAC
                Updated ENDRVR.MAC to support the Network Device
                Time-Out special function spfun 212.  If the
                transmission of a packet does not complete or
                return an error within 2 seconds then an xmit
                time-out call (spfun 212, block = 1) initializes
                the network interface.  Similarly, if no packets
                are recieved within a sliding interval ranging
                from 6 seconds to 3 minutes then a recv time-out
                call (spfun 212, block = 0) initializes the
                network interface.  The spfun 212 calls update
                the driver time-out counters if the ethernet
                status block option (spfun 210) is included.
        
                A receive time-out now initiates a complete
                shutdown and restart of the network interface.
                This includes:
                   1)   Aborting all I/O (removing all queued
                        receive/transmit elements), deallocating,
                        and closing the network channels.
                   2)   Reopening, allocating, and configuring
                        the receive and transmit channels.


        SMALL SYSTEM CHANGE LOG                                PAGE A-10
        VERSION 2.33


        A.9  VERSION 2.32 

        V02.32
        1-May-2003
            EQ.MAC, EU.MAC, and EI.MAC:
                Corrected the 'Interrupt Service Routines' for
                the DEQNA/DELQA and DEUNA/DELUA device drivers.
        
            NTUTL.C and PRODEF.H:
                Corrected an error in the POKEINTERVAL coding
                in the function ntsleep().  Added the code
                to allow the last packet transferred by transq()
                to be immediately retransmitted (duplicated).
                This is the note in transq():
        
                /*
                 * This is really %#@&$*.
                 * Most systems use a 'delayed ACK' when receiving
                 * small packets.  This may result in very low
                 * transfer rates.  Some systems will ACK on an
                 * immediate duplicate.  So here we send a duplicate
                 * packet if enabled.
                 */
        
                This retransmit is only applicable to data packets
                not ACK packets or any other control packet.
        
            FTPPI2.C, FTPPI3.C, SKTL02.C, and SKTLIB.C:
                Added the command 'duplicate' to enable/disable
                the transmission of duplicate packets.
        
            USRFTP.C:
                To significantly increase data transfer rates the
                fread(), fwrite(), and NULL removal routines have
                been replaced with MACRO routines. The function
                blkrd() reads multiple disk blocks directly into
                the read buffer.  The function blkwt() writes
                data directly from the data buffer.  The function
                blkstr() is a fast NULL removal routine replacing
                the previous 'for' loop.
        
            FTPCNT.C, FTPLSN.C, SKTL54.C, SKTLIB.C, and SKTLIB.H:
                Added code to copy the mseg, mwin, and mtu values
                from the 'control socket' to the 'data socket'.
        
            TCP.C and PRODEF.H:
                Updated the repeated ACK retransmission code
                to wait for 4 ACKs before forcing data
                retransmission.
        
            NET.C, NTUTL.C, and TCP.C:
                Corrected various TCP protocol sequencing


        SMALL SYSTEM CHANGE LOG                                PAGE A-11
        VERSION 2.32


                problems, Data Packet processing, and
                DATA Packet ACK processing.
        
            QUEUTL.C, NET.C, SKTL22.C, SKTL30.C, and SKTLIB.C
                New function outqpsh() added to QUEUTL.C to
                check the 'push' flag and queued data status
                to determine if data packet transmission
                should be triggered.


        SMALL SYSTEM CHANGE LOG                                PAGE A-12
        VERSION 2.32


        A.10  VERSION 2.31 

        V02.31
        1-Dec-2002
            FTPDO1.C, FTPDO2.C, and RTFILE.C:
                Updated STOR and RETR functionality to include
                RT-11 Device Read and Write. (Required a change
                to the C I/O Library routine IOFOPA.MAC)
                Added check for file size specification before
                appending "[-1]" to write file specifications.
        
            SESUTL.C:
                Changed message(14) to a print statement.
        
            IOFOPA.MAC:
                Observations of RT-11 / TSX-Plus .csispc responses
                which in turn required a modification to the C-Library
                I/O routine to maintain compatability with all
                versions of RT-11 and TSX-Plus:
        
                        Mode          RT (V5.3)       TSX-Plus
                        ----          ---------       --------
                        DY0:            ok              ok
                        DY0:=           error           ok
                        DY0:.           ok              ok
                        DY0:.=          error           ok
                        DY0:[-1]        error           ok
                        DY0:[-1]=       error           ok
                        DY0:A           ok              ok
                        DY0:A=          ok              ok
                        DY0:.E          ok              ok
                        DY0:.E=         error           ok
                        DY0:A.          ok              ok
                        DY0:A.=         ok              ok
                        DY0:A[-1]       error           ok
                        DY0:A[-1]=      ok              ok
                        DY0:A.[-1]      error           ok
                        DY0:A.[-1]=     ok              ok
                        DY0:.E[-1]      error           ok
                        DY0:.E[-1]=     error           ok
        
            EU.MAC:
                Discovered that the difference between a DELUA and
                DEUNA network cards' interrupt response to running
                out of read-buffers would cause the DEUNA to enter
                an interrupt race condition in the handler.  This
                problem would result in exceedingly slow transfers,
                a driver hang, or system crash.  A minor driver
                change has corrected this problem.


        SMALL SYSTEM CHANGE LOG                                PAGE A-13
        VERSION 2.31


        A.11  VERSION 2.30 

        V02.30
        25-Oct-2002
            FTPSB.LNK, TLNTSB.LNK, and CNCTSB.LNK:
                System lockups caused by inadequate STACK ALLOCATION.
                Stack Allocation set to /B:3000 .
        
            USRFTP.C:
                Fixed a debug statement in 'userftpd()'. Removed
                all suspnd() calls (unnecesary).
        
            SKTL30.C (and SKTLIB.C):
                Fixed skenque() to check if outgoing data queue
                has sufficient data to transmit a full packet and
                trigger the packet transmision.
                
            TCP.C:
                FTPSB data transfer stalls and timeouts cause by a
                coding error in estabcon().  Duplicate packets
                were not reACKed to continue the data sequence.
                Added diagnostic coding in estabcon().
        
            NET.C:
                Removed unused variable 'redir' from ntsleep().
                Modified 'do{}while()' to ensure one inner process.
        
            DMPFIL.C:
                Added the device specification 'dmp:' to the file
                specification in dmpfil().
                
            NTUTL.C:
                Fixed the diagnostic print statement in 'transq()
                for a long integer.
        
            GBLDAT.H:
                Added DMPFIL.H to includes.
        
            SYSTEM.MAC:
                Added an optional diagnostic section to fill the
                STACK with '177777's to determine the maximum
                stack depth at run time.
        
            SUSPND.MAC:
                .RSUM and .SPND are not supported by RT-11 SJ.
                An additional flag was added to allow waits
                when running under SJ systems.


Return to TCP/IP Documentation Index

... Home Page

Last Updated: June 2008