Ref: 11030016
Title: ACP.SYS Command Codes and Error Returns
Date:  07/27/88

Copyright 3Com Corporation, 1991.  All rights reserved.

Command code & Description
                Error return code & Description
XX:             XX:

01: get_entry_point
        Each driver that is listed in the config.sys file will be
        loaded into memory by the operating system during boot
        time. The operating system from machine to machine will
        load this piece of code in different places in memory.
        The function here will return to the caller where it is
        in memory for the calling routine to communicate with it.
        Example of this is the RUNMINDS statement in the
        autoexec.bat file. The RUNMINDS uses this function for
        to find all the drivers in memory and bind them together.

                01: failed
                        Possible causes. The driver not listed in
                        the config.sys. Memory corruption in the
                        station. This is a local error.

02: get_bind_list
        Each driver that is listed in the config.sys file will be
        loaded into memory by the operating system during  boot
        time. The RUNMINDS statement in the autoexec.bat file
        makes this call to find what driver dependencies are.
        Example of this SPP needs IDP that needs BUF that also
        needs ETH.

                01: failed
                        Possible causes. Corruption of the driver
                        or corruption of the memory in the
                        station.

03: init_after_bind
        After getting the get_bind_list of driver dependencies
        RUNMINDS in the autoexec.bat file will initialize the
        driver.

                01: failed
                        Possible causes. One of the drivers that
                        SPP requires is not bound. SPP maybe in
                        the config.sys but another driver it
                        needs is missing. Or you may have
                        multiable versions of the same drivers.
                        Or the order of the drivers for RUNMINDS
                        is incorrect and you need a driver that
                        has not been bound yet. Or corruption in
                        memory of the station.


04: buffer_needs_request
        This is a startup routine that allocates all required
        buffer space for the driver.

                01: failed
                        After calculation, no memory available or
                        data corruption in memory of the station.

05: get_link_address
        This function call is used by remote pc client and never
        by route. Get the default ethernet address of
        "02608C000000" for the remote pc software.

                00: no error
                        There is no error return code. The
                        function just returns 02608C000000. The
                        reason of this function call is that
                        remote pc's do not have ethernet adapter
                        cards to return an ethernet address. For
                        3R.exe (remote pc code) because it
                        requires an address to operate.

06: new_client
        The driver is requesting a new client. Buffers are pooled
        by clients. A request has been made to start a new pool.

                01: type is taken
                        Possible causes. Corruption of the driver
                        or corruption of the memory in the
                        station.

                02: too many clients
                        After buffer_needs_request has been set
                        there has been too many request for new
                        pools. Each pool has to wait or be held
                        till all data is received of that group.
                        Thus having a lot of pools without all
                        data there can use up current pools
                        causing other pools to be dropped until
                        all data is there and then cleaned up by
                        unew_client.  Would normally be
                        accompanied by another error message.

                03: no such adapter
                        The software was trying to become a
                        client on a non-configured com port.
                        Possible causes. Corruption of the
                        system.cfg,hwinfo.cfg,ncxsrv.nsp data
                        file or corruption of the memory in the
                        station.

                04: buffer mix up
                        The memory block passed by the client for
                        receive buffer allocation is invalid.
                        This would inicate data corruption.

                05: invalid buffer queue
                        The buffers are queued for access.
                        Possible cause would be data corruption.

                06: invalid condition variable
                        The pools have a condition flag of the
                        pool. Data corruption in the memory of
                        the station.

07: unew_client
        This is to delete a pool or client, basically cleaning up
        pool space.

                01: no such client
                        No such client or pool would imply data
                        corruption in memory of the station.

                02: bad state
                        A bad state would imply that the client
                        is in use. This would be internal driver
                        error. Possible cause would be the driver
                        is corrupted or data corruption after
                        loaded.

08: transmit_buffer
        The transmit_buffer is a header in memory for a packet to
        be transmitted. The type of packet is known and the group
        of its client pools where the data resides, these pieces
        of data are passed and stored in the transmit_buffer.

                01: no such client
                        The data for a transmit_buffer is built
                        in a pool using the client number to make
                        the request. Possible cause would be
                        corruption of the memory in the station.

                02: invalid buffer
                        The memory address of the buffer is
                        passed when the transmit_buffer is
                        accessed. Possible cause would be
                        corruption of the memory in the station.

                03: packet size
                        This would occur if the packet size was
                        out side the acceptable 802.3 range. This
                        would indicate data corruption of network
                        or in memory of station.

                04: bad state
                        This would be internal driver error.
                        Possible cause would be the driver is
                        corrupted or data corruption after
                        loaded.

                05: transmission error
                        The async connection was hungup during an
                        attempt to transmit a packet. Possible
                        causes could be normal inactivity timeout
                        happening just before transmit attempt or
                        could be due to excessive noise on the
                        line.

09: transmit_pointer
        This function is not implemented. The function number is
        here to keep the internal drivers consistent.

                01: failed
                        This function is not implemented.

10: receive_buffer
        This function is not implemented. The function number is
        here to keep the internal drivers consistent.

                01: failed
                        This function is not implemented.

11: receive_pointer
        This function is not implemented. The function number is
        here to keep the internal drivers consistent.

                01: failed
                        This function is not implemented.

12: get_statistics
        This function is not implemented. The function number is
        here to keep the internal drivers consistent.

                01: failed
                        This function is not implemented.

13: shift_sockets
        This function is used only by remote pc. This is not used
        by route. This is exactly equivalent to IDP's command.

                01: no such client
                        Caused by data corruption.

14: set_new_phone_number_table
        This function is used by remote pc only. This function
        passes the pointer that points to the phone table
        structure.

                01: phone number to big
                        The phone table is invalid. Caused by
                        data corruption.

15: get_pointer_to_phone_table
        This function is used by remote pc only. This function
        retrieves the pointer that points to the phone table
        structure.

                01: phone number to big
                        The phone table is invalid. Caused by
                        data corruption.

16: set_configuration_table
        This function is used to tell the acp driver how many com
        ports are configured and what type of modems as well as
        timeouts.

                01: too many ports
                        Possible causes. Has ports been changed
                        since last 3install? IE. port expansion
                        board removed? Too many ports have been
                        configured for the amount of ports on the
                        station. Or data corruption.

                02: bad table
                        Possible causes ncxsrv.nsp file corrupted
                        or memory corruption.

17: establish_connection
        This function establishes a connection using the phone
        number passed in the control block unless a null modem is
        defined for this port.

                01: no such client
                        Possible causes ncxsrv.nsp file corrupted
                        or memory corruption.

                02: timeout
                        This function is not implemented.

                03: wrong order
                        The com port associated with this client
                        already has a connection establihed.

                04: bad state
                        This would be internal driver error.
                        Possible cause would be the driver is
                        corrupted or data corruption after
                        loaded.

                05: link not ready
                        The connection failed. Possible causes
                        would be the phone did not answer on
                        other end. The phone did answer and
                        synchronized but by the time it did a
                        timeout occurred. The phone was busy on
                        other end. The modem did not dial and the
                        modem memory is corrupted and needs to be
                        re-initialized.

18: disconnect_connection
        Disconnect the connection on the com port associated with
        the client. Remote PC the hang up command. Or route and
        remote pc timeout.

                01: no such client
                        Data corruption.

                02: no connection
                        No connection had been established. Data
                        corruption.

                03: more data
                        This function is not implemented.

                04: bad state
                        This would be internal driver error.
                        Possible cause would be the driver is
                        corrupted or data corruption after
                        loaded.

19: get_asynch_port_status
        This function returns current connection statistics. For
        the route and remote pc code to operate. The statistics
        that are returned are:
                                port not configured
                                port closed
                                port is open
                                port is other

                01: no such port
                        The requested port is not valid. Possible
                        causes ncxsrv.nsp file corrupted or
                        memory corruption.

03/24/88

