LookUp es una función que permite almacenar de forma consecutiva una colección de constantes, a las que se accede aplicando un índice a la función LookUp y esta devuelve en una variable de salida el valor de la constante a la que hace referencia el índice. Los valores constantes están referenciados de izquierda a derecha y el primero se nombra como 0.
Ejemplo:
Dim _nmr7seg As Byte
Dim indice As Byte
indice = 0
_nmr7seg = LookUp(0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x6f), indice
si indice vale 0, _nmr7seg valdrá 0x3f.
Y para no tener que repetir constantemente la línea completa que contiene la función LookUp se llama mediante una función o una subrutina mediante Gosub.
Hseropen 4800
Dim dato As Byte
Dim n As Byte
For n = 0 To 9
dato = _mascara(n)
Hserout "Dato=", #dato, " Indice=", #n, CrLf
Next n
End
Function _mascara(_indice As Byte) As Byte
_mascara = LookUp(10, 11, 12, 13, 14, 15, 16, 17, 18, 19), _indice
End Function
Y mediante subrutina:
Hseropen 4800
Dim dato As Byte
Dim n As Byte
For n = 0 To 9
Gosub mascara
Hserout "Dato=", #dato, " Indice=", #n, CrLf
Next n
End
mascara:
dato = LookUp(10, 11, 12, 13, 14, 15, 16, 17, 18, 19), n
Return
Ambos programas recorren toda la lista de constantes y los envían al puerto serie.