SAVE NETI_0_Message$ ¿funcionará?
Moderador: Sir Cilve Sinclair
- jorgepil_97
- rst 0
- Mensajes: 32
- Registrado: Dom Feb 28, 2010 7:58 pm
- Ubicación: Valencia
SAVE NETI_0_Message$ ¿funcionará?
Hola, el problema que tengo es que estoy intentando guardar una cadena en la red local QLan para que otro ql la cargue, pero me da error... ¿será porque no esta conectado a otro QL o por que el comoando esta mal? Lo que yo uso es:
LET message$ = ""
INPUT message$
SAVE NETO_0_message$
¿esta bien? Si no lo esta alguien me puede decir como hacerlo bien? ¿para cargarlo seria load neti_0_message$?, ¿o esta mal también?
AYUDA!!!!
LET message$ = ""
INPUT message$
SAVE NETO_0_message$
¿esta bien? Si no lo esta alguien me puede decir como hacerlo bien? ¿para cargarlo seria load neti_0_message$?, ¿o esta mal también?
AYUDA!!!!
Última edición por jorgepil_97 el Sab Mar 20, 2010 10:55 am, editado 1 vez en total.
- jorgepil_97
- rst 0
- Mensajes: 32
- Registrado: Dom Feb 28, 2010 7:58 pm
- Ubicación: Valencia
Re: SAVE NETI_0_Message$ ¿funcionará?
Hola, he estado preguntando y mi tio me ha dicho que tengo que guardarlo en la red como una cadena de bits o algo asi y que el mensaje acabe en un caracter determinado para que luego el programa lo pueda reconocer. ¿alguien me puede decir como hacerlo?. Y otra cosa, ¿los emuladores de QL tienen opción de "conectarse" entre si a pesar de que esten en un mismo ordenador?, me refiero a tener dos abiertos y que se puedan enviar cosas, es para probar mi programa ya que mi QL de verdad esta aislado...
Por favor, ayudadme!!!!
Por favor, ayudadme!!!!
-
- Sabreman
- Mensajes: 396
- Registrado: Dom Feb 24, 2008 10:56 pm
Re: SAVE NETI_0_Message$ ¿funcionará?
Hace algún tiempo escribí una entrada (http://sinclairqles.wordpress.com/2010/01/02/divirtiendonos-con-la-red-local-del-sinclair-ql/) en QBlog (http://sinclairqles.wordpress.com) sobre comunicaciones en red de QL's, pero en ese artículo hace uso de las facilidades del Toolkit II y no del uso de los puertos neti y neto de QDOS. (Tal vez debas empezar por leer ese artículo).
Justo ahora también estaba empezando a escribir una entrada para QBlog donde relato mis experiencias para transferir ficheros desde un QL real a un PC empleando el cable serie. Espero acabarlo pronto.
Para QDOS estándar (un QL sin TKII), si quieres ver un ejemplo concreto, en esta dirección http://programandala.net/es.programa.barcos_ql hay un pequeño programa de Marcos Cruz donde puedes verlo. Es el típico juego de barcos para dos QL's conectados en red. Mira en esa Web, hay unos cuantos programas interesantes para comunicación entre QL's y QL-Spectrum.
Las instrucciones que se utilizan en esos programas para enviar y recibir información por los puertos de red, tiene la forma siguiente:
LBYTES "neti_"&numEst$,buffer
SBYTES "neto_"&numEst$,buffer,numBytes
numEst$ es el número de estación, numBytes es el número de bytes que quieres transmitir y la variable buffer es una especie de puntero a una zona de memoria, que puedes definir así:
buffer = RESPR(100)
si quieres reservar 100 bytes para esa zona de comunicación.
Si la estación fuera la número 2 de la red, las instrucciones siguientes son equivalentes.
LBYTES neti_2,buffer
SBYTES neto_2,buffer,numBytes
Ojo, primero tendrás definir en cada estación cual es nu número con el comando NET (NET 1, NET 2, ...)
Luego con PEEK`s o POKE's puedes leer la información de esa zona.
Según los manuales de QDOS, también se pueden usar las instrucciones OPEN, CLOSE, INPUT, PRINT, ... estándar, pero yo nunca lo he probado.
Saludos.
Justo ahora también estaba empezando a escribir una entrada para QBlog donde relato mis experiencias para transferir ficheros desde un QL real a un PC empleando el cable serie. Espero acabarlo pronto.
Para QDOS estándar (un QL sin TKII), si quieres ver un ejemplo concreto, en esta dirección http://programandala.net/es.programa.barcos_ql hay un pequeño programa de Marcos Cruz donde puedes verlo. Es el típico juego de barcos para dos QL's conectados en red. Mira en esa Web, hay unos cuantos programas interesantes para comunicación entre QL's y QL-Spectrum.
Las instrucciones que se utilizan en esos programas para enviar y recibir información por los puertos de red, tiene la forma siguiente:
LBYTES "neti_"&numEst$,buffer
SBYTES "neto_"&numEst$,buffer,numBytes
numEst$ es el número de estación, numBytes es el número de bytes que quieres transmitir y la variable buffer es una especie de puntero a una zona de memoria, que puedes definir así:
buffer = RESPR(100)
si quieres reservar 100 bytes para esa zona de comunicación.
Si la estación fuera la número 2 de la red, las instrucciones siguientes son equivalentes.
LBYTES neti_2,buffer
SBYTES neto_2,buffer,numBytes
Ojo, primero tendrás definir en cada estación cual es nu número con el comando NET (NET 1, NET 2, ...)
Luego con PEEK`s o POKE's puedes leer la información de esa zona.
Según los manuales de QDOS, también se pueden usar las instrucciones OPEN, CLOSE, INPUT, PRINT, ... estándar, pero yo nunca lo he probado.
Saludos.
- jorgepil_97
- rst 0
- Mensajes: 32
- Registrado: Dom Feb 28, 2010 7:58 pm
- Ubicación: Valencia
Re: SAVE NETI_0_Message$ ¿funcionará?
Hola, muchas gracias
Ya lo he probado y he hecho el código, pero me da un error...
el código es este:
Hay algo mal o es que me da error al no poder enviar??
EDITO: =================================================================================================================================
He estado haciendo pruebas y al enviar me dice: "en linea 360 parámetro incorrecto", por lo que en principio no tiene problemas al enviar, solo al cargar, cosa que me hace suponer aun más que sea causa de no estar conectado...
pero de todas maneras si veis algún error no os corteis
Ya lo he probado y he hecho el código, pero me da un error...
el código es este:
Código: Seleccionar todo
260 rep slmessage
270 let message$ = ""
280 input message$
290 print nick$;" > ";message$
300 let message = code(messaage$)
310 let nick = code(nick$)
320 let buffer = respr(100)
330 sbytes neto_0,buffer,nick
340 sbytes neto_0,buffer,message
350 pause 500
360 lbytes neto_0,buffer
370 print nick$;" > ";message$
380 end rep slmessage
Hay algo mal o es que me da error al no poder enviar??
EDITO: =================================================================================================================================
He estado haciendo pruebas y al enviar me dice: "en linea 360 parámetro incorrecto", por lo que en principio no tiene problemas al enviar, solo al cargar, cosa que me hace suponer aun más que sea causa de no estar conectado...
pero de todas maneras si veis algún error no os corteis
-
- Sabreman
- Mensajes: 396
- Registrado: Dom Feb 24, 2008 10:56 pm
Re: SAVE NETI_0_Message$ ¿funcionará?
Si, a simple vista tienes varios errores.
1) No debes usar el número de estación 0 (neto_0) ya que este número está reservado para hacer broadcast en la red. Debes usar como número de estación un número entre 1 y 64. Recuerda que previo a la ejecución del programa hay que definir en cada QL cual es su número de estación (con el comado NET).
2) No estás guardando nada en buffer (debes emplear peek y poke para poner y sacar bytes en zonas de memoria, en el código que pones, la zona a la que apunta buffer no tienes nada significativo).
3) Con la sentencia CODE no estás almacenando la longitud de la cadena (que creo que es lo que intentas hacer), el último parámetro la sentencia SBYTES, debe ser el número de bytes a volcar (CODE sólo devuelve el código ASCII del primer carácter de la cadena).
4) En la línea 360, con lbytes creo que deberías usar neti en lugar de neto.
Mira el código del programa que te comenté, allí hay ejemplos.
Si no, intenta emplear INPUT# y PRINT# a un canal abierto contra las conexiones de red, tal vez eso sea más simple.
Saludos.
1) No debes usar el número de estación 0 (neto_0) ya que este número está reservado para hacer broadcast en la red. Debes usar como número de estación un número entre 1 y 64. Recuerda que previo a la ejecución del programa hay que definir en cada QL cual es su número de estación (con el comado NET).
2) No estás guardando nada en buffer (debes emplear peek y poke para poner y sacar bytes en zonas de memoria, en el código que pones, la zona a la que apunta buffer no tienes nada significativo).
3) Con la sentencia CODE no estás almacenando la longitud de la cadena (que creo que es lo que intentas hacer), el último parámetro la sentencia SBYTES, debe ser el número de bytes a volcar (CODE sólo devuelve el código ASCII del primer carácter de la cadena).
4) En la línea 360, con lbytes creo que deberías usar neti en lugar de neto.
Mira el código del programa que te comenté, allí hay ejemplos.
Si no, intenta emplear INPUT# y PRINT# a un canal abierto contra las conexiones de red, tal vez eso sea más simple.
Saludos.
- jorgepil_97
- rst 0
- Mensajes: 32
- Registrado: Dom Feb 28, 2010 7:58 pm
- Ubicación: Valencia
Re: SAVE NETI_0_Message$ ¿funcionará?
De acuerdo, mañana haré pruebas y te digo como me ha ido. ( y si que pretendía almacenar la longitud de la cadena )
Otra cosa ¿ Los emuladores de QL permiten "conectarse entre si"? (me refiero a tener dos emuladores abiertos a la vez y poder conectarlos).
Y ya por ultimo, ¿La red entre spectrum y QL funciona?, o paso de intentar conectarlos...
Estoy muy verde en todo esto...
(bueno, el miercoles xdxd)
Otra cosa ¿ Los emuladores de QL permiten "conectarse entre si"? (me refiero a tener dos emuladores abiertos a la vez y poder conectarlos).
Y ya por ultimo, ¿La red entre spectrum y QL funciona?, o paso de intentar conectarlos...
Estoy muy verde en todo esto...
(bueno, el miercoles xdxd)
- jorgepil_97
- rst 0
- Mensajes: 32
- Registrado: Dom Feb 28, 2010 7:58 pm
- Ubicación: Valencia
Re: SAVE NETI_0_Message$ ¿funcionará?
Hola, he estado probando pero me ha surgido un problema... ¿como puedo saber en que dirección de memoria se guarda la variable message$ para cargarla con sbytes y enviarla?
Gracias por todo.
Gracias por todo.
- jorgepil_97
- rst 0
- Mensajes: 32
- Registrado: Dom Feb 28, 2010 7:58 pm
- Ubicación: Valencia
Re: SAVE NETI_0_Message$ ¿funcionará?
¿nadie lo sabe?...
-
- Sabreman
- Mensajes: 396
- Registrado: Dom Feb 24, 2008 10:56 pm
Re: SAVE NETI_0_Message$ ¿funcionará?
Algunas respuestas a tus preguntas.
La red entre QL y Spectrum debería funcionar. Algunos foreros lo han conseguido. Yo hace un par de meses me compre una Interface-1 para el Spectrum con el objetivo de probar la red con mis QL's, pero aún no he tenido tiempo de probarlo.
Sobre lo que preguntas de la dirección de memoria de message$ no lo se, pero se puede mover el contenido a una zona conocida de memoria que hayas reservado previamente. El ejemplo de código que te comenté en post anteriores muestra cómo hacerlo, en tu caso podría ser algo parecido a esto:
Saludos.
La red entre QL y Spectrum debería funcionar. Algunos foreros lo han conseguido. Yo hace un par de meses me compre una Interface-1 para el Spectrum con el objetivo de probar la red con mis QL's, pero aún no he tenido tiempo de probarlo.
Sobre lo que preguntas de la dirección de memoria de message$ no lo se, pero se puede mover el contenido a una zona conocida de memoria que hayas reservado previamente. El ejemplo de código que te comenté en post anteriores muestra cómo hacerlo, en tu caso podría ser algo parecido a esto:
Código: Seleccionar todo
100 INPUT message$
110 buffer = respr(100)
120 FOR i=1 TO LEN(message$)
130 POKE buffer+i,CODE(message$(i))
140 END FOR i
150 SBYTES "neto_"&numEstacion$,buffer,LEN(message$)
Saludos.
- jorgepil_97
- rst 0
- Mensajes: 32
- Registrado: Dom Feb 28, 2010 7:58 pm
- Ubicación: Valencia
Re: SAVE NETI_0_Message$ ¿funcionará?
¡¡Muchísimas gracias!!, por lo que dices del ejemplo que me enseñaste, yo es que entre tanto código me pierdo . Yo estoy esperando a que acabe una subasta de una interface 1 por ebay y empezaré a hacer pruebas.
Bueno, y ahora a programar!!
Bueno, y ahora a programar!!
- jorgepil_97
- rst 0
- Mensajes: 32
- Registrado: Dom Feb 28, 2010 7:58 pm
- Ubicación: Valencia
Re: SAVE NETI_0_Message$ ¿funcionará?
Hola, ya he acabado el programa:
te lo paso en un mp para que o pruebes si quieres es que como yo solo tengo un ql...
muchs gracias por tu ayuda!!!
te lo paso en un mp para que o pruebes si quieres es que como yo solo tengo un ql...
muchs gracias por tu ayuda!!!
- jorgepil_97
- rst 0
- Mensajes: 32
- Registrado: Dom Feb 28, 2010 7:58 pm
- Ubicación: Valencia
Re: SAVE NETI_0_Message$ ¿funcionará?
no funcionaaaaaa
Puse el código que me diste y me dice: expresión erronea...
Intenté arreglarlo únicamente con poke buffer,code (message$)/len(message$)/message$ y en las tres formas me lo acepta lo que pasa es que el sbytes ya no me lo reconoce... ¿por que?
Puse el código que me diste y me dice: expresión erronea...
Intenté arreglarlo únicamente con poke buffer,code (message$)/len(message$)/message$ y en las tres formas me lo acepta lo que pasa es que el sbytes ya no me lo reconoce... ¿por que?
¿Quién está conectado?
Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 15 invitados