Two I/O ports - Serial and Parallel - were originally available for add-ons. However, these were removed in later revisions of the console due to low adoption and concerns that they could be exploited to bypass the copy protection system.
CD subsystem
The block responsible for controlling the CD drive is an interesting area; you can imagine it as a separate computer living inside the PlayStation.

The architecture of the CD Subsystem.
This subsystem comprises:
- A Digital Signal Processor (DSP): Controls the motor and laser, and processes the RF signal coming from the laser.
- A Sub-CPU: A CPU package made of a Motorola 68HC05 microcontroller, 512 B of RAM, and 16 KB of ROM . In a nutshell, the Sub-CPU runs a local program stored in ROM and controls the DSP. The Sub-CPU program implements copy-protection measures and they are enforced whether the main CPU 'likes it or not'.
- A CD Controller: Serves as the middle-man between the CD subsystem and the rest of the console, receiving commands from main CPU (in a FIFO manner) and triggering interrupts after specific events. As a controller, the chip talks to the Sub-CPU and receives CD data from the DSP.
- Furthermore, the controller bundles a DMA unit that is connected to the SPU, which allows it to stream audio directly.
- 32 KB of SRAM connected to the controller: This is presumably used as a buffer for data read from the disc.
The subsystem somewhat resembles the typical CD drive everyone had at their home, albeit with particular tweaks Sony implemented in the Sub-CPU program to perform anti-piracy checks.
Front ports
The console features four front-facing sockets: two for game controllers and two for Memory Cards (used to store game saves). All four slots are electrically identical , so the address of each one is hardcoded. Additionally, Sony altered the physical shape of the ports to avoid accidents.

Front ports of the PlayStation .
Communication with these devices is accomplished through a serial interface. Commands sent by the console are delivered to one of the two groups (either 'mem. card 0' and 'controller 0', or 'mem. card 1' and 'controller 1'). The two accessories answer with their unique identifiers, allowing the console to focus on a particular type of device (memory card or controller) from that point onward.