Karoshi MSX Community
05 de Julio de 2021, 03:35:52 pm *
Bienvenido(a), Visitante. Por favor, ingresa o regístrate.

Ingresar con nombre de usuario, contraseña y duración de la sesión
Noticias:
 
   Inicio   Ayuda Buscar Ingresar Registrarse  
Páginas: 1 [2]
  Imprimir  
Autor Tema: Comportamiento gráfico en Screen 2  (Leído 7298 veces)
0 Usuarios y 1 Visitante están viendo este tema.
zilogZ80a
Karoshi Lover
***
Mensajes: 115



WWW Email
« Respuesta #15 : 31 de Enero de 2013, 03:49:27 pm »

Gracias por la explicación!

Pero me refería a si Konami usaba la llamada a la BIOS FILVRM para pasar datos masivamente a VRAM o los out con el consiguiente problema que parece haber de los NOP para no saturar el VDP. Quizás es que no lo tengo muy claro porque hasta ahora "voy con mi FILVRM a todas partes"

Ya que pides algo mas concreto te pongo las rutinas que usaba Konami para hacer un FILVRM, junto a LDIRVM y LDIRMV. mas la rutina de copiar datos de VRAM a VRAM y con todo este codigo creo que tu pregunta quedará resuelta.

Código:
;----------------------------------------------------
; Rellena la VRAM
; DE = Direccion VRAM
; A = Dato
; BC = Numero de bytes
;----------------------------------------------------

setFillVRAM: ; ...
call SetVDPWrite

fillVRAM: ; ...
ex af, af'

VRAM_write2: ; ...
ex af, af'
exx
out [c], a
exx
ex af, af'
dec bc
ld a, b
or c
jr nz, VRAM_write2
ei
ret
; ---------------------------------------------------------------------------

fillVRAM_HL: ; ...
ld a, [hl]
inc hl
jr fillVRAM
; ---------------------------------------------------------------------------
;----------------------------------------------------
;
; Transfiere datos desde la RAM a la VRAM
; HL = Origen
; DE = Direccion de destino en la VRAM
; BC = Numero de datos
;
;----------------------------------------------------

HLtoVRAMset: ; ...
di
call SetVDPWrite
;----------------------------------------------------
;
; Transfiere datos desde la RAM a la VRAM
; HL = Origen
; BC = Numero de datos
;
;----------------------------------------------------

HLtoVRAM: ; ...
ld a, [hl]
exx
out [c], a
exx
inc hl
dec bc
ld a, b
or c
jr nz, HLtoVRAM
ei
ret
; ---------------------------------------------------------------------------
;---------------------------------
; Copia VRAM a VRAM
; In:
;   HL = Origen
;   DE = Destino
;   BC = Numero de bytes a copiar
;---------------------------------

CopyVRAM: ; ...
call ReadVRAM
ex de, hl
call WriteVRAM
ex de, hl
inc hl
inc de
dec bc
ld a, c
or b
jr nz, CopyVRAM
ret
; ---------------------------------------------------------------------------
« Última modificación: 31 de Enero de 2013, 03:54:41 pm por zilogZ80a » En línea
pentacour
Karoshi Lover
***
Mensajes: 177


mgalious@hotmail.com
WWW Email
« Respuesta #16 : 04 de Febrero de 2013, 03:49:42 pm »

Gracias! Aunque de momento no necesito más velocidad que la que me da la BIOS, me estudiaré este código para un futuro.
En línea
Páginas: 1 [2]
  Imprimir  
 
Ir a:  

Impulsado por MySQL Impulsado por PHP Powered by SMF 1.1.21 | SMF © 2013, Simple Machines XHTML 1.0 válido! CSS válido!