MOSCHIP MCS7830 USB 2.0 Ethernet Driver

Release date: 
Sunday, 17 April, 2016




Authors/Port authors:

A driver for MCS7830 based USB to Ethernet adapters, telling VendorID 0x9710 and ProductID 0x7830

This software is distributed as compressed package. You have to download and manually install it; if prerequisites are required, you will have to manually install them too.

Manual installation

See: How to install a network adapter driver. Warp 4 FP15 and up with USB-Stack is needed.

Following ones are the download links for manual installation:

MOSCHIP MCS7830 USB 2.0 Ethernet Driver v. 1.4 (17/4/2016) Readme/What's new
MOSCHIP MCS7830 USB2.0 TO ETHERNET DRIVER README Version 1.14 15.02.2016 1. GENERAL Please note, that I am not a professional programmer. Also, I am an absolute beginner in network technology. I am only a person interested in OS/2. This driver is my first attempt to write an OS/2 device driver. Cause I don't speak C programming language, this driver is written with Virtual Pascal and an assembler stub for linking the 32-bit code to the kernel. This work is done at my spare time and given to public for free. Please note that I will not support this driver and there's no guarantee that there will be a further version. It is not a project to the public but a result of my needs and my curiosity. This driver would not exist without the help of many code snippets and free available information from many other people doing OS/2 development. Maybe my code will be helpful for someone else, so I have included full source code into If you want to make things better you are invited to do so. Please feel free to use the driver and the source but note, that some of the string-functions are taken from the Virtual Pascal sources. And, of course, I am not responsible to any damage using this driver at your system! I have been testing this driver carefully but I am shure, there may be bugs left. As always, a bug in a device driver may crash the whole system. So please, be careful when testing this driver. 2. SUPPORTED DEVICES This driver supports USB2.0 to Ethernet Adapters using MOSCHIP MCS7830 chip. The device identifies as Vendor 0x9710 and Product 0x7830 in the device descriptor. The driver accepts all devices with that combination of Vendor and Product ID. Mine was sold by Conrad at December 2007, Order Number 973119 for about 25 EURO. Today, you can find such devices on second hand market. 3. PREREQUISITES This driver should run on every Version of OS/2 Warp4 and up. You NEED an USB 2.0 Hub for doing something useful with it. You NEED at least a 486 CPU (but this should not be a problem). SMP is now tested and known working fine. My configuration: Intel Core2 Duo with running ECS2.1, ACPI and USB Drivers from Lars Erdmann. 4. INSTALLATION The driver consists of two files: mcs7830.os2 (the driver) and mcs7830.nif (information file for MPTS). You may install via MPTS-Configuration. Use the "others" button to copy the files to MPTS or copy the files manually to the X:\IBMCOM\MACS directory (where X is to be replaced with the name of the drive where MPTS is installed). After that, you should find the entry "Moschip USB 2.0 to Ethernet Adapter" in the list of available network cards. Follow the instructions of your MPTS installation to complete the installation. You can configure the following elements: Set Ethernet Speed an Duplex Mode [ETHERMODE]: Number 0-4 with 0 = Autodetect 1 = 10 Mbps, Half Duplex 2 = 10 Mbps, Full Duplex 3 = 100 Mbps, Half Duplex 4 = 100 Mbps, Full Duplex Please note, Automatic detection of Full Duplex REQUIRES a hub with ports that are capable of performing N-Way auto-negotiation, so forcing the duplex mode to Full is recommended for most users connecting to a Full Duplex hub. Locally Administered Address [NODE]: Hex-String 12 characters This is to be used by a network administrator - do not use it if you don't know what you do. Serial Number Identifier [SERIALNR]: Hex-String This can be used if you have more than one adapter to link a specific adapter to a specific configuration. You can find the Serial Number (if the adapter has an EPROM) by investigating the Hardware Manager after plugging the adapter. You should find a line like "USB-MAC Controller SN:YYYYYYY" where YYYYY is the serial number provided by the adapter. This entry is case-sensitive, write exactly as shown! 5. MORE FEATURES PROTOCOL.INI The driver can hold up to three configurations and may be able to run three adapters at the same time (not tested). Simply double the entries for [MCS7830_nif] to [MCS7830_2_nif] or somewhat else and bind the neccessary protocols to it. Use the Serial Number Identifier (e.g. SERIALNR = "3b000405C") to define which adapter has to use which configuration. Please note that the driver assigns every adapter to the first configuration that is idle and either missing a SERIALNR-entry or that matches the number programmed to the adapter. You must not load the driver twice at config.sys! CONFIG.SYS You may add the following parameters after the DEVICE:= ... MCS7830.OS2 statement: /V means "show up a loading message" /W includes /V but shows more information. Also this causes the driver to write some debug messages to internal buffer, e.g. reciving a "plugged" message from USBD and others. This can be useful when investigating problems. The buffer can be read by typing the following in an OS/2 command window: copy mcs7830$ con: Please note, /W causes a speed panalty to your system an should only be used if you are investigating problems. IMPORTATNT: There are some implementations of MCS-Adapters lacking an EPROM. To make them work, you have to give the driver the necessary information. First check, if your adapter has an EPROM: - add an /W to the MCS7830.OS2 statement in config sys. - unplug the adapter from USB and reboot - after reboot, plug your LAN-Cable into the adapter, next plug the adapter to USB - open a command window and enter: tedit mcs7830$ (Return) If all's fine, you ll see: USB-MAC Controller SN:3b000495C Module: 0 / 3b000495C / Device linked not specific Set Config Set Interface Adapter added to RM MAC-Address is:00133B000495 Wait on Network connect Status 0030, Retry: Status 0010, Retry: Status 0010, Retry: Link ok You don't need to do anything else than (maybe) configure your network. If you see: USB-MAC Controller SN:3b000495C Module: 0 / 3b000495C / Device linked not specific Set Config Set Interface Adapter added to RM Error reading MAC-Address you can fix it by doing the following: Open MPTS (where you installed the Adapter) and use the change option. You have to provide a Locally Administered Address, that is a 6-byte/12-character unique address (called MAC-address sometimes). You may try 1234567890BC or something else - as long it's unique within your network. Save the changes (you don't need to update config.sys) and reboot. After that - doing the same as above - you should see: USB-MAC Controller SN:3b000495C Module: 0 / 3b000495C / Device linked not specific Set Config Set Interface Adapter added to RM MAC-Address is set to:1234567890BC (if you have used my example) Now your adapter is ready to use. Maybe you want to remove the /W option from config.sys - it's no longer needed. Network configuration might fail on system startup due to the fact, the network connection is not available in time on system boot. So you might have to execute some network configuration tools after boot, e.g. dhcpstrt.exe -i when using DHCP. See your local network configuration file (C:\MPTN\BIN\SETUP.CMD) to see what is executed on startup. 6. RESTRICTIONS My driver does make no use of APM. On my Notebook, the USB-Port is powered down when entering Suspend. Before, my driver is told that the adapter was disconnected. On APM resume, the USB comes back to power, USBD is telling my driver that a device has been attached. Power saving features of the chip itself are enabled. Multicast-Addresses are restricted to one per adapter. Cause USB may not be the preferred way to build up a network server I decided not to implement more than one multicast address. I simply don't know what to use them for. When the link is lost (but the adapter ist still connected to USB), the driver tells transmit errors to the protocol trying to send. After link is back, it can take up to 10 Sec. till the driver has polled the adapter and transmission resumes. When the adapter is disconnected from USB, an adapter-check condition is told to the protocol. This causes a non resumable condition to the protocol so that the link has to be established by using IFCONFIG again. To take care of connections built up at system start I have implemented the following procedure: If the system starts, USBD is telling the driver about all connected USB devices. If there's an adapter connected, the driver initializes the adapter and waits some time for getting a physical network link. If then a IFCONFIG is issued during boot, the link should come up without a problem. The only disadvantage is the delay during boot with a USB connected adapter without an ethernet cable connected. To avoid this, disconnect the USB-side if you don't need the adapter. 7. THANKS & CONTACT Thanks to all people spending time and money to keep OS/2 alive! If you like to contact me, you can use the following email: >My full name without space or dot< @ But please note, that it can take a few weeks, till you get an answer and I can only react to german or english language. Holger Veith PS: To build the driver, you need: - Virtual Pascal Version 2.1 Build 279 - the OS2 Toolkit 4.5 (alp, os2386.lib and link386.exe) Look at the make.cmd file included. After setting the paths, compiling and linking should work. The compiler options for Virtual Pascal are specified in the source file. If you specify vp.exe or vpm.exe prior to alp in the make.cmd, you can work with the VP IDE and issue a complete automatic rebuild when leaving the IDE.
Record updated last time on: 08/09/2019 - 14:16

Translate to...

Add new comment