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