LD BC,0032h ;Tamany del bloc
LD DE,CHRTBL ; Inici adreça VRAM
LD HL,BANK_PATTERN_0 ; Inici adreça memoria
CALL LDIRVM
El código que utilizas parece correcto. Lo único curioso que veo es la cantidad de datos que vas a pasar a la VRAM 0032h, que son unos 50bytes, una cantidad extraña
vendrían a ser unos 6 carácteres y 2 bytes sobrantes. De todas maneras no me hagas caso porque esto no tiene nada que ver con el error que te da.
Supongo que en alguna parte del mismo fichero tendrás algo así (la definición de la etiqueta BANK_PATTERN_0 y los datos db's):
...
BANK_PATTERN_0:
db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$3F,$20,$20,$20,$3F,$00,$00,$00,$FB,$02,$02,$02,$FB,$00,$00,$00,$FF,$00,$00,$00,$FF,$00
db $00,$00,$BF,$A0,$BF,$80,$BF,$00,$00,$00,$FB,$02,$FA,$0A,$FA,$00,$00,$00,$FF,$10,$10,$10,$10,$00,$00,$00,$BF,$A0,$A0,$A0,$BF,$00
...
Siendo así debería funcionar. Los datos los incluyes con .include "..."??, quizá haya algún problema con esto, prueba a poner los datos directamente para probar.
El error parece ser que no acaba de reconocer la etiqueta BANK_PATTERN_0.
Asegurate de que las líneas de datos DB no sean demasiado largas. Yo también he creado una aplicación que a partir de imagenes genera los datos DBs,
y al crear líneas de datos muy largas el asMSX me petaba al compilar y daba errores.
En resumen, creo que lo que haces es correcto, más abajo te pongo un ejemplo de código que uso y es clavado a lo que haces ... y a mi me funciona:
...
; banco 1
ld hl, TILE01_PATTERN
ld de, CHRTBL
ld bc, 1024
call LDIRVM
; banco 2
ld hl, TILE01_PATTERN
ld de, (CHRTBL+2048)
ld bc, 1024
call LDIRVM
; banco 3
ld hl, TILE01_PATTERN
ld de, (CHRTBL+4096)
ld bc, 1024
call LDIRVM
...
...
TILE01_PATTERN:
db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$3F,$20,$20,$20,$3F,$00,$00,$00,$FB,$02,$02,$02,$FB,$00,$00,$00,$FF,$00,$00,$00,$FF,$00
db $00,$00,$BF,$A0,$BF,$80,$BF,$00,$00,$00,$FB,$02,$FA,$0A,$FA,$00,$00,$00,$FF,$10,$10,$10,$10,$00,$00,$00,$BF,$A0,$A0,$A0,$BF,$00
...
...
Saludos,