Karoshi MSX Community
05 de Julio de 2021, 12:56:59 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]
  Imprimir  
Autor Tema: problema en asmsx  (Leído 2736 veces)
0 Usuarios y 1 Visitante están viendo este tema.
jrcp_kun
Karoshi Newbie
*
Mensajes: 34


Email
« : 08 de Febrero de 2015, 05:01:06 pm »

quiero hacer una pruebas y he creado 2 pantallas completas en sc5

si una la hago
p1:
.incbin   "pantalla1"

si la p2 la hago igual me da error

como tengo que hacer para cargar esa imagen?? la quiero meter en vram pagina 1  asi que seria:

ld hl,p2
ld de,8000h
ld bc,69ffh
call LDIRVM

pero al compilar me lanza error de que no puede meter en page3 los datos.

hay que poner algo diferente o como va??

En línea
j4mk3
Karoshi Maniac
****
Mensajes: 376


MSx Powa!


WWW Email
« Respuesta #1 : 11 de Febrero de 2015, 11:00:18 am »

Empiezas a manejar una cantidad de datos bastante grande. Yo diría así de memoria que ya te pasas de los 16Ks por página de Memoria para cargar más de 1 pantalla de SC5.
Vas a tener que empezar a trabajar con subpaginas y megaROM
Mírate el PDF manual que acompaña al asMSX. Es bastante claro.

El juego está en el uso de 2 directivas que ya el asMSX te da.
SELECT n AT Dirección
y
SUBPAGE n AT Dirección

La primera te cambia una página la dirección que digas.
y la segunda prepara el asMSX para decirle que esos datos van a partir de esa dirección.

Ojito con todo esto ! que si cambias de página mientras tienes código en ejecución en ella... cuelgue fijo!. Smiley

Te pongo un pequeño ejemplo que carga "basura" en subpáginas en diferentes páginas de memoria. Es un programa simple que va leyendo de la subpágina 3 a la subpágina 8, un byte y lo mete en el registro C para verlo por el debugger del blueMSX y ver que efectivamente funciona. Verás que tiene un .break nada más empezar para que se pare ahí la ejecución.
Código:
.bios
.megarom        KonamiSCC
.start          JUEGO
.db             "Mi juego se llama algo"

DATO equ 0A000h

JUEGO:
.search
.break
ld B,3
@@LOOP:
ld A,B
SELECT A AT 0A000h
ld A,[DATO]
ld C,A
ld A,B
inc A
and 111b
cp 3
jp nc,@@CONT
ld A,3
@@CONT:
ld B,A
jp @@LOOP

SUBPAGE 1 AT 06000h
db 0
SUBPAGE 2 AT 08000h
db 0
SUBPAGE 3 AT 0A000h
db 0,0,0,0
SUBPAGE 4 AT 0A000h
db 1,1,1,1
SUBPAGE 5 AT 0A000h
db 2,2,2,2
SUBPAGE 6 AT 0A000h
db 3,3,3,3
SUBPAGE 7 AT 0A000h
db 4,4,4,4
SUBPAGE 8 AT 0A000h
db 5,5,5,5
SUBPAGE 63 AT 0A000h
db 60,60,60,60
Fíjate en el SUBPAGE 63. Este es el MÁXIMO que te permite crear el asMSX. En el manual ponía que podía poner SUBPAGE 64. Pues no, creo que es una errata.
Si compilas este código debería crearte una ROM de 512Ks.
En línea

---  G Fan  ---  Galious & Gradius  & G Boys   ---
--- Play HANS' ADVENTURE, STAN, THE DREAMER & BITLOGIC ---
jrcp_kun
Karoshi Newbie
*
Mensajes: 34


Email
« Respuesta #2 : 12 de Febrero de 2015, 11:13:00 am »

lo pruebo pues solo estoy haciendo pruebas y aprendiendo

gracias
En línea
Páginas: [1]
  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!