Por entrada/salida, E/S, o I/O en inglés, se entiende el intercambio de información entre el ordenador, el C64 en nuestro caso, y el mundo exterior. Cuando la información entra en el ordenador se habla de “entrada”, y cuando sale se habla de “salida”.
La entrada/salida normalmente requiere la conexión al ordenador y el uso de dispositivos periféricos. En el caso del C64 los periféricos más habituales son:
- TV o monitor tipo CRT (tubo de rayos catódicos).
- Datasette.
- Unidad de diskette.
- Cartuchos.
- Joysticks.
- Paddles.
- Impresoras.
- Modems.
- Etc.
No obstante, en ocasiones también se utiliza el C64 para conectarlo a circuitos electrónicos desarrollados a media, por ejemplo, sensores o sistemas de control. Recuerdo que, cursando la EGB hacia la mitad de los 80, en mi colegio nos llevaron de visita a una fábrica conservera cuyo sistema de producción estaba controlado por … ¡¡un VIC-20!! Increíble, pero totalmente cierto. Doy fe.
La conexión del C64 a los dispositivos periféricos es mediante los “puertos”. Esta palabra resulta un poco ambigua porque, como veremos más adelante, también se utiliza para designar las posiciones de memoria que utiliza el microprocesador (6510) para leer/escribir de los dispositivos. Por ello casi prefiero hablar de “interfaces” o “conexiones”.
Las interfaces o conexiones del C64 son:
- Puertos de control.
- Puerto de expansión.
- Puerto de usuario.
- Puerto del datasette.
- Puerto de vídeo.
- Puerto de RF.
- Puerto serie.
Cuando la comunicación entre el C64 y el periférico es bit a bit se habla de entrada/salida en serie, y cuando tiene lugar mediante varios bits a la vez, normalmente de ocho en ocho, se habla de entrada/salida en paralelo. El puerto serie permite entrada/salida en serie; el puerto de usuario permite entrada/salida en paralelo.
El propio teclado se puede considerar un periférico de entrada, aunque su conexión con el C64 es interna, no externa, y, por tanto, no se puede ver salvo que se abra el equipo.
La comunicación del microprocesador con los periféricos o dispositivos electrónicos conectados a las interfaces no es directa, sino que en muchos casos es a través de unos chips especiales llamados 6526 CIA – Complex Interface Adapter. El C64 tiene dos CIAs, llamados CIA1 y CIA2.
Resumiendo mucho, lo que hacen estos chips es servir de interfaz entre el microprocesador y los periféricos o dispositivos. Gracias a ellos, el microprocesador ve y trabaja con unas posiciones de memoria llamadas “puertos” (obsérvese la ambigüedad con la otra acepción de puerto). Estos puertos se puedan manejar con instrucciones “lda” y “sta” igual que cualquier otra posición de memoria. Además, estos chips tienen capacidades de temporización muy útiles, es decir, permiten definir relojes, cronómetros, y similares.
Dado que en este blog estamos especialmente interesados en la programación en ensamblador, y no tanto en describir los tipos de periféricos y su uso práctico, más adelante nos centraremos en cuáles son los registros del CIA1 y del CIA2, y cómo hacer algunos programas de E/S y temporización.
Hola.
Otro periférico habitual en los 80 era el lápiz óptico.
Aparece descrito en este entrada: https://programacion-retro-c64.blog/2020/01/21/funcionamiento-del-lapiz-optico/
Un saludo, HVSW.
Me gustaMe gusta