program visor;
const
MaxPalabra = 16;
var
archivo: file; {archivo sin tipo}
path: string;
palabra: array [1..MaxPalabra] of char; {use esto por que mi compilador se quejaba con un string}
i: byte;
leidos: integer;
linea: longint;
begin
write('ingrese la dir del archivo: '); readln(path);
assign(archivo, path); {asocio el archivo a la dir}
reset(archivo, 1); {lo prepara para escritura, el 1 es por que leeremos bytes}
{aca faltan los controladores para saber si el archivo existe o no}
linea := 1;
while not(EOF(archivo)) do
begin
writeln;
blockread(archivo, palabra, sizeof(palabra), leidos);
write(linea, ' | '); {aca iria el numero de linea de la forma FFFF FFFF}
linea := linea + 1;
for i := 1 to MaxPalabra do
write(palabra[i], ' ');{aca iria tu funcion de hexadecimal es}
write('| ',palabra, ' |');
end;
readln;
close(archivo);
end.