Utopian, no te miento, lo estoy haciendo a pelo. Es que uno está peeeeeeeeerro estos días, y bastante tengo con mis cosas como para calentarme la cabeza con estos berenjenales.
Mira a ver que puede hacer en un hueco y así pasamos todos los juego mojónicos a disco.
Subacuatic Reloaded (Mojon Twins, Spectrum)
- radastan
- 32 bits
- Mensajes: 389
- Registrado: 09 Feb 2006 14:07
- Ubicación: Jaén ni pollas
- Contactar:
- utopian
- 128 bits
- Mensajes: 1692
- Registrado: 15 Sep 2005 07:24
- Ubicación: Leganés, Madrid, Spain
Re: Subacuatic Reloaded (Mojon Twins, Spectrum)
Venga, me pondré a ello, a ver si esta semana saco algo.
- na_th_an
- 256 bits
- Mensajes: 11874
- Registrado: 22 Abr 2005 13:25
- Contactar:
Re: Subacuatic Reloaded (Mojon Twins, Spectrum)
Todos nuestros juegos de 128K usan las mismas rutinas para ubicar los trozos. Es un código que hizo Benway hace tiempo, y es muy sencillo. Lo pongo por si resulta de ayuda:
Lo que se hace es cargar el bloque que se quiere transferir en 32768, y luego se pokea en 25000 la página adónde lo queremos copiar y se llama a la rutina con un RANDOMIZE USR 25002. La rutina pagina la página seleccionada y copia 16K con un LDIR de 32768 a 49152 (la posición del mapa de memoria donde se pagina), para luego volver a colocar la página 0 y salir.
Código: Seleccionar todo
; Reubicador by Benway
org 25000
memoria_a_cambiar defb 0
org 25002
ld a, (memoria_a_cambiar)
ld b, a
ld A, (#5B5C) ; en 5B5C está la página de memoria actual
and #F8
or b
ld (#5B5C), A ; hay que preservarla, o el BASIC se vuelve loco
ld BC, #7FFD
out (C), A
ld hl, 32768
ld de, 49152
ld bc, 16384
ldir ; copiamos 16k desde 32768 hasta 49152 (en la página correcta)
; aqui vuelves a la 0
ld A, (#5B5C)
and #F8
ld (#5B5C), A
ld BC, #7FFD
out (C), A
ret