Karoshi MSX Community
05 de Julio de 2021, 04:30:16 pm *
Bienvenido(a), Visitante. Por favor, ingresa o regístrate.

Ingresar con nombre de usuario, contraseña y duración de la sesión
Noticias:
 
   Inicio   Ayuda Buscar Ingresar Registrarse  
Páginas: 1 2 3 [4] 5
  Imprimir  
Autor Tema: Optimizando los listadillos basic  (Leído 28553 veces)
0 Usuarios y 1 Visitante están viendo este tema.
jltursan
Karoshi Forum's Guru
*******
Mensajes: 1516


¿Que es lo que has aprendido hoy?


WWW Email
« Respuesta #45 : 04 de Febrero de 2006, 12:27:26 pm »

Citar
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 :

Código:
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
Karoshi Hero
*****
Mensajes: 626


« Respuesta #46 : 04 de Febrero de 2006, 12:36:36 pm »

Citar
¿Ya te ha funcionado?; como debería hacerlo, por si las moscas puedes probar esto :

Código:
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.  Grin
En línea
jltursan
Karoshi Forum's Guru
*******
Mensajes: 1516


¿Que es lo que has aprendido hoy?


WWW Email
« 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  Tongue Tongue Tongue
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 ","  Shocked Shocked. ¡Dos disgustos en uno!
Curioso el asunto este del puntero a la VRAM...
En línea

Doom dee doom dee doom
Darth_Fistro
Karoshi Hero
*****
Mensajes: 507


Email
« 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  Tongue Tongue Tongue
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 ","  Shocked Shocked. ¡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!  Grin

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  Tongue
En línea

MSX FOREVER (hasta que saquen un ZX81 con TMS, PSG y 64K de RAM)
Imanok
Karoshi Hero
*****
Mensajes: 626


« 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... Cheesy
En línea
jltursan
Karoshi Forum's Guru
*******
Mensajes: 1516


¿Que es lo que has aprendido hoy?


WWW Email
« 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 Tongue
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... Cry
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... Cry

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
Karoshi Forum's Guru
*******
Mensajes: 1516


¿Que es lo que has aprendido hoy?


WWW Email
« 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 Grin); 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) Wink
En línea

Doom dee doom dee doom
Imanok
Karoshi Hero
*****
Mensajes: 626


« Respuesta #54 : 28 de Febrero de 2006, 08:35:04 am »

Pues nada... resignación...  Sad

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
Karoshi Forum's Guru
*******
Mensajes: 1516


¿Que es lo que has aprendido hoy?


WWW Email
« 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
Karoshi Hero
*****
Mensajes: 626


« Respuesta #56 : 28 de Febrero de 2006, 02:39:06 pm »

Ok, Mackey!
En línea
Imanok
Karoshi Hero
*****
Mensajes: 626


« Respuesta #57 : 10 de Marzo de 2006, 09:57:31 am »

Porculeando de nuevo...  Wink

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
Karoshi Forum's Guru
*******
Mensajes: 1516


¿Que es lo que has aprendido hoy?


WWW Email
« 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 Tongue
  • 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
Karoshi Hero
*****
Mensajes: 626


« 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
Páginas: 1 2 3 [4] 5
  Imprimir  
 
Ir a:  

Impulsado por MySQL Impulsado por PHP Powered by SMF 1.1.21 | SMF © 2013, Simple Machines XHTML 1.0 válido! CSS válido!