# Introduction

The 3DO environment is rich in device possibilities: any 3DO unit may be set up with few or many devices. Manufacturers can make 3DO units with a bare-bones configuration, or they can add extra devices such as a second CD-ROM drive or a digital television tuner. Once the 3DO unit is out of the box, users can add more devices by plugging in any of a large variety of controls, from simple controller pads to keyboards, or by adding peripherals such as modems or RAM mass storage.

Because a task can run on a multiplayer with any number of devices attached to it, a task can't assume that it knows what devices are available to it. Consider for example if a task knew the low-level details of a particular CD-ROM drive. If the drive hardware were to change between 3DO manufacturers, the task would suddenly fail to operate correctly.

To help a task traverse a world of devices that may change from minute to minute, Portfolio provides device drivers and I/O calls that can sense attached devices and know how to communicate with them, all without specific hardware knowledge on the part of client tasks.