Hola a tod@s,

Ya teneis disponible para descargar y ver la 5ª entrega del tutorial de iniciación a la programación en lenguaje ensamblador para msx.

Lo teneis disponible en la seccion de TUTORIALES

Espero ver vuestros comentarios imagenes o dudas.

Un saludo.

6 comentarios

  1. ¡Hola!

    Felicidades por tu gran tutorial ¡realmente útil para principiantes como yo! Una pregunta, ¿como se realiza una rutina optimizada tipo for-next en ensamblador? Estoy haciendo pruebas para copiar cada caracter de la CHRTBL a la NAMTBL, para generar el mapeado de una pantalla completa, pero si utilizar el sistema de compresión Pletter. Símplemente para practicar, luego ya usaré el compresor. ¿Puedes ayudarme?

    • Hola Oscar,

      Creo que no entiendo bien tu pregunta o algo esta confundido por tu parte.
      No puedes copiar de la CHRTBL a la NAMTBL porque son incompatibles, te explico en la CHRTBL cada CHR tiene 8 Bytes, mientras que en la NAMTBL cada CHR que pones solo ocupa 1 byte, no puedes copiar de una a otra porque lo unico que harias es llavar un byte de CHR a la NAMTBL.

      Repasa bien el tutorial 3. o pregunta de nuevo si no la has formulado bien.

      Un saludo.

  2. Hola Pepe,

    Si no he entendido mal la CHRTBL tiene la definición de todos los caracteres (8 bytes por cada uno – 8×8 – 6144 bytes). Igual que la CLRTBL que tiene un byte por linea (cada nibble define fondo/tinta para cada linea, supongo). Y luego la NAMTBL contiene la información de que carácter (de CHRTBL) debe ir en cada “casilla”, así que salen 255 x 3 bancos = 768 bytes / caracteres.
    Lo que quiero hacer es leer de una tabla (una pantalla estática del juego, el mapa) e ir colocando la información de ésta en la NAMTBL, es decir, colocar cada caracter en su posición (caracteres que ya he definido en la CHRTBL y CLRTBL). ¿Cómo puedo hacerlo sin usar compresión y sin llamar a la rutina de Pletter?
    Perdona si no me expreso bien, no se si se entiende más ahora 🙂

    ¡Gracias por las respuestas!

  3. La tabla que quiero colocar en la NAMTBL es para las 768 posiciones/caracteres.

  4. Perdona de nuevo, esta rutina me copia solo los datos al primer banco de la NAMTBL pero yo le indico que son los 768 tiles, es decir, solo veo la parte de arriba de mi mapa ¿Cómo hay que hacerlo?

    ld hl,MAP ; datos del mapa – 768 posiciones
    ld de,NAMTBL; origen tabla de nombres
    ld bc,768; para copiar hasta la posición 768 (supuestamente)
    call LDIRVM; llamada a la rutina para copiar el bloque

  5. Hola Oscar,

    Veamos ahora que esta mas clara la cosa

    ld hl,MAP ; origen
    ld hl,NAMTBL ; destino
    ld bc,768 ; numero de bytes a copiar
    call LDIRVM ; llevar datos de ROM a VRAM

    Si solo estas viendo el primer tercio, es porque solo has colocado CHR en el PRIMER TERCIO o banco.

    ld hl,MISTILES ; origen donde tiene los CHRs de tus graficos
    ld de,CHRTBL ; destino 1º tercio en VRAM
    ld bc,2048 ; numero de bytes 256 CHRs x8
    call LDIRVM

    ld hl,MISTILES ; origen donde tiene los CHRs de tus graficos
    ld de,CHRTBL+2048 ; destino 2º tercio en VRAM
    ld bc,2048 ; numero de bytes 256 CHRs x8
    call LDIRVM

    ld hl,MISTILES ; origen donde tiene los CHRs de tus graficos
    ld de,CHRTBL+4096 ; destino 2º tercio en VRAM
    ld bc,2048 ; numero de bytes 256 CHRs x8
    call LDIRVM

    de esta manera tiene que funcionarte

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *