Duda con PASMO. Datos antes de ORG.
Moderador: Sir Cilve Sinclair
- JBGV
- Manic Miner
- Mensajes: 279
- Registrado: Vie Feb 11, 2011 9:16 am
Duda con PASMO. Datos antes de ORG.
Hola a todos !
Tengo una duda con PASMO, a ver si me podéis ayudar.
¿Hay alguna forma en PASMO para incluir datos en una dirección de memoria determinada?
Quiero poner algunos datos gráficos con DEFB exactamente en la dirección 28000.
Normalmente, si puedo, intento no usar la memoria contenida (cuando me sobra memoria), así que inicio los jueguillos con un “ORG 32768” y finalizo con un “END 32768”. La cuestión es que me gustaría tener ciertos datos en la dirección 28000, pero a ser posible sin modificar el ORG del programa y sin cargar varios bloques de forma separada. (Manías... )
Muchas gracias ¡!
Tengo una duda con PASMO, a ver si me podéis ayudar.
¿Hay alguna forma en PASMO para incluir datos en una dirección de memoria determinada?
Quiero poner algunos datos gráficos con DEFB exactamente en la dirección 28000.
Normalmente, si puedo, intento no usar la memoria contenida (cuando me sobra memoria), así que inicio los jueguillos con un “ORG 32768” y finalizo con un “END 32768”. La cuestión es que me gustaría tener ciertos datos en la dirección 28000, pero a ser posible sin modificar el ORG del programa y sin cargar varios bloques de forma separada. (Manías... )
Muchas gracias ¡!
- Kyp
- Sabreman
- Mensajes: 444
- Registrado: Lun Dic 16, 2013 6:16 pm
Re: Duda con PASMO. Datos antes de ORG.
Con el Pasmo no se si será así, pero con el ensamblador del zxspin, si haces:
org 28000
; datos
org 32768
; programa
en el mismo archivo, te genera un solo binario con todo junto y rellena los huecos con nops.
La pega es que al cargar tienes que empezar en 28000 aunque el punto de entrada siga siendo 32768:
load "" code 28000
randomize usr 32768
org 28000
; datos
org 32768
; programa
en el mismo archivo, te genera un solo binario con todo junto y rellena los huecos con nops.
La pega es que al cargar tienes que empezar en 28000 aunque el punto de entrada siga siendo 32768:
load "" code 28000
randomize usr 32768
- JBGV
- Manic Miner
- Mensajes: 279
- Registrado: Vie Feb 11, 2011 9:16 am
Re: Duda con PASMO. Datos antes de ORG.
Pues voy a probar eso mismo con PASMO.
Muchas gracias !
Muchas gracias !
-
- Nonamed
- Mensajes: 1067
- Registrado: Lun May 07, 2007 10:06 pm
Re: Duda con PASMO. Datos antes de ORG.
Tal cual, pueds utilizar tantos org como estimes oportuno en pasmo, para colocar datos y fragmentos de código donde quieras. De hecho lo normal es tener varios, porque hay ciertas partes de código que quieres tener en memoria no contenida o ubicarla en zonas de memoria específicas
Un saludo,
Gandulf
Gandulf
- JBGV
- Manic Miner
- Mensajes: 279
- Registrado: Vie Feb 11, 2011 9:16 am
Re: Duda con PASMO. Datos antes de ORG.
Muchas gracias a ambos, funciona perfectamente. Exactamente lo que quería.
- climacus
- Sabreman
- Mensajes: 411
- Registrado: Mar Ago 25, 2009 1:46 pm
Re: Duda con PASMO. Datos antes de ORG.
PASMO es una maravilla. Yo todos mis juegos los he programado con él y ningún problema. Y eso que seguro que lo uso en menos de un 20 por ciento de sus posibilidades
Todos mis juegos en formato físico
http://www.matranet.net/boutique/zx/zx.php
http://www.matranet.net/boutique/zx/zx.php
- mcleod_ideafix
- Johnny Jones
- Mensajes: 3985
- Registrado: Vie Sep 21, 2007 1:26 am
- Ubicación: Jerez de la Frontera
- Contactar:
Re: Duda con PASMO. Datos antes de ORG.
Sí que lo es, pero le echo en falta dos cosas que me han hecho falta en alguna ocasión, y que han sido la causa de que me pasara a SJAsmPlus en algunas ocasiones:
- Poder definir areas de memoria para el 128K: En SJAsmPlus puedo definir un área de memoria no sólo en la posición que quiera, sino también en el banco que quiera. Esto puedo hacerlo porque lo que genera SJAsmPlus es un fichero SNA, no un TAP
- Estructuras: esto es muy útil cuando quieres implementar, por ejemplo, un gestor de sprites, en donde el sprite que manejas en ese momento lo tienes apuntado por IX y usas cosas como ld a,(ix+Sprite.CoordenadaX). Vale que también se puede hacer con unos cuantos EQU y haciendo ld a,(ix+CoordenadaX) pero la ventaja que tienen los structs es que puedes cambiar, añadir o quitar campos sin necesidad de recalcular los offsets cada vez.
Luego hay cosas que creo que pueden hacerse con macros en PASMO, pero que SJAsmPlus facilita mucho, como el poder alinear bloques de memoria a multiplo de 32, 256, etc
- Poder definir areas de memoria para el 128K: En SJAsmPlus puedo definir un área de memoria no sólo en la posición que quiera, sino también en el banco que quiera. Esto puedo hacerlo porque lo que genera SJAsmPlus es un fichero SNA, no un TAP
- Estructuras: esto es muy útil cuando quieres implementar, por ejemplo, un gestor de sprites, en donde el sprite que manejas en ese momento lo tienes apuntado por IX y usas cosas como ld a,(ix+Sprite.CoordenadaX). Vale que también se puede hacer con unos cuantos EQU y haciendo ld a,(ix+CoordenadaX) pero la ventaja que tienen los structs es que puedes cambiar, añadir o quitar campos sin necesidad de recalcular los offsets cada vez.
Luego hay cosas que creo que pueden hacerse con macros en PASMO, pero que SJAsmPlus facilita mucho, como el poder alinear bloques de memoria a multiplo de 32, 256, etc
Web: ZX Projects | Twitter: @zxprojects
¿Quién está conectado?
Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 17 invitados