A ver.... si te sirve esto.
Este codigo hace un barrido de la pantalla y lo rellena con un caracter en concreto a lo cortinilla a la derecha...admite el tamaño que tu quieras de ancho y alto , partiendo de una posicion inicial.
Pinta una columna en cada interrupcion.
El codio esta preparado para asMSX.
Es una funcion que hice hace un tiempo y esta chula para hacer limpieza de zonas asi con elegancia.
Si le quitas los HALT, ya tienes un rellenado sin barrido. Y si antes del LD [HL],A , preparas en A lo que quieras poner del array ese...pos ya lo tienes.
; Cortilla a la derecha
; Contiene HALTS !.
; A = Char de relleno
; DE = Pos. del Buffer Inicial
; B = Ancho
; C = Alto
; HL = Posicio Buffer pantalla
; Cal RAM : res
; Toca : HL,BC,DE
; Retorna : res
; Usa fun.: res
SLIDERI:
add HL,DE ; Inicio VBUFF
; Ancho Ya lo tengo en B
ld DE,32
@@LOOPY:
push BC
push HL
halt
; Alto Ya lo tengo en C
ld B,C
@@LOOPX:
ld [HL],A
add HL,DE
djnz @@LOOPX
pop HL
pop BC
inc HL
djnz @@LOOPY
ret