Le contrôleur est l'organe qui va faire le lien entre l'ordinateur et le lecteur de disquette.
Pour cela le TRS-80 discute en "mappant" ses registres sur plusieurs adresses. Ces adresses sont réservées pour le module d'expansion, où seuls quelques unes sont utilisées pour le lecteur de disquette:
Registres de contrôle
Le contrôleur de disque utilisé dans le module d'expansion est un FD1771 de Western Digital, il dispose de cinq registres.
- STATUS: Le registre de Status qui informe sur l'état du lecteur ou de l'exécution d'une commande , il est accessible en lecture uniquement.
- COMMAND: Le registre de Commande, indique au contrôleur la prochaine commande devant être exécutée, il est accessible en écriture et partage l'adresse du registre Status.
- TRACK: Le registre Track qui indique la piste devant être prise en compte pour l'exécution de certaines commandes.
- SECTOR: Le registre Sector qui indique le secteur devant être pris en compte pour l'exécution de certaines commandes.
- DATA: Le registre Data permet d'échanger des données avec le lecteur de disquette par le contrôleur, en lecture ou en écriture.
Les adresses d'accès à ces registres sont les suivantes: ${$}$37EC ~ ${$}$37EF, les deux bits de poids faible permettent de différencier les registres adressés.

Le TRS-80 est capable de gérer jusqu'à quatre lecteurs de disque, et cela avec le même contrôleur. Il utilise pour cela un registre de sélection de lecteur qui se trouve à l'adresse ${$}$37E0.
Pour sélectionner le lecteur concerné par le contrôleur, il faut inscrire un '1' dans le bit concerné:
- Lecteur 0: bit 0 =1, revient à écrire ${$}$01 à l'adresse ${$}$3E70
- Lecteur 1: bit 1 =1, revient à écrire ${$}$02 à l'adresse ${$}$3E70
- Lecteur 2: bit 2 =1, revient à écrire ${$}$04 à l'adresse ${$}$3E70
- Lecteur 3: bit 3 =1, revient à écrire ${$}$08 à l'adresse ${$}$3E70
Un seul lecteur peut être sélectionné à la fois, sous peine de provoquer des collisions de données. Il n'existe cependant pas de protection.