FTP and Telnet Package for Small Systems CHAPTER 1 SOFTWARE INSTALLATION 1-1 1.1 INSTALLATION CONFIGURATIONS 1-1 1.1.1 Install All Files on System Device 1-1 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 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-4 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 PROGRAMMING 5-5 5.4 USE OF SPECIAL FUNCTIONS (.SPFUN) 5-5 5.4.1 Unit Specification (.SPFUN 200) 5-6 5.4.1.1 Allocate Unit 5-7 5.4.1.2 Deallocate Unit 5-8 5.4.2 Promiscuous Mode (.SPFUN 201) 5-9 5.4.2.1 Enable Promiscuous Mode 5-9 5.4.2.2 Disable Promiscuous Mode 5-10 5.4.3 Protocol Type (.SPFUN 202) 5-11 5.4.3.1 Enable Protocol Type 5-11 5.4.3.2 Disable Protocol Type 5-12 5.4.4 Multicast Address (.SPFUN 203) 5-13 5.4.4.1 Enable Multicast Address 5-13 5.4.4.2 Disable Multicast Address 5-14 5.4.5 Transmit Ethernet Frame (.SPFUN 204) 5-15 5.4.6 Receive Ethernet Frame (.SPFUN 205) 5-16 5.4.7 Frame Queueing (.SPFUN 206) 5-17 5.4.7.1 Enable Frame Queueing 5-18 5.4.7.2 Disable Frame Queueing 5-18 5.4.8 Get Ethernet Address (.SPFUN 207) 5-19 5.4.9 Get Ethernet Status Block (.SPFUN 210) 5-20 5.4.10 Abort Job I/O (.SPFUN 211) 5-21 5.5 HANDLERS FOR TSX-PLUS V6.0 THROUGH V6.2 5-21 5.5.1 Get PLAS Allocation Size (.SPFUN 300) 5-22 5.5.2 Initialize Handler (.SPFUN 301) 5-22 5.5.3 ENPLAS.SAV - Allocating the PLAS Region 5-23 CHAPTER 6 BUILDING THE FTP AND TELNET PACKAGE 6-1 6.1 C COMPILER 6-1 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 Page ii CHAPTER 7 DISTRIBUTION DISKS 7-1 Page iii FTP and Telnet Package for Small Systems 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 thick or thin wire adapter. Alan R. Baldwin Physics Department Kent State University Kent, Ohio 44242 tel: (330) 672 2531 fax: (330) 672 2959 Internet: baldwin@shop-pdp.kent.edu baldwin@ksuvxd.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 disk DVRDSK.DSK. 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. SOFTWARE INSTALLATION PAGE 1-2 INSTALLATION CONFIGURATIONS 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 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 SOFTWARE INSTALLATION PAGE 1-3 CONFIGURATION FILE 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 / FTP / RFTP / CNCT / RCNCT / # MAIL / RSMTP # RPOP3 / MAILER / MMAIL # RLPD / LPRINT / LPQRM / LLPQRM # NTSND # RHTTP # RGOPH #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,2,sy:rftp.srv # remote ftp server #service=23,2,sy:rtelnt.srv # remote telnet server #service=25,2,sy:rsmtp.srv # remote smtp server #service=27,2,sy:rcnct.srv # remote cnct server #service=70,2,sy:rgoph.srv # remote gopher server #service=80,4,sy:rhttp.srv # remote http server #service=110,2,sy:rpop3.srv # remote pop3 server (task: -t 1) #service=515,2,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, device timeout, 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 disk DVRDSK.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 or thin wire connection). 2.2 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 5.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 UNIBUS SYSTEMS cable) to a transceiver (with either a thick or thin 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, interrupt processing at FORK level, 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 only support for spfun 206. 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.sys SJ/FB SJ/FB SJ/FB - - eusjms.sys SJ/FB SJ/FB SJ/FB - - eqsjps.sys SJ/FB SJ/FB SJ/FB - - eusjps.sys SJ/FB SJ/FB SJ/FB - - eqsbms.sys - - - SB/FB - eusbms.sys - - - SB/FB - eqsbps.sys - - - SB/FB - eusbps.sys - - - SB/FB - eq18xm.sys XM XM XM XB/XM/ZB/ZM - eq22xm.sys XM XM XM XB/XM/ZB/ZM - eu18xm.sys XM XM XM XB/XM/ZB/ZM - ncxv56.sys - ? ? XB/XM/ZB/ZM - nqxv56.sys - ? ? XB/XM/ZB/ZM - nuxv56.sys - ? ? 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 ____ms.sys Drivers are for LSI/11 processors not having a processor status word (PSW == @#177776). ____ps.sys Drivers are for all processors with a processor status word (PSW == @#177776). __sj__.sys 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 EIS PSW UMR FORK TIMEOUT --- --- --- --- --- --- --- ---- ------- eqsjms.sys X - - X - - - X X eusjms.sys X - - X - - - X X eqsjps.sys X - - X - X - X X eusjps.sys X - - X - X - X X eqsbms.sys X - - - - - - X X eusbms.sys X - - - - - - X X eqsbps.sys X - - - - X - X X eusbps.sys X - - - - X - X X eq18xm.sys X X X - X X - X X eq22xm.sys X X X - X X - X X eu18xm.sys X X X - X X - X X ncxv56.sys X X X - X X - - - nqxv56.sys X X X - X X - - - nuxv56.sys X X X - X X X - - eq18.v62 X X X - X X - X X eq22.v62 X X X - X X - X X eu18.v62 X X X - X X - X X eu22.v62 X X X - X X X X X eq18.tsx X X X - X X - X X eq22.tsx X X X - X X - X X eu18.tsx X X X - X X - X X eu22.tsx X X X - X X X X X ____ms.sys Drivers are for LSI/11 processors not having a processor status word (PSW == @#177776). ____ps.sys Drivers are for all processors with a processor status word (PSW == @#177776). __sj__.sys 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 filename] [destination host] ? List this Help Text and Exit FTPSB e Enable Error Message Printing f filename 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 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] 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: PROGRAM OPTIONS PAGE 4-3 FTP .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 filename] ? List the Help Text and Exit TLNTSB e Enable Error Message Printing f filename 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': 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 <CR> 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 PROGRAM OPTIONS PAGE 4-4 TELNET ^? 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 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 filename] ? List the Help Text and Exit CNCTSB e Enable Error Message Printing f filename 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). PROGRAM OPTIONS PAGE 4-5 CNCT 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: .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) and 210 (get handler status block). 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), and 211 (abort job i/o, for SJ monitors only). These handlers may be conditionally as- sembled to support the RT11 SJ, SB, FB, and XM monitors (ver- sions 5.3 and later) not supported by the NQ/NU device handlers. 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 ETHERNET DEVICE HANDLERS Page 5-2 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.sys SJ/FB SJ/FB SJ/FB - - eusjms.sys SJ/FB SJ/FB SJ/FB - - eqsjps.sys SJ/FB SJ/FB SJ/FB - - eusjps.sys SJ/FB SJ/FB SJ/FB - - eqsbms.sys - - - SB/FB - eusbms.sys - - - SB/FB - eqsbps.sys - - - SB/FB - eusbps.sys - - - SB/FB - eq18xm.sys XM XM XM XB/XM/ZB/ZM - eq22xm.sys XM XM XM XB/XM/ZB/ZM - eu18xm.sys XM XM XM XB/XM/ZB/ZM - ncxv56.sys - ? ? XB/XM/ZB/ZM - nqxv56.sys - ? ? XB/XM/ZB/ZM - nuxv56.sys - ? ? 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 ____ms.sys Drivers are for LSI/11 processors not having a processor status word (PSW == @#177776). ____ps.sys Drivers are for all processors with a processor status word (PSW == @#177776). __sj__.sys 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 EIS PSW UMR FORK TIMEOUT --- --- --- --- --- --- --- ---- ------- eqsjms.sys X - - X - - - X X eusjms.sys X - - X - - - X X eqsjps.sys X - - X - X - X X eusjps.sys X - - X - X - X X eqsbms.sys X - - - - - - X X eusbms.sys X - - - - - - X X eqsbps.sys X - - - - X - X X eusbps.sys X - - - - X - X X eq18xm.sys X X X - X X - X X eq22xm.sys X X X - X X - X X eu18xm.sys X X X - X X - X X ncxv56.sys X X X - X X - - - nqxv56.sys X X X - X X - - - nuxv56.sys X X X - X X X - - eq18.v62 X X X - X X - X X eq22.v62 X X X - X X - X X eu18.v62 X X X - X X - X X eu22.v62 X X X - X X X X X eq18.tsx X X X - X X - X X eq22.tsx X X X - X X - X X eu18.tsx X X X - X X - X X eu22.tsx X X X - X X X X X ____ms.sys Drivers are for LSI/11 processors not having a processor status word (PSW == @#177776). ____ps.sys Drivers are for all processors with a processor status word (PSW == @#177776). __sj__.sys Drivers contain special function 211 (abort job i/o) for RT11SJ monitors. ETHERNET DEVICE HANDLERS PAGE 5-5 DEVICE HANDLER FEATURE SUMMARY 5.3 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), and 211 (abort job i/o) do not require device allocation. 5.4 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-6 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 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.4.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-7 USE OF SPECIAL FUNCTIONS (.SPFUN) 5.4.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-8 USE OF SPECIAL FUNCTIONS (.SPFUN) 5.4.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-9 USE OF SPECIAL FUNCTIONS (.SPFUN) 5.4.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.4.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-10 USE OF SPECIAL FUNCTIONS (.SPFUN) 5.4.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-11 USE OF SPECIAL FUNCTIONS (.SPFUN) 5.4.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.4.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-12 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.4.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-13 USE OF SPECIAL FUNCTIONS (.SPFUN) blkn is 0 crtn is the entry point of a completion routine 5.4.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.4.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-14 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.4.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-15 USE OF SPECIAL FUNCTIONS (.SPFUN) wcnt is 0 blkn is 0 crtn is the entry point of a completion routine 5.4.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-16 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.4.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-17 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.4.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-18 USE OF SPECIAL FUNCTIONS (.SPFUN) 5.4.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.4.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-19 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.4.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-20 USE OF SPECIAL FUNCTIONS (.SPFUN) 5.4.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-21 USE OF SPECIAL FUNCTIONS (.SPFUN) 5.4.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 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 ETHERNET DEVICE HANDLERS PAGE 5-22 HANDLERS FOR TSX-PLUS V6.0 THROUGH V6.2 code. 5.5.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 5.5.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 ETHERNET DEVICE HANDLERS PAGE 5-23 HANDLERS FOR TSX-PLUS V6.0 THROUGH V6.2 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.5.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 The device handler requires only a single initialization to be used by the TCPIP.SAV server or the small system client pro- grams. 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 21 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. DVRDSK EQ/EU/NC/NQ/NU Device Drivers 14. CCDSK1 DECUS C Compiler, Assembler, and Libraries. 15. CCDSK2 DECUS C Source Changes 16. CCXDSK Compiler helper files for mapped RT-11 systems. 17. DOCDSK Package Documentation 18. RNODSK Package Documentation in RNO Format 19. RTHTML RT-11 Docs in HTML Format 20. TSHTML TSX-Plus Docs in HTML Format DISTRIBUTION DISKS Page 7-2 21. SSHTML Small System Docs in HTML Format