Autor Tema: Consulta sobre puertos  (Leído 2279 veces)

teddy

  • Sinver
  • *
  • Mensajes: 1
  • SYS 0
    • Ver Perfil
Consulta sobre puertos
« en: Marzo 24, 2018, 21:17:37 »
Buenas, antes que nada les comento que no soy un fanático de Commodore ni nada por el estilo, por eso es que acudo a ustedes...

Yo según recuerdo, se que la IBM 5150 que venía con el cassette, y tenía el basic en la rom no podia usar el puerto serial, pero la commodore si. Alguien tiene algún ejemplo de como abrir el puerto com en basic de la commodore para enviar alguna información o recibirla?

Gracias.

josepzin

  • Administrador
  • Commodore Master
  • *****
  • Mensajes: 13628
  • Commodoreador web
    • Ver Perfil
    • Mi blog
Re:Consulta sobre puertos
« Respuesta #1 en: Marzo 24, 2018, 22:33:07 »
Bienvenido!

Seguro que @pastbytes sabe algo del tema.
www.retroinvaders.com | www.commodoreplus.org  | josepzin.blogspot.com

pastbytes

  • Desarrolladores
  • Commodore Master
  • ******
  • Mensajes: 556
  • SYS 0
    • Ver Perfil
Re:Consulta sobre puertos
« Respuesta #2 en: Marzo 25, 2018, 00:43:57 »
Que es lo que necesitas hacer? El puerto serie se abre con un OPEN al dispositivo 2, los parametros que pongas dependen del tipo de cable que tengas armado, la velocidad, cantidad de bits, paridad, etc.
Necesitas adaptar los voltajes si vas a conectar a un RS232 estandar, no se puede conectar el puerto de forma directa.
Tambien hay señales que en el puerto del usuario estan invertidas y requieren inversores.
El cable puede ser de 3 hilos (RX, TX, GND), que no requiere inversores, o puede usar mas hilos, por lo general se agregan RTS y CTS como minimo. Eso hay que especificarlo en la instruccion OPEN.
La velocidad mas alta para enviar y recibir con seguridad es 1200 bps, eso funciona bien desde el BASIC. Hay programas que permiten usar velocidades mas altas como 2400 bps, pero en el BASIC mas de 1200 bps empieza a perder datos.

pastbytes

  • Desarrolladores
  • Commodore Master
  • ******
  • Mensajes: 556
  • SYS 0
    • Ver Perfil
Re:Consulta sobre puertos
« Respuesta #3 en: Marzo 25, 2018, 01:06:07 »
Muchas de las cosas que no salen en el manual que viene con la C64, estan en el manual de referencia del programador, lo del puerto serie esta en esta seccion:
http://www.commodore.ca/manuals/c64_programmers_reference/c64-programmers_reference_guide-06-input_output_guide.pdf
Resumiendo, para abrir el puerto RS232 hay que ejecutar una instruccion OPEN, que lleva 3 numeros, el primero es el numero de canal, que puede ser cualquiera que no este ya abierto, en el arranque no hay ninguno abierto porque eso lo hacen las aplicaciones y el usuario, asi que se puede usar por ejemplo el canal 1. Los otros dos numeros son 2 (dispositivo RS232) y 0 (canal secundario, que en RS232 tiene que ser 0). En el mismo OPEN se especifica el tipo de conexion (cable, velocidad, cantidad de bits, etc.), esto se hace con un numero que define todos esos parametros, por lo que hay que calcular ese numero antes de escribir la instruccion. El numero despues se especifica con la instruccion CHR$, que convierte ese numero a un byte binario.
Ahi sale este ejemplo:
OPEN 1, 2, 0, CHR$(6): REM300 BAUD
En las paginas 16 y 17 de ese pdf estan las dos tablas que necesitas saber para calcular el numero para los parametros.
Segun eso, en el ejemplo se abre una conexion de 1200,8N1, full duplex, con un cable de 3 hilos.