Saludos!.
Estoy utilizando Turbo Pascal 7.0.
Byte son enteros de 0 a 255, ambos inclusive.
whereX y whereY son funciones que regresan un valor entero, de la coordenada X y Y, respectivamente, del cursor en la ventana (window(x1,y1,x2,y2)) en que se encuentre, en el momento en que la funcion es llamada.
Ahora, windMin y windMax son funciones tambien, que devuelven las coordenadas X y Y de la esquina superior izquierda (windMin) y de la exquina inferior derecha (windMax) de la ventana actual.
Las funciones "lo" y "hi" no se como explicarlas
pero te digo que lo(windMin) o lo(windMax) retornan el valor de la X en las respectivas esquinas, y, de manera análoga, hi(windMin) y hi(windMax) retornan los Y.
Cuando no has definido ninguna ventana, la esquina superior izquierda de la pantalla sera (X1,Y1) = (0,0) (o sea, lo(windMin) = 0 y hi(windMin) = 0), y la inferior derecha sera (X2,Y2) = (49,79) (o sea, lo(windMax) = 49 y hi(windMax) = 79) para una resolucion de pantalla de 50X80.
Cuando hayas definido ventanas, la esquina superior sera (1,1).
Ahora, y si esta explicación sirvió de algo
:
Para calcular la distancia entre dos puntos A y B, se realiza asi: D = A - B + 1. De aqui el porque de la ecuacion
Z:=LO (WINDMAX) - LO (WINDMIN) + 1
Z seria la distancia entre los bordes de la ventana, cualquiera que sea, y luego la utilizo en el Z div 2 para calcular la mitad de las columnas de la misma ventana.
A programar!