You could change your original code to something like this:
Quote
draw_panel:
lda panel_data_length
sta r11
ldx #0
@loop:
cpx r11
beq @end
lda panel_data_x, x
asl
sta VERA_ADDR_L
lda panel_data_y, x
sta VERA_ADDR_M
lda panel_data_char,x
sta VERA_DATA0
lda panel_data_col, x
sta VERA_DATA0
inx
jmp @loop
@end
bra @end
panel_data_length:
!byte $0C
panel_data_x:
!byte $03,$04,$06,$07,$05,$02,$08,$03,$07,$04,$06,$05
panel_data_y:
!byte $01,$01,$01,$01,$02,$02,$02,$03,$03,$04,$04,$05
panel_data_char:
!byte $53,$53,$53,$53,$53,$53,$53,$53,$53,$53,$53,$53
panel_data_col:
!byte $04,$04,$04,$04,$02,$02,$02,$01,$01,$08,$08,$0A
This way you only increment X once each iteration and you can avoid using Y.
Looking forward to seeing what you make of it.
Happy Coding ?