Piccolojunior escribió: ↑16 Feb 2023, 18:01
Buenas tardes, han pasado unos cuantos años del tema en cuestión pero nunca es tarde para aprender, al lío.
Resulta que estoy haciendo un juego en basic para Spectrum (espinita clavada de mi juventud) y para ahorrar unos UGD de la pantalla del juego que son fijos quería ubicar la pantalla en el último bloque de memoria disponible (65535 - 6912), parece que lo consigo, pero debo fallar con los poke, porque cuando llamo a la pantalla con randomize usr se me machaca de la parte de abajo.
El juego por ahora ocupa 31k y todavía no está acabado, por eso quiero ubicar la pantalla en el último bloque de memoria disponible, hay alguien que me pueda ayudar. HELP!
Siempre, cuando vayas a meter datos en memoria, hay que usar la orden CLEAR. Si pones CLEAR 65535-6912, por ejemplo, "bloqueará" todo ese espacio de forma que no puedas entrar ahí con el BASIC. Pero, además, también hace más cosas, como mover la buffer más abajo. La ROM del ordenador es un programa, como cualquier otro y necesita usar datos de RAM. Por un lado, justo detrás de la memoria de video, están las variables del sistema, que son valores de "configuración" para la ROM, y por otro, está la "pila de programa", justo antes del punto marcado por el CLEAR (o justo antes de los UDG si no pones nada en tu programa).
No entiendo que quieres decir con "se me machaca de la parte de abajo", una foto iría bien. Si se "corrompe", es por eso, porque estás metiendo cosas sin bloquear (lo raro es que no se bloquee el spectrum). Te iría bien mirarte el mapa de memoria del spectrum en el manual antes de ponerte a grabar cosas por ahí. Como te digo no todo está disponible, y hay que ir con un poco de cuidado.
Por otro lado, con el tema de los UDG "que son fijos"... mi consejo, es que o bien guardes sólo la parte que te interese y no toda la pantalla completa (es un disparate guardar casi 7k de RAM para una pantalla de marcadores, por ejemplo, a no ser que sea muy barroca), o la mejor opción de todas: usa el juego de caracteres como UDG. Así, tendrías un buen montón de UDG y no los 19/21 que hay habitualmente.
Puedes tener más de un juego de caracteres, y poner todo en una especie de "sprites low cost", incluido marcadores, etc.
Como siempre, mejor que mi explicación, que no te habrá ayudado mucho, te remito a nuestra querida MicroHobby: