jltursan
|
|
« Respuesta #45 : 04 de Febrero de 2006, 12:27:26 pm » |
|
Aparte de eso... has comprobado que lo del OUT que comentaste funciona??... en mi programa no me ha funcionado y luego he hecho pruebas utilizando el código que habías puesto tú y nada... puede ser que no hayas puesto la dirección correcta??
¿Ya te ha funcionado?; como debería hacerlo, por si las moscas puedes probar esto : 10 SCREEN 1 20 VPOKE &H1800,65 30 OUT &H98,66 40 OUT &H98,67 50 OUT &H98,68 60 GOTO 60
|
|
|
En línea
|
Doom dee doom dee doom
|
|
|
Imanok
|
|
« Respuesta #46 : 04 de Febrero de 2006, 12:36:36 pm » |
|
¿Ya te ha funcionado?; como debería hacerlo, por si las moscas puedes probar esto : 10 SCREEN 1 20 VPOKE &H1800,65 30 OUT &H98,66 40 OUT &H98,67 50 OUT &H98,68 60 GOTO 60
Qué se supone que debe hacer ese código??... a mí me ha pintado una 'A' y punto. De todas formas, gracias al poke aquel que comentásteis, lo estoy haciendo con PRINT's, que es muchísimo más rápido.
|
|
|
En línea
|
|
|
|
jltursan
|
|
« Respuesta #47 : 04 de Febrero de 2006, 12:50:13 pm » |
|
¡Ahí va, la leche!, si es que eso sólo funciona en los emuladores Lo he probado en el 2+ que me pillaba más a mano y, como tú dices, sólo muestra la A. En el MSX1 no he podido probarlo porque parece que se me ha jodido la tecla "," . ¡Dos disgustos en uno! Curioso el asunto este del puntero a la VRAM...
|
|
|
En línea
|
Doom dee doom dee doom
|
|
|
Darth_Fistro
|
|
« Respuesta #48 : 04 de Febrero de 2006, 01:29:15 pm » |
|
¡Ahí va, la leche!, si es que eso sólo funciona en los emuladores Lo he probado en el 2+ que me pillaba más a mano y, como tú dices, sólo muestra la A. En el MSX1 no he podido probarlo porque parece que se me ha jodido la tecla "," . ¡Dos disgustos en uno! Curioso el asunto este del puntero a la VRAM... ¿Ya estáis creando incompatibilidades? ¡Usuarios de Spectrum teníais que ser! Probé lo del poke para hacer creer al basic que se estaba en sc1 cuando en realidad es sc2, e hice un print"AAAA" pero sólo me salió una "A". Vpokee la A para redefinirla y colorearla y nada. Eso sí, lo probé en el rumsx
|
|
|
En línea
|
MSX FOREVER (hasta que saquen un ZX81 con TMS, PSG y 64K de RAM)
|
|
|
Imanok
|
|
« Respuesta #49 : 27 de Febrero de 2006, 12:28:35 pm » |
|
Otra dudilla... respecto al uso de DATA, READ y RESTORE.
Imaginemos que a partir de cierta línea tengo almacenadas las pantallas del juego... pues bien, para acceder a los datos hago lo normal, un RESTORE de la línea donde empiezan y voy leyendo con READ. De la forma que lo hago ahora, siempre tengo que hacer READ de los datos anteriores a la pantalla que quiero, hasta que llego a la misma (lo cual, ralentiza bastante el tema en pantallas avanzadas)... hay alguna forma de avanzar X posiciones al hacer un READ o algo del estilo??... si no, aún me veo que tendré que repartir las pantallas en bloques y hacer un RESTORE diferente según la pantalla que quiera cargar...
|
|
|
En línea
|
|
|
|
SapphiRe
Visitante
|
|
« Respuesta #50 : 27 de Febrero de 2006, 12:40:51 pm » |
|
si no, aún me veo que tendré que repartir las pantallas en bloques y hacer un RESTORE diferente según la pantalla que quiera cargar...
Será lo mejor...
|
|
|
En línea
|
|
|
|
jltursan
|
|
« Respuesta #51 : 27 de Febrero de 2006, 03:20:35 pm » |
|
Así lo he hecho yo. Estuve dándole vueltas a alguna otra forma y mediante unos pokes puedes indicarle a partir de donde empiezan los DATAs a ser leidos, el problema es que esa posición no corresponde a un número de linea, sino a una dirección de memoria La pregunta se convierte entonces en : ¿Se puede averiguar desde BASIC la posición de memoria en la que se encuentra una linea determinada?, supongo que no...
|
|
|
En línea
|
Doom dee doom dee doom
|
|
|
SapphiRe
Visitante
|
|
« Respuesta #52 : 27 de Febrero de 2006, 03:23:32 pm » |
|
La pregunta se convierte entonces en : ¿Se puede averiguar desde BASIC la posición de memoria en la que se encuentra una linea determinada?, supongo que no... Mal supuesto. Claro que se puede averiguar, tendrías que hacer un recorrido de la memoria destinada al programa en BASIC parseando los números de línea y las direcciones. Aquí no tengo la información necesaria, pero prometo buscarla y si quieres charlamos en la MadriSX sobre cómo hacerlo. Saludos -- SapphiRe
|
|
|
En línea
|
|
|
|
jltursan
|
|
« Respuesta #53 : 27 de Febrero de 2006, 03:29:44 pm » |
|
¡Quieto León! :whip: Es que me he expresado mal, claro que se puede averiguar la linea (de hecho así es como funciona el ROMCreator ); pero claro, lento y a costa de tirar código. Me refería a algo del tipo PEEK mágico o DEFUSR chulo. Algo que en un pispas te de el dato...voy a seguir suponiendo que no existe...(ojala que alguien demuestre lo contrario)
|
|
|
En línea
|
Doom dee doom dee doom
|
|
|
Imanok
|
|
« Respuesta #54 : 28 de Febrero de 2006, 08:35:04 am » |
|
Pues nada... resignación... En cuanto a la localización de las DATA's... comentásteis que las subrutinas que más se utilicen deberían ir al principio del programa, ya que de esta forma se ganaba velocidad... con las DATA's pasa lo mismo??
|
|
|
En línea
|
|
|
|
jltursan
|
|
« Respuesta #55 : 28 de Febrero de 2006, 09:59:50 am » |
|
También, también. El RESTORE es el que curra cuando los DATAs están al final ya que para localizar la linea que le pones, se las recorre desde el principio. Como con los GOTOs y los GOSUBs pasa lo mismo; pues cuanto más arriba estén las subrutinas y los saltos; pues mejor. Hay otro detalle importante, los saltos de cualquier tipo hacia adelante, son mucho más rápidos que saltar hacia atrás, aunque sea una mísera linea de diferencia.
|
|
|
En línea
|
Doom dee doom dee doom
|
|
|
Imanok
|
|
« Respuesta #56 : 28 de Febrero de 2006, 02:39:06 pm » |
|
Ok, Mackey!
|
|
|
En línea
|
|
|
|
Imanok
|
|
« Respuesta #57 : 10 de Marzo de 2006, 09:57:31 am » |
|
Porculeando de nuevo... A ver... si quiero hacer un binario que contenga el set gráfico comprimido y el código descompresor, dónde (de la página 3, supongo) sería mejor tener la zona de buffer para que no me cargue nada y que sea compatible??... solo se usaría al comienzo para cargar los gráficos y ya está.
|
|
« Última modificación: 10 de Marzo de 2006, 09:59:13 am por Imanok »
|
En línea
|
|
|
|
jltursan
|
|
« Respuesta #58 : 10 de Marzo de 2006, 10:06:03 am » |
|
Bueno, puede haber varias situaciones : - Si usas RLE : pues puedes descomprimir directamente a VRAM.
- Si usas Bitbuster : tendrás que usar el buffer que comentas
El buffer siempre irá en la página 3 y dependerá de la organización de las variables del programa el que sea reaprovechable o no. Lo más sencillo creo yo que sería descomprimir en $C000 nada más empezar el programa y a continuación, una vez volcado a VRAM, crear tu area de variables a partir de $C000, borrándola con 0 e inicializándola como quieras.
|
|
|
En línea
|
Doom dee doom dee doom
|
|
|
Imanok
|
|
« Respuesta #59 : 10 de Marzo de 2006, 02:01:40 pm » |
|
Pero la dirección $C000 está disponible en los MSX de 8K?
|
|
|
En línea
|
|
|
|
|