HispaMSX

Escritura en VRAM

2000-05-17 23:31:10

    Hola!

Bueno. Dejando el tema de lado, alguien me podria pasar una
rutinita simple para acceder a la vram en ensamblador?
Por ejemplo, para escribir caracteres en screen 1.


    DI
    LD    DE,$1800    ; Dir. de la VRAM (SOLO de 0 a $3FFF, 16Kb)
    LD    A,E
    OUT   ($99),A     ; Indicamos al VDP el byte bajo de la VRAM
    LD    A,D
    OR    $40         ; Ponemos el bit 6 a '1' para indicar al VDP
                      ; que vamos a escribir en la VRAM (Obligatorio)
    OUT   ($99),A     ; Indicamos al VDP el byte alto la la VRAM

    LD    HL,Texto    ; Dir de la RAM con el texto a enviar a la VRAM.
Bucle:
    LD    A,(HL)
    OR    A
    RET   Z           ; Si es '0' sabemos que es el final del texto.

    OUT   ($98),A     ; Copiamos un dato en la VRAM.

    INC   HL
    JR    Bucle

Texto:
    DB    "COMPRA MATRA! ^.^",0


    Esta rutina escribirá en la parte de arriba-izquierda de la pantalla un
texto, OBLIGATORIAMENTE se ha de ejecutar desde SCREEN 1 mediante un DEF
USR...


    Estos son los bits altos del SEGUNDO byte enviado al puerto $99:

    00xx xxxx: Leer de la VRAM.
    01xx xxxx: Escribir en la VRAM.  (este es el OR $40 que hago)
    1xxx xxxx: Escribir en Registro del VDP


    Saludos!

    Darth-007!






<Anterior en la conversación] Conversación actual [Siguiente en la conversación>