Subacuatic Reloaded (Mojon Twins, Spectrum)

El espacio para hablar de las nuevas producciones para los viejos ordenadores || The space to talk about old computer's new productions

Moderadores: Neville, CEZ

Responder
Avatar de Usuario
radastan
32 bits
32 bits
Mensajes: 389
Registrado: 09 Feb 2006 14:07
Ubicación: Jaén ni pollas
Contactar:

Re: Subacuatic Reloaded (Mojon Twins, Spectrum)

Mensaje por radastan »

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.
Avatar de Usuario
utopian
128 bits
128 bits
Mensajes: 1692
Registrado: 15 Sep 2005 07:24
Ubicación: Leganés, Madrid, Spain

Re: Subacuatic Reloaded (Mojon Twins, Spectrum)

Mensaje por utopian »

Venga, me pondré a ello, a ver si esta semana saco algo.
Avatar de Usuario
na_th_an
256 bits
256 bits
Mensajes: 11874
Registrado: 22 Abr 2005 13:25
Contactar:

Re: Subacuatic Reloaded (Mojon Twins, Spectrum)

Mensaje por na_th_an »

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:

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
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.
Responder