Una curiosidad: Konami por ejemplo, ¿usaba llamadas a la BIOS para el volcado a pantalla o los OTIR? Seguro que algún máquina de aquí ha destripado el código de algún juego y lo sabe.
Vamos a reponderte y ademas te pongo el codigo de la rutinas de KONAMI comentaditas.
Lo primero que debes de saber es que Konami no usaba las direcciones base de la VRAM y las modificaba de la siguiente manera. Aunque esto no tiene la mayor importancia pero para que lo sepas.
;----------------------------------------------------
;
; Modo de video:
;
; Screen 2
; Sprites 16x16 unzoomed
; Pattern name table = #3800-#3AFF
; Pattern color table = #0000-#17FF
; Pattern generator table = #2000-#37FF
; Sprite atribute table = #3b00-#3B7F
; Sprite generator table = #1800-#1FFF
; Background color = #E1 (Gris/Negro)
;----------------------------------------------------Konami se ceñia completamente al standar como puedes ver en las siguientes rutinas que te pongo a continuacion.
Konami lee los valores de los puertos de acceso a usar en el VDP de las direcciones 0006h y 0007h ya que no todos los MSX emplean los mismos, aunque si casi todos. Ademas tambien hacia esto con la RAM usando 8Kb cuando creo que solo hay 2 modelos muy antiguos con esa RAM tan minima.
;---------------------
; In:
; A = Dato
; DE = VRAM address
;---------------------
WriteVRAM: ; ...
call SetVDPWrite
exx
out (c), a
exx
ei
ret
; ---------------------------------------------------------------------------
;---------------------
; In:
; DE = VRAM address
; Out:
; A = Dato
;---------------------
ReadVRAM: ; ...
call SetVDPRead
exx
in a, (c)
exx
ei
ret
; ---------------------------------------------------------------------------
;----------------------------------------------------
; Prepara el VDP para escritura
; In:
; DE = VRAM address
;----------------------------------------------------
SetVDPWrite: ; ...
ex af, af'
ex de, hl
call SETWRT ; BIOS SETWRT=0053H - Set up VDP for write
di
ex de, hl
exx
ld a, [0006h] ; 0006h - One byte, VDP Data Port number
ld c, a
exx
ex af, af'
ret
; ---------------------------------------------------------------------------
;----------------------------------------------------
; Prepara el VDP para lectura
; In:
; DE = VRAM address
;----------------------------------------------------
SetVDPRead: ; ...
ex de, hl
call SETRD ; BIOS SETRD=0050H - Set up VDP for read
di
ex de, hl
exx
ld a, [0007h] ; 0007h - One byte, VDP Data Port number
ld c, a
exx
ret
; ---------------------------------------------------------------------------
Como puedes ver Konami usa llamadas a la BIOS del MSX como SETRD y SETWRT.
Te adjunto rutina de una de sus cortinillas. y con esto espero haberto contestado.
;----------------------------------------------------
; Cortinilla vertical
; Borra la pantalla partiendo del centro en ambas direcciones
;----------------------------------------------------
DrawCortinilla: ; ...
ld hl, Timer
dec (hl)
inc hl
ld b, 18h ; Numero de patrones a escribir verticales
dec (hl)
ret m
ld a, (hl)
srl a
jr c, DrawCortinilla2
xor 1Fh
DrawCortinilla2: ; ...
ld e, a
ld d, 38h ; #3800 es el area de la tabla de nombres
DrawCortinilla3: ; ...
xor a
call WriteVRAM
ld a, 20h ; Siguiente columna
call ADD_A_DE
djnz DrawCortinilla3
ld de, 3B00h
ld a, 0D0h
call WriteVRAM
xor a
ret
; ---------------------------------------------------------------------------
Aqui me tienes y en mi correo para lo que quieras.