|
|
1.1.1.2 ! root 1: More Information about RPC version 1.0 ! 2: ________________________________________________________________________ 1.1 root 3: 4: 5: 1.1.1.2 ! root 6: This document contains important information about Microsoft RPC ! 7: version 1.0 that is not included in the Microsoft RPC programming ! 8: documentation or in Help. 1.1 root 9: 10: 1.1.1.2 ! root 11: Use Notepad to View This Document 1.1 root 12: 1.1.1.2 ! root 13: To move through this document, press PAGE UP and PAGE DOWN or click the arrows ! 14: at the top and bottom of the scroll bar along the right side of the window. 1.1 root 15: 1.1.1.2 ! root 16: To print this document, choose the Print command from the File menu. 1.1 root 17: 1.1.1.2 ! root 18: For help with using Notepad, press F1. 1.1 root 19: 20: 1.1.1.2 ! root 21: _______________________________________________________________________ 1.1 root 22: 1.1.1.2 ! root 23: Introduction 1.1 root 24: 1.1.1.2 ! root 25: Microsoft RPC version 1.0 is a toolkit for developing network-aware ! 26: distributed applications in C/C++. The RPC toolkit includes: 1.1 root 27: 1.1.1.2 ! root 28: * MIDL compilers for Microsoft Windows NT and Microsoft Windows ! 29: 3.x/MS-DOS 1.1 root 30: 1.1.1.2 ! root 31: * C/C++ language header files (.H) and run-time libraries ! 32: (.LIB and .DLL) for Microsoft Windows NT, Microsoft ! 33: Windows 3.x, and MS-DOS 1.1 root 34: 1.1.1.2 ! root 35: * Sample programs for Microsoft Windows NT, Microsoft ! 36: Windows 3.x, Microsoft Windows for Workgroups, and MS-DOS 1.1 root 37: 1.1.1.2 ! root 38: * RPC reference Help files, Windows Write files, and PostScript ! 39: files 1.1 root 40: 1.1.1.2 ! root 41: The Win32 SDK contains the Microsoft Windows NT and Microsoft Windows 3.x/MS- ! 42: DOS versions of the RPC SDK. 1.1 root 43: 44: 1.1.1.2 ! root 45: Installation 1.1 root 46: 1.1.1.2 ! root 47: The Microsoft Win32 SDK installs the components of the Microsoft RPC toolkit ! 48: as part of its standard installation. No additional installation is required. 1.1 root 49: 1.1.1.2 ! root 50: To develop client-side distributed applications for MS-DOS, Microsoft Windows ! 51: 3.x, and Windows for Workgroups version 3.1, you must install the Microsoft ! 52: Windows 3.x/MS-DOS version of the RPC toolkit. Cross-compilation of Windows ! 53: 3.x and MS- DOS clients with Microsoft Windows NT requires a 16-bit C ! 54: compiler in the Microsoft Windows NT environment. This development ! 55: environment is not installed during RPC SDK setup. The Microsoft RPC toolkit ! 56: for MS-DOS and Microsoft Windows 3.x requires: ! 57: ! 58: ! 59: * A 16-bit compiler such as Microsoft Visual C++ Development System ! 60: for Windows or the Microsoft C/C++ 7.0 compiler. ! 61: ! 62: * One of the following: ! 63: * Microsoft Windows for Workgroups version 3.1 (or later) with ! 64: named pipes, NetBIOS, or TCP/IP ! 65: * Microsoft LAN Manager version 2.1 (or later) with named ! 66: pipes, NetBIOS, or TCP/IP ! 67: * DEC PATHWORKS 4.0 (or later) with NetBIOS, TCP/IP, or DECNet ! 68: * Novell Netware 3.x with SPX ! 69: * Other networking software compatible with the Windows ! 70: Sockets API standard ! 71: ! 72: To install the Microsoft Windows 3.x/MS-DOS version of the RPC toolkit, run ! 73: the Setup program in the directory MSTOOLS\RPC_DOS. To start the Setup ! 74: program, choose the Run command from the File menu in the Microsoft Windows ! 75: 3.x Program Manager. ! 76: ! 77: When you install the RPC toolkit in a directory different from the directory ! 78: you used for Microsoft C/C++ version 7.0, you must set the environment ! 79: variables INCLUDE, LIB, and PATH to point to the directories that contain the ! 80: RPC header files, libraries, and DLLs and binaries, respectively. You cannot ! 81: install the RPC toolkit in the same directory as the Visual C++ compiler ! 82: binaries because of name conflicts. 1.1 root 83: 84: 1.1.1.2 ! root 85: RPC Documentation 1.1 root 86: 1.1.1.2 ! root 87: The following Microsoft RPC version 1.0 reference materials are available in ! 88: Windows Write format and in PostScript file format: 1.1 root 89: 1.1.1.2 ! root 90: Microsoft RPC Programmer's Guide and Reference ! 91: Part I: Programmer's Guide ! 92: Part II: MIDL Language Reference ! 93: Part III: Run-Time API Reference ! 94: Part IV: Installing RPC ! 95: Part V: Appendixes 1.1 root 96: 1.1.1.2 ! root 97: Use the PostScript files to print individual chapters of the documentation on ! 98: your PostScript printer. 1.1 root 99: 1.1.1.2 ! root 100: The following run-time and MIDL reference Help file is available on line: 1.1 root 101: 1.1.1.2 ! root 102: RPC.HLP WinHelp MIDL and run-time API reference 1.1 root 103: 1.1.1.2 ! root 104: RPC sample-program source files are available in the directory ! 105: MSTOOLS\SAMPLES\RPC. MS-DOS and Microsoft Windows 3.x versions of some ! 106: samples are available when you install the Windows 3.x/MS-DOS version of the ! 107: RPC toolkit. The file MSTOOLS\SAMPLES\RPC\README.TXT describes the available ! 108: samples. 1.1 root 109: 110: 1.1.1.2 ! root 111: _______________________________________________________________________ 1.1 root 112: 1.1.1.2 ! root 113: 1.0 The following release notes relate to the MIDL compiler and to building ! 114: distributed applications. 1.1 root 115: 116: 1.1.1.2 ! root 117: 1.1 Packing and Alignment Considerations 1.1 root 118: 1.1.1.2 ! root 119: You must use the same packing and alignment settings (/Zp switch) for both ! 120: the C compiler and the MIDL compiler. Using different packing levels for the ! 121: two compilers causes undefined results. Specify the /Zp switch to verify that ! 122: the correct packing and alignment settings are used on both compilers. 1.1 root 123: 1.1.1.2 ! root 124: This release of the MIDL compiler does not support the switches /Zp1 and /Zp2 ! 125: in the MIPS environment, although the compiler does not prevent the use of ! 126: /Zp1 and /Zp2. 1.1 root 127: 1.1.1.2 ! root 128: Use /Zp1 or /Zp2 for 16-bit client platforms. Objects of types with natural ! 129: alignment greater than 2 that are allocated on the stack as local variables ! 130: in the client application are not necessarily allocated on 4- and 8-byte ! 131: boundaries by the C compiler. Because the C compiler does not guarantee ! 132: alignment on the stack, marshalling from and unmarshalling into such objects ! 133: may cause problems. 1.1 root 134: 1.1.1.2 ! root 135: Generic stubs (/env generic) must be specified with /Zp1 or /Zp2 in 16-bit ! 136: client environments. Generic stubs specified with /Zp1 or /Zp2 cannot be ! 137: used in the MIPS environment. MIDL uses /Zp4 by default for generic stubs. 1.1 root 138: 139: 1.1.1.2 ! root 140: 1.2 C Stub Source Code Causes Compilation Warnings 1.1 root 141: 1.1.1.2 ! root 142: The stub files generated by the MIDL compiler may generate warnings when they ! 143: are compiled at compiler warning-level 3 and higher. These warnings can ! 144: generally be safely ignored. 1.1 root 145: 1.1.1.2 ! root 146: When your C compiler does not use the same default character sign as the MIDL ! 147: compiler, use the MIDL compiler switch /char to generate explicit ! 148: declarations in the header file. For more information, see the Microsoft RPC ! 149: programming documentation. 1.1 root 150: 151: 1.1.1.2 ! root 152: 1.3 Use Six-Character Filenames on the FAT File System 1.1 root 153: 1.1.1.2 ! root 154: Because RPC version 1.0 appends _C, _X, and similar extensions to filenames, ! 155: limit your filenames to six characters or less. Filenames that total more ! 156: than eight characters are too long for some file systems and can fail. 1.1 root 157: 158: 1.1.1.2 ! root 159: 1.4 Specifying Local and UUID Attributes 1.1 root 160: 1.1.1.2 ! root 161: If the base IDL file contains no procedures, you don't have to specify local ! 162: or UUID attributes. 1.1 root 163: 164: 1.1.1.2 ! root 165: 1.5 MIDL Extra Server Files in the Windows 3.x/MS-DOS Environment 1.1 root 166: 1.1.1.2 ! root 167: MIDL does not produce server files in the Windows 3.x/MS-DOS environment. ! 168: For this reason, if you specify the /env switch as /env dos or /env win16, ! 169: server stubs are not produced. To produce server stubs, specify that the /env ! 170: switch is either /env win32 or /env generic. 1.1 root 171: 172: 1.1.1.2 ! root 173: 1.6 Working with Visual C++ on 16-Bit Machines 1.1 root 174: 1.1.1.2 ! root 175: Do not install the 16-bit RPC toolkit in the same directory as Visual C++. ! 176: MIDL requires the Microsoft C 7.0 front end for C preprocessing. The ! 177: installer will install the Microsoft C 7.0 front end if needed. Use the ! 178: /cpp_cmd switch to make sure MIDL is using the right C compiler. 1.1 root 179: 180: 1.1.1.2 ! root 181: 1.7 Memory Leak Possible with Multiple Context Handles 1.1 root 182: 1.1.1.2 ! root 183: Memory can leak when data argument(s) precede context-handle argument(s) and ! 184: the call is directed by another handle. The leak happens on the server side ! 185: if the data requires memory allocation and if the context handle that is used ! 186: (as opposed to initialized) is invalid. The stub raises an exception as it is ! 187: supposed to, but it doesn't do the clean up. 1.1 root 188: 189: 1.1.1.2 ! root 190: 1.8 Use Zero or Positive Values for the size_is and length_is Variables 1.1 root 191: 1.1.1.2 ! root 192: You must use a zero or a positive value for the size_is and length_is ! 193: variables. A negative value for the size_is or length_is variable causes an ! 194: exception. 1.1 root 195: 196: 1.1.1.2 ! root 197: 1.9 RPC Cannot Pass More than 63K Worth of Data on 16-Bit Platforms 1.1 root 198: 1.1.1.2 ! root 199: An MS-DOS or Windows 3.x system cannot pass more than 63K worth of data in a ! 200: single remote procedure call. Trying to pass more than 63K worth of data ! 201: results in undefined behavior. 1.1 root 202: 203: 1.1.1.2 ! root 204: 1.10 Windows 3.x Applications Using the [callback] Attribute 1.1 root 205: 1.1.1.2 ! root 206: If you use the [callback] attribute for a procedure specified in the IDL file ! 207: and if your application runs with Windows 3.x, you must compile all stubs ! 208: with the /GA C-compiler switch. Note that the /GA switch should not be used ! 209: for Windows callback functions (as opposed to RPC callback functions) that ! 210: are called in the context of another process. 1.1 root 211: 212: 213: 1.1.1.2 ! root 214: 1.11 Building RPC Samples with Visual C++ for Microsoft Windows NT 1.1 root 215: 1.1.1.2 ! root 216: You can build RPC applications with the Visual C++ SDK for Microsoft Windows ! 217: NT using the RPC*.H files distributed with that SDK. To build RPC samples ! 218: with Visual C++ for Windows NT, add the following definition to RPC.H (this ! 219: applies to Intel processors only): 1.1 root 220: 1.1.1.2 ! root 221: #define _CRTAPI1 _cdecl 1.1 root 222: 223: 1.1.1.2 ! root 224: _______________________________________________________________________ ! 225: _ 1.1 root 226: 1.1.1.2 ! root 227: 2.0 The following release notes are related to the RPC run-time libraries, ! 228: transport libraries, and Windows NT services provided with Microsoft RPC ! 229: version 1.0. 1.1 root 230: 231: 232: 1.1.1.2 ! root 233: 2.1 RpcServerUseAllProtseqs Requires a Null Security Descriptor 1.1 root 234: 1.1.1.2 ! root 235: The RpcServerUseAllProtseqs security-descriptor parameter must be set to NULL ! 236: in this release of Microsoft RPC version 1.0. The null parameter allows ! 237: everyone access. 1.1 root 238: 239: 1.1.1.2 ! root 240: 2.2 Named-Pipes Security Descriptor 1.1 root 241: 1.1.1.2 ! root 242: Named pipes (ncacn_np) allows everyone access when a null security descriptor ! 243: is supplied. This accessibility is independent of whether or not the account ! 244: used to start the server has a default ACL. 1.1 root 245: 246: 1.1.1.2 ! root 247: 2.3 Multiple Networks 1.1 root 248: 1.1.1.2 ! root 249: The Microsoft Locator does not work with a router. 1.1 root 250: 251: 1.1.1.2 ! root 252: 2.4 RpcNsBindingExport IP Addresses 1.1 root 253: 1.1.1.2 ! root 254: If a server has two IP addresses and as a result is on two subnets, ! 255: RpcNsBindingExport adds only one of the two addresses to the name service. ! 256: For this reason, clients on one of the two networks cannot import a valid ! 257: handle to that server. Clients that already know the server address will work ! 258: using either well-known or dynamic endpoints. 1.1 root 259: 260: 1.1.1.2 ! root 261: 2.5 SPX Transport Limitations 1.1 root 262: 1.1.1.2 ! root 263: The MS-DOS SPX transport does not function in a Windows DOS box or Windows NT ! 264: DOS box. The Windows SPX transport does not function in Windows standard ! 265: mode or in emulation mode with Windows NT. 1.1 root 266: 267: 1.1.1.2 ! root 268: 2.6 All Machines Must Use the Same SPX Packet Size 1.1 root 269: 1.1.1.2 ! root 270: To use the ncacn_spx protocol sequence (RPC over SPX), both the client and ! 271: the server must use the same maximum IPX packet size. Otherwise, multipacket ! 272: RPC calls will fail with RPC_S_CALL_FAILED. To adjust the packet size on a ! 273: machine running MS-DOS, Windows 3.x, or Windows for Workgroups, add the ! 274: following line to your NET.CFG or SHELL.CFG file: 1.1 root 275: 1.1.1.2 ! root 276: IPX PACKET SIZE LIMIT=xxxx ! 277: where ! 278: xxxx is the packet size in bytes. 1.1 root 279: 1.1.1.2 ! root 280: Consult your Novell documentation for more information. Note that some older ! 281: drivers do not support setting IPX PACKET SIZE LIMIT. 1.1 root 282: 1.1.1.2 ! root 283: To adjust the maximum packet size on machines running Windows NT, use ! 284: REGEDT32.EXE to set HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\ ! 285: Services\NWLINKIPX\NetConfig\Driver01\MaxPktSize to the proper value. ! 286: Consult the Windows NT Resource Kit for more information on the registry. 1.1 root 287: 1.1.1.2 ! root 288: 2.7 Windows 3.x Applications Using TCP/IP Must Call RpcWinSetYieldInfo 1.1 root 289: 1.1.1.2 ! root 290: Applications based on Windows 3.x that use TCP/IP (ncacn_ip_tcp) must call ! 291: the RpcWinSetYieldInfo routine. Applications making RPC calls that don't ! 292: call RpcWinSetYieldInfo will always hit an exception. The exception occurs ! 293: because Windows Sockets API standard requires that applications yield while ! 294: using the network. 1.1 root 295: 296: 1.1.1.2 ! root 297: 2.8 When Writing MS-DOS Applications, Avoid Calling _exit Directly 1.1 root 298: 1.1.1.2 ! root 299: Always write your RPC applications for MS-DOS to call the complete C-library ! 300: termination function exit or _cexit rather than the "quick" C-library ! 301: termination function _exit or _c_exit because the quick-termination functions ! 302: do not call the atexit function. The MS-DOS RPC run-time libraries use the ! 303: atexit function to clean up system resources. When you call the _exit or ! 304: _c_exit function, the atexit function is not invoked and resources are not ! 305: freed correctly. ! 306: _______________________________________________________________________ _____ 1.1 root 307: 308: 309: 1.1.1.2 ! root 310: 3.0 The following release notes are related to installation and configuration ! 311: issues for this release: 1.1 root 312: 313: 314: 1.1.1.2 ! root 315: 3.1 Using Microsoft RPC with Microsoft Windows for Workgroups 1.1 root 316: 1.1.1.2 ! root 317: To successfully run Microsoft RPC distributed applications with Microsoft ! 318: Windows for Workgroups version 3.1, you must use the Windows for Workgroups ! 319: network services. Stop all real-mode network services before starting ! 320: Windows for Workgroups. At the MS-DOS prompt, enter: 1.1 root 321: 1.1.1.2 ! root 322: net stop workstation /y ! 323: win 1.1 root 324: 325: 1.1.1.2 ! root 326: 3.2 Creating Installation Disks for Your Distributed Application 1.1 root 327: 1.1.1.2 ! root 328: After you have developed your distributed application using Microsoft RPC, ! 329: you should provide a way for your users to install your application. 1.1 root 330: 1.1.1.2 ! root 331: To enable your users to install your application, perform the following steps ! 332: when installing RPC: ! 333: * Copy your executable files ! 334: * Copy Microsoft RPC run-time and transport DLLs ! 335: * Set Microsoft RPC-related registry entries as needed 1.1 root 336: 1.1.1.2 ! root 337: To provide an installation tool for your users, use the Microsoft Setup ! 338: Toolkit for Windows. Microsoft Setup provides important version-control ! 339: features that prevent users from overwriting newer versions of the RPC ! 340: run-time libraries with older, incompatible versions. 1.1 root 341: 1.1.1.2 ! root 342: You can also use the template batch files provided with Microsoft RPC for ! 343: MS-DOS and Windows 3.x to help your users install your distributed ! 344: applications. The files DRUNDISK.BAT and WRUNDISK.BAT copy the Microsoft RPC ! 345: Setup program and associated files and direct the Microsoft RPC Setup program ! 346: to install all needed RPC system files. You must customize the .INF file for ! 347: your application. For more information about changing the .INF file, see the ! 348: documentation for the Microsoft Setup Toolkit for Windows. 1.1 root 349: 1.1.1.2 ! root 350: If you use another installation method, you should implement some form of ! 351: version control. Version-control methods ensure that you do not distribute ! 352: incompatible versions of the RPC run-time and transport libraries that can ! 353: cause software errors in your application and other applications. 1.1 root 354: 1.1.1.2 ! root 355: Some files include an embedded version-control number for use by the Setup ! 356: Toolkit for Windows. These files are noted in the lists below. 1.1 root 357: 1.1.1.2 ! root 358: The following Microsoft Windows 3.x RPC files should be installed in the ! 359: system directory or in a directory specified by the LIBPATH environment ! 360: variable: 1.1 root 361: 1.1.1.2 ! root 362: DNETAPI.DLL Non-Microsoft environments for DEC PATHWORKS ! 363: interoperability with Microsoft LAN Manager ! 364: NETAPI.DLL Microsoft LAN Manager transport DLL; has version number ! 365: for use with Microsoft Setup ! 366: RPCNS1.DLL Microsoft RPC name-service provider ! 367: RPCRT1.DLL Microsoft RPC client run-time library ! 368: RPC16C1.DLL RPC transport DLL for client-side named pipes ! 369: RPC16C3.DLL RPC transport DLL for client-side WinSock TCP/IP ! 370: RPC16C3X.DLL RPC transport DLL for client-side WSOCKETS.DLL TCP/IP ! 371: RPC16C4.DLL RPC transport DLL for client-side DECnet ! 372: RPC16C5.DLL RPC transport DLL for client-side NetBIOS ! 373: RPC16C6.DLL RPC transport DLL for client-side SPX 1.1 root 374: 1.1.1.2 ! root 375: The following MS-DOS RPC files should be installed in a directory that is ! 376: specified by the PATH environment variable: 1.1 root 377: 1.1.1.2 ! root 378: RPCNS.RPC Microsoft RPC name-service provider ! 379: RPCNSLM.RPC Microsoft RPC name-service provider LAN Manager support ! 380: RPCNSMGM.RPC Microsoft RPC name-service provider support module ! 381: RPC16C1.RPC RPC transport DLL for client-side named pipes ! 382: RPC16C3.RPC RPC transport DLL for client-side TCP/IP ! 383: RPC16C4.RPC RPC transport DLL for client-side DECnet ! 384: RPC16C5.RPC RPC transport DLL for client-side NetBIOS ! 385: RPC16C6.RPC RPC transport DLL for client-side SPX 1.1 root 386: 1.1.1.2 ! root 387: You need not install the Microsoft Windows NT versions of the Microsoft RPC ! 388: run-time libraries and transports. Microsoft Windows NT computers support ! 389: Microsoft RPC version 1.0. If you want to run Microsoft Windows 3.x or ! 390: MS-DOS RPC applications with Microsoft Windows NT, install the above RPC DLLs ! 391: on the system. 1.1 root 392: 393: 1.1.1.2 ! root 394: Setting RPC Registry Entries 1.1 root 395: 1.1.1.2 ! root 396: Your installation procedure should set any registry entries your application ! 397: needs. Registry entries are used by the RPC run-time libraries and the RPC ! 398: name-service provider to obtain information about the transport an ! 399: application intends to use. 1.1 root 400: 1.1.1.2 ! root 401: By default, MS-DOS and Windows 3.x registry entries are present in the file ! 402: RPGREG.DAT in the root directory of the boot drive. You can use a different ! 403: file by setting the value of the environment variable RPC_REG_DATA_FILE to ! 404: the path and filename of the alternate file. 1.1 root 405: 1.1.1.2 ! root 406: The RPC Setup program for MS-DOS and Microsoft Windows 3.x creates the ! 407: registry file RPCREG.DAT. If you write your own installation program, you ! 408: must create RPCREG.DAT and set appropriate entries for the name-service and ! 409: NetBIOS transports supported in that environment. 1.1 root 410: 1.1.1.2 ! root 411: If the Microsoft Locator is the name-service provider: 1.1 root 412: 1.1.1.2 ! root 413: \Root\Software\Microsoft\Rpc\NameService\Protocol=ncacn_np ! 414: \Root\Software\Microsoft\Rpc\NameService\NetworkAddress=\\. ! 415: \Root\Software\Microsoft\Rpc\NameService\Endpoint=\pipe\locator ! 416: \Root\Software\Microsoft\Rpc\NameService\DefaultSyntax=3 1.1 root 417: 1.1.1.2 ! root 418: If CDS is the name-service provider via NSID: 1.1 root 419: 1.1.1.2 ! root 420: \Root\Software\Microsoft\Rpc\NameService\Protocol=ncacn_ip_tcp ! 421: \Root\Software\Microsoft\Rpc\NameService\NetworkAddress=name of NSID ! 422: host ! 423: \Root\Software\Microsoft\Rpc\NameService\Endpoint= ! 424: \Root\Software\Microsoft\Rpc\NameService\DefaultSyntax=3 1.1 root 425: 1.1.1.2 ! root 426: The NetBIOS transport entries have the following form: 1.1 root 427: 1.1.1.2 ! root 428: \Root\Software\Microsoft\Rpc\NetBios\ncacn_nb_<A><B>=<C> 1.1 root 429: 1.1.1.2 ! root 430: where ! 431: <A> is the NetBIOS sub-protocol sequence (nb, ipx, or tcp). ! 432: <B> is a unique digit for each protocol sequence. ! 433: <C> is the lana number. ! 434: ! 435: For example, if you have two net cards in a system, running NetBEUI on both ! 436: and tcp/ip on one, and the lana numbers on the system are configured as ! 437: NetBEUI on card0 is 0, TCP/IP on card0 is 1, and NetBEUI on card1 is 2, then ! 438: the RPC NetBIOS registry entries are: ! 439: ! 440: \Root\Software\Microsoft\Rpc\NetBios\ncacn_nb_nb0=0 ! 441: \Root\Software\Microsoft\Rpc\NetBios\ncacn_nb_nb1=2 ! 442: \Root\Software\Microsoft\Rpc\NetBios\ncacn_nb_tcp0=1 ! 443: ! 444: For more information about the strings generated in the file RPCREG.DAT, run ! 445: Microsoft RPC Setup and inspect the strings. ! 446: ! 447: ! 448: ----------------------------------------------------------------------- ! 449: Microsoft, MS, and MS-DOS are registered trademarks and Microsoft Windows, ! 450: Win32, and Microsoft Windows NT are trademarks of Microsoft Corporation. ! 451: ! 452: Portions of this documentation are provided under license from Digital ! 453: Equipment Corporation. All rights reserved. DEC is registered trademark and ! 454: DECnet and PATHWORKS are trademarks of Digital Equipment Corporation. Intel ! 455: is a registered trademark of Intel Corporation.
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.