Pascal array oddity

var
  tbl1: array[1..5] of integer = (5,10,15,20,25);

begin
  tbl1[0]:=99; // compiler gives range check error
  for i:=0 to 5 do  // this works
    write(tbl1[i]);
  write(#10);

Warning: range check error while evaluating constants (0 must be between 1 and 5)

Range check error… but allows it (I know…it’s a warning). Also how can 0, be between 1 and 5?

The for loop works AND displays as follows…

     99          5         10         15         20         25