-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Showing
37 changed files
with
4,763 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,35 @@ | ||
;*********************************************************** | ||
; | ||
; NGN TEMPLATE para ASMSX | ||
; ASM Z80 MSX | ||
; | ||
; Textos del programa | ||
; | ||
; (cc)2018 Cesar Rincon "NightFox" | ||
; http://www.nightfoxandco.com | ||
; | ||
;*********************************************************** | ||
|
||
|
||
|
||
; ---------------------------------------------------------- | ||
; Funcion principal | ||
; ---------------------------------------------------------- | ||
|
||
; Texto de bienvenida | ||
TEXT_HELLO_WORLD: | ||
db "Hello World!", $0D, $0A | ||
db $00 | ||
|
||
; Texto de reinicio | ||
TEXT_RESTART: | ||
|
||
db "REBOOTING...", $0D, $0A | ||
db $00 | ||
|
||
|
||
|
||
;*********************************************************** | ||
; Fin del archivo | ||
;*********************************************************** | ||
TEXT_EOF: |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,50 @@ | ||
;*********************************************************** | ||
; | ||
; N'gine para MSX Asm Z80 | ||
; Version 0.0.1-a | ||
; | ||
; (cc)2018 Cesar Rincon "NightFox" | ||
; http://www.nightfoxandco.com | ||
; | ||
; Archivo principal de includes | ||
; | ||
;*********************************************************** | ||
|
||
|
||
|
||
; Descompresion de datos RLE | ||
.INCLUDE "ngn/ngn_rle.asm" | ||
|
||
; Funciones del sistema | ||
.INCLUDE "ngn/ngn_system.asm" | ||
|
||
; Funciones graficas | ||
.INCLUDE "ngn/ngn_screen.asm" | ||
|
||
; Funciones del PSG | ||
.INCLUDE "ngn/ngn_psg.asm" | ||
|
||
; Funciones del teclado | ||
.INCLUDE "ngn/ngn_keyboard.asm" | ||
|
||
; Creacion de fondos | ||
.INCLUDE "ngn/ngn_background.asm" | ||
|
||
; Creacion de sprites | ||
.INCLUDE "ngn/ngn_sprite.asm" | ||
|
||
; Funciones de texto | ||
.INCLUDE "ngn/ngn_text.asm" | ||
|
||
; Inicializacion de la libreria NGN | ||
.INCLUDE "ngn/ngn_start.asm" | ||
|
||
; Fin de los includes de la libreria | ||
ret | ||
|
||
|
||
|
||
;*********************************************************** | ||
; Fin del archivo | ||
;*********************************************************** | ||
NGN_EOF: |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,245 @@ | ||
;*********************************************************** | ||
; | ||
; N'gine para MSX Asm Z80 | ||
; Version 0.0.1-a | ||
; | ||
; (cc)2018 Cesar Rincon "NightFox" | ||
; http://www.nightfoxandco.com | ||
; | ||
; Rutinas de creacion de fondos (SCREEN 2) | ||
; | ||
;*********************************************************** | ||
|
||
|
||
|
||
; ---------------------------------------------------------- | ||
; NGN_BACKGROUND_CREATE | ||
; Carga una imagen y muestrala a la pantalla | ||
; HL = Direccion de la imagen (Origen de los datos) | ||
; Modifica A, BC, DE, HL | ||
; ---------------------------------------------------------- | ||
|
||
NGN_BACKGROUND_CREATE: | ||
|
||
; Guarda el puntero de los datos de la imagen | ||
push hl | ||
|
||
; Deshabilita la pantalla | ||
call $0041 ; Ejecuta la rutina [DISSCR] | ||
|
||
; Borra la tabla de nombres (mapa) usando FILVRM | ||
; ---------------------------------------------------------- | ||
; Address ... 0815H (from 0056H) | ||
; Name ...... FILVRM (Fill VRAM) | ||
; Input ..... A=Data byte, BC=Length, HL=VRAM address | ||
; Exit ...... None | ||
; Modifies .. AF, BC, EI | ||
; ---------------------------------------------------------- | ||
ld hl, NGN_NAMTBL ; Apunta a la tabla de nombres | ||
ld bc, $300 ; Longitud de 768 celdas | ||
xor a ; Pon A a 0 | ||
call $0056 ; Ejecuta la rutina [FILVRM] | ||
|
||
; Copia los datos a la VRAM | ||
; ---------------------------------------------------------- | ||
; Address ... 0744H (from 005CH) | ||
; Name ...... LDIRVM (Load, Increment and Repeat to VRAM from Memory) | ||
; Input ..... BC=Length, DE=VRAM address, HL=RAM address | ||
; Exit ...... None | ||
; Modifies .. AF, BC, DE, HL, EI | ||
; ---------------------------------------------------------- | ||
|
||
; Recupera el puntero a los datos de la imagen | ||
pop hl | ||
|
||
; Copia el banco 1 de patterns | ||
ld de, NGN_CHRTBL ; Destino de los datos | ||
call @@DATA_TO_VRAM | ||
|
||
; Copia el banco 2 de patterns | ||
ld de, NGN_CHRTBL + 2048 ; Destino de los datos | ||
call @@DATA_TO_VRAM | ||
|
||
; Copia el banco 3 de patterns | ||
ld de, NGN_CHRTBL + 4096 ; Destino de los datos | ||
call @@DATA_TO_VRAM | ||
|
||
; Copia el banco 1 de colors | ||
ld de, NGN_CLRTBL ; Destino de los datos | ||
call @@DATA_TO_VRAM | ||
|
||
; Copia el banco 2 de colors | ||
ld de, NGN_CLRTBL + 2048 ; Destino de los datos | ||
call @@DATA_TO_VRAM | ||
|
||
; Copia el banco 3 de colors | ||
ld de, NGN_CLRTBL + 4096 ; Destino de los datos | ||
call @@DATA_TO_VRAM | ||
|
||
; Copia el banco 1 de names | ||
ld de, NGN_NAMTBL ; Destino de los datos | ||
call @@DATA_TO_VRAM | ||
|
||
; Copia el banco 2 de names | ||
ld de, NGN_NAMTBL + 256 ; Destino de los datos | ||
call @@DATA_TO_VRAM | ||
|
||
; Copia el banco 3 de names | ||
ld de, NGN_NAMTBL + 512 ; Destino de los datos | ||
call @@DATA_TO_VRAM | ||
|
||
|
||
; Habilita la pantalla | ||
call $0044 ; Ejecuta la rutina [ENASCR] | ||
|
||
; Fin de la rutina de carga | ||
ret | ||
|
||
|
||
|
||
; Rutina de carga de datos en VRAM desde la ROM/RAM | ||
@@DATA_TO_VRAM: | ||
|
||
ld b, [hl] ; Carga el tamaño de los datos | ||
inc hl | ||
ld c, [hl] | ||
inc hl | ||
push hl ; Guarda el puntero a los datos de la imagen | ||
push bc | ||
|
||
call $005C ; Ejecuta la rutina [LDIRVM] | ||
|
||
pop bc ; Recupera los parametros de la ultima imagen | ||
pop hl | ||
add hl, bc ; Y actualiza el puntero | ||
|
||
ret ; Sal de la subrutina | ||
|
||
|
||
|
||
; ---------------------------------------------------------- | ||
; NGN_BACKGROUND_CREATE_RLE | ||
; Carga una imagen y muestrala a la pantalla | ||
; HL = Direccion de la imagen (Origen de los datos) | ||
; Modifica A, BC, DE, HL | ||
; ---------------------------------------------------------- | ||
|
||
NGN_BACKGROUND_CREATE_RLE: | ||
|
||
; Guarda el puntero de los datos de la imagen | ||
push hl | ||
|
||
; Deshabilita la pantalla | ||
call $0041 ; Ejecuta la rutina [DISSCR] | ||
|
||
; Borra la tabla de nombres (mapa) usando FILVRM | ||
; ---------------------------------------------------------- | ||
; Address ... 0815H (from 0056H) | ||
; Name ...... FILVRM (Fill VRAM) | ||
; Input ..... A=Data byte, BC=Length, HL=VRAM address | ||
; Exit ...... None | ||
; Modifies .. AF, BC, EI | ||
; ---------------------------------------------------------- | ||
ld hl, NGN_NAMTBL ; Apunta a la tabla de nombres | ||
ld bc, $300 ; Longitud de 768 celdas | ||
xor a ; Pon A a 0 | ||
call $0056 ; Ejecuta la rutina [FILVRM] | ||
|
||
; Copia los datos a la VRAM | ||
; ---------------------------------------------------------- | ||
; Address ... 0744H (from 005CH) | ||
; Name ...... LDIRVM (Load, Increment and Repeat to VRAM from Memory) | ||
; Input ..... BC=Length, DE=VRAM address, HL=RAM address | ||
; Exit ...... None | ||
; Modifies .. AF, BC, DE, HL, EI | ||
; ---------------------------------------------------------- | ||
|
||
|
||
; Recupera el puntero a los datos de la imagen | ||
pop hl | ||
|
||
; Copia el banco 1 de patterns | ||
ld de, NGN_CHRTBL ; Destino de los datos | ||
call @@DATA_TO_VRAM | ||
|
||
; Copia el banco 2 de patterns | ||
ld de, NGN_CHRTBL + 2048 ; Destino de los datos | ||
call @@DATA_TO_VRAM | ||
|
||
; Copia el banco 3 de patterns | ||
ld de, NGN_CHRTBL + 4096 ; Destino de los datos | ||
call @@DATA_TO_VRAM | ||
|
||
; Copia el banco 1 de colors | ||
ld de, NGN_CLRTBL ; Destino de los datos | ||
call @@DATA_TO_VRAM | ||
|
||
; Copia el banco 2 de colors | ||
ld de, NGN_CLRTBL + 2048 ; Destino de los datos | ||
call @@DATA_TO_VRAM | ||
|
||
; Copia el banco 3 de colors | ||
ld de, NGN_CLRTBL + 4096 ; Destino de los datos | ||
call @@DATA_TO_VRAM | ||
|
||
; Copia el banco 1 de names | ||
ld de, NGN_NAMTBL ; Destino de los datos | ||
call @@DATA_TO_VRAM | ||
|
||
; Copia el banco 2 de names | ||
ld de, NGN_NAMTBL + 256 ; Destino de los datos | ||
call @@DATA_TO_VRAM | ||
|
||
; Copia el banco 3 de names | ||
ld de, NGN_NAMTBL + 512 ; Destino de los datos | ||
call @@DATA_TO_VRAM | ||
|
||
; Habilita la pantalla | ||
call $0044 ; Ejecuta la rutina [ENASCR] | ||
|
||
; Fin de la rutina de carga | ||
ret | ||
|
||
|
||
|
||
; Rutina de carga de datos en VRAM desde el RAM_BUFFER del RLE | ||
@@DATA_TO_VRAM: | ||
|
||
push de ; Guarda la direccion de destino en VRAM | ||
|
||
ld de, NGN_RAM_BUFFER ; Destino de los datos RLE | ||
call NGN_RLE_DECOMPRESS ; Descomprime los datos | ||
|
||
ld hl, NGN_RLE_NORMAL_SIZE ; Recupera el tamaño de los datos descomprimidos | ||
ld b, [hl] | ||
inc hl | ||
ld c, [hl] | ||
|
||
ld hl, NGN_RAM_BUFFER ; Puntero a los datos | ||
pop de ; Destino de los datos | ||
call $005C ; Ejecuta la rutina [LDIRVM] | ||
|
||
ld hl, NGN_RLE_COMPRESSED_SIZE ; Recupera el tamaño de los datos comprimidos | ||
ld b, [hl] | ||
inc hl | ||
ld c, [hl] | ||
|
||
ld hl, NGN_RLE_POINTER ; Recupera el puntero | ||
ld d, [hl] | ||
inc hl | ||
ld e, [hl] | ||
ld h, d | ||
ld l, e | ||
|
||
add hl, bc ; Y sumale el tamaño de los datos comprimidos | ||
|
||
ret ; Sal de la subrutina | ||
|
||
|
||
|
||
;*********************************************************** | ||
; Fin del archivo | ||
;*********************************************************** | ||
NGN_BACKGROUND_EOF: |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,60 @@ | ||
;*********************************************************** | ||
; | ||
; N'gine para MSX Asm Z80 | ||
; Version 0.0.1-a | ||
; | ||
; (cc)2018 Cesar Rincon "NightFox" | ||
; http://www.nightfoxandco.com | ||
; | ||
; Definicion de constantes | ||
; | ||
;*********************************************************** | ||
|
||
|
||
|
||
; ---------------------------------------------------------- | ||
; Constantes del Sistema | ||
; ---------------------------------------------------------- | ||
|
||
; ---------------------------------------------------------- | ||
; Definiciones para la VRAM | ||
; ---------------------------------------------------------- | ||
; Registros | ||
NGN_VDPR0 .EQU $F3DF ; Valores del registro 0 del VDP | ||
NGN_VDPR1 .EQU $F3E0 ; Valores del registro 0 del VDP | ||
; Fondos | ||
NGN_CHRTBL .EQU $0000 ; Tabla de caracteres de los fondos (pattern) | ||
NGN_NAMTBL .EQU $1800 ; Tabla de nombres de los fondos (mapa) | ||
NGN_CLRTBL .EQU $2000 ; Tabla del color de los caracteres (paleta) | ||
; Sprites | ||
NGN_SPRATR .EQU $1B00 ; Tabla de los atributos de los sprites | ||
NGN_SPRTBL .EQU $3800 ; Tabla de caracteres de los Sprites (pattern) | ||
; Color | ||
NGN_COLOR_ADDR .EQU $F3E9 ; Direccion del Color | ||
|
||
|
||
|
||
; ---------------------------------------------------------- | ||
; Definiciones de los dispositivos HID | ||
; ---------------------------------------------------------- | ||
|
||
NGN_TOTAL_KEYS .EQU 89 ; Numero total de teclas | ||
NGN_TOTAL_JOYKEYS .EQU 12 ; Numero total de teclas del joystick | ||
|
||
NGN_KEY_STATE_HELD .EQU 1 ; Bit 0 a 1 [HELD] | ||
NGN_KEY_STATE_PRESS .EQU 2 ; Bit 1 a 1 [PRESS] | ||
NGN_KEY_STATE_UP .EQU 4 ; Bit 2 a 1 [UP] | ||
NGN_KEY_STATE_LAST .EQU 8 ; Bit 3 a 1 [LAST] (Estado en el frame anterior) | ||
|
||
|
||
|
||
; ---------------------------------------------------------- | ||
; Definiciones para el sistema de Sprites | ||
; ---------------------------------------------------------- | ||
|
||
|
||
|
||
;*********************************************************** | ||
; Fin del archivo | ||
;*********************************************************** | ||
NGN_CONSTS_EOF: |
Oops, something went wrong.