DEFINITION MODULE VILLAGES;
FROM SYSTEM IMPORT TSIZE;
CONST maxnovillages=300;
      maxnolinks=1500;
TYPE 
   villagenotype=[1..maxnovillages];
   linknotype=[0..maxnolinks-1];
   linktype=RECORD 
     vnum:villagenotype;
     dist:REAL3 END;
   villageinfotype= RECORD
     name:ARRAY [0..20] OF CHAR;
(*   churches:SHORTCARD;*)
     linknum:[0..maxnovillages];
     linkst:linknotype END;
VAR [0C000H]
    nooflinks:CARDINAL;
    noofvillages:CARDINAL;
    vinfo:ARRAY villagenotype OF villageinfotype;
    links:ARRAY linknotype OF linktype;
PROCEDURE loadvillages;
CONST 
    vsiz=TSIZE(villageinfotype);
    lsiz=TSIZE(linktype);
END VILLAGES.
IMPLEMENTATION MODULE VILLAGES;
FROM DRIVES IMPORT LOAD;
FROM SYSTEM IMPORT ADR;
FROM DATA IMPORT MOVE;
PROCEDURE loadvillages;
BEGIN
LOAD(1,'VILDATA',ADR(nooflinks));
MOVE(ADR(vinfo)+noofvillages*vsiz,ADR(links),nooflinks*lsiz);
END loadvillages;

END VILLAGES.
