Post by ramon on Oct 26, 2020 22:56:34 GMT
Hola. Podremos incorporar más de una rutina de usuario en nuestros juegos para ejecutar música, efectos, etc. Este programa podría resultar útil para seleccionar y ejecutar distintas rutinas de usuario desde tu script preferido.
Por ejemplo, en tu jugador:
IF KEY FIRE
USER 1 ; selecciona rutina 48kuserFX.asm
USER 6 ; para ejecutar el efecto de disparo número 6.
ENDIF
Al mismo tiempo si tu jugador muere:
USER 2 ; selecciona la rutina 48kusermusic.asm
USER 1 ; selecciona la canción 1
USER 2 ; selecciona de nuevo la rutina 48kusermusic.asm
USER 32 ; comando que desactiva LOOP de la música.
Para eso usamos esta rutina como USER ROUTINE. (podemos llamarla UserRoutinesSelector.asm)
Por ejemplo, en tu jugador:
IF KEY FIRE
USER 1 ; selecciona rutina 48kuserFX.asm
USER 6 ; para ejecutar el efecto de disparo número 6.
ENDIF
Al mismo tiempo si tu jugador muere:
USER 2 ; selecciona la rutina 48kusermusic.asm
USER 1 ; selecciona la canción 1
USER 2 ; selecciona de nuevo la rutina 48kusermusic.asm
USER 32 ; comando que desactiva LOOP de la música.
Para eso usamos esta rutina como USER ROUTINE. (podemos llamarla UserRoutinesSelector.asm)
; -----------------------------------------------------------
; Entrada desde USER a, para el MPAGD. a > 0
; Ejemplo: selecciona el Fx 6:
; USER 1 ; selecciona RUTINA
; USER 6 ; asigna VALOR 6
; ------------------------------------------------------------
;Routines selector
ld (imput),a ; reserva registro
ld a,(rut)
and a ; alguna rutina?
jp z,selecciona ; no -> selecciona
exe
and a
jp z,rsel_exit ; rutina 0 -> exit
call rutina ; llama a su rutina correspondiente
rsel_exit
xor a
ld (rut),a ; reset selector
ret
selecciona
ld a,(imput) ; recupera registo como selector
ld (rut),a
ret
imput defb 0
rut defb 0
; sección lista de programas
rutina
ld a,(rut)
cp 1
jp z,userfxsnd
cp 2
jp z,usermusicsnd
; fin de la lista
ret
; seccion de programas
userfxsnd
ld a,(imput) ; recupera registo como valor
include "48kuserFX.asm"
usermusicsnd
ld a,(imput) ; recupera registo como valor
include "48kusermusic.asm"
Por cada programa que quieras agregar al selector tienes que escribir lo siguiente.
Vamos a suponer que el nuevo programa el el número 3 de la lista:
En la sección "lista de programas" inserta el siguiente código antes de "fin de la lista":
cp 3 ; 3 es número para seleccionar tu rutina.
jp z,myprogram
En la sección "programas" inserta a continuación:
myprogram
ld a,(imput)
include "myprogram.asm"
Tenemos que incluir el archivo myprogra.asm en la carpeta "SjasmPlus" dentro del "Suite ZX" del paquete MPAGD.
En este lugar debes incluir tus programas.asm que vayas incorporando a la rutina de selección.
CCP:-"fin de impresión"