Skip to content

Commit

Permalink
Initial Release
Browse files Browse the repository at this point in the history
Initial Release
  • Loading branch information
knightfox75 committed Jun 20, 2018
1 parent eaab4c7 commit 4814520
Show file tree
Hide file tree
Showing 37 changed files with 4,763 additions and 0 deletions.
35 changes: 35 additions & 0 deletions lib_source/data/text.asm
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:
50 changes: 50 additions & 0 deletions lib_source/ngn/ngn.asm
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:
245 changes: 245 additions & 0 deletions lib_source/ngn/ngn_background.asm
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:
60 changes: 60 additions & 0 deletions lib_source/ngn/ngn_consts.asm
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:
Loading

0 comments on commit 4814520

Please sign in to comment.