9 años atrás
dom mar 08 2015, 13:25
Espectacular, probaste que hable cuando arranca? Tendrias que hacer como hice yo, soldarle un alambre a la placa para poder hacer fuerza y retirarlo con eso si necesitas desconectarlo, porque se complica.
El reset es por si se quiere volver a arrancar el sintetizador en algun momento, lo puse porque al resetear la C64 no se resetea el pic, por ahi se podria conectar en paralelo a la del PIC la señal de reset del puerto del usuario, como para que el boton sirva para resetear las dos cosas.
Me olvidaba, podes usar para la salida resistencia y capacitor que mantengan la misma relacion, por ejemplo en la placa para PC use 470 y .1uF que son mas comunes, se puede usar 1K y 47nF tambien, o 47K y 1nF, aunque cuanto mas alta la resistencia menor sera el volumen de salida.
Esta correcto, a 1200 bps, sin eco de lo recibido, y con el mensaje de arranque habilitado.
Si tenes una Plus/4 te busco el juego guerra galactica, pero ahi tenes que cambiar JP0 y JP1 para hacerlo andar a 19200 bps.
9 años atrás
dom mar 08 2015, 17:23
Lo probaste en una C128 con la salida de 80 columnas, no?
En C64 no va a cargar, y no creo que Directloader soporte el modo 128.
Acabo de probar en VICE, abro el prg, luego LOAD "*",8 y carga bien.
Ayer conecte la 128 al monitor 1084sd por la salida rgbi y cargue desde la sd2iec la aventura y funciono joya!!
Lo unico que pude agarrar fue el casco!!(Donde puedo conseguir los comandos que se usan?)
Despues ya empece a modificarle algunas palabritas a la aventura jaja
Tenes algun programa sencillo como para entrender de que forma se envia el texto al puerto?Queria hacer unas pruebas con un programa basic que vi en un libro.
Saludos
9 años atrás
lun mar 09 2015, 23:50
Tipeas ayuda y te muestra los comandos.
Para abrir el puerto haces:
OPEN 1,2,0,CHR$(8)+CHR$(0)
Para enviar algun texto:
PRINT#1,"SALUDOS"
Si vas a poner textos largos, te conviene hacer algo asi, como esta en el programa:
PRINT#1,"E+STA ES UNA PRUE+BA-":SLEEP 1:WAIT 56577,8,8
El PRINT# envia el texto, luego el WAIT 56577,8,8 lo que hace es esperar a que el led de reproduccion de sonido se apague, es decir que deje de hablar, recien ahi continua la ejecucion.
Si queres que te devuelva el control rapido y no detenga la ejecucion hasta terminar de hablar, entonces con el PRINT# alcanza.
La orden SLEEP 1 le indica al BASIC que espere 1 segundo, esto es util a veces porque hay comandos que no encienden el led de reproduccion de sonido, por ejemplo si primero le cambias el tono de voz. Lo que me ocurria es que ponia algo como:
PRINT#1,"(Z30N20C06)SALU+DO-S"
La orden PRINT# envia el texto como tarea de fondo, y continua ejecutando la siguiente instruccion, que era el WAIT, pero como los comandos (Z30N20C06) no encienden el led de reproduccion, el WAIT instantaneamente detectaba el led apagado, y continuaba la ejecucion como si ya hubiera terminado de hablar, entonces para darle tiempo a que hable algo, se agrega SLEEP 1, con ese tiempo ya nos aseguramente de que esta procesando el texto SALU+DO-S, y entonces WAIT espera a que termine de hablar.
Igual no hace falta entender todo eso, basta con saber que si pones eso despues de cada PRINT# tenes el programa sincronizado con lo que se habla, como ocurre en la aventura, que recien imprime lo siguiente cuando termino de hablar lo anterior.
Podes mirar el listado para darte una idea, por ejemplo LIST 1200-1300, ahi tenes unas cuantas lineas de ejemplo.
Y por supuesto, al terminar el programa, CLOSE 1.
Me olvidaba, esto es para C128, en C64 la instruccion SLEEP no existe, eliminas eso y creo que anda igual, sino habra que agregar una pequeña pausa antes del WAIT.