No se puede duplicar 0 o menos veces

El operador DUP utilizado para inicializar tablas y estructuras permite repetir (duplicar) una secuencia de valores un determinado número de veces: desde una sola vez (en cuyo caso el operador no tiene nínguna utilidad) hasta un número positivo indeterminado de veces.

Ejemplo:
PROGRAM mi_juego;
GLOBAL
    tabla1[]=10 dup (1, 2, 3);
    tabla2[]=-10 dup (1, 2, 3); // Error: No se puede duplicar 0 o menos veces.
BEGIN
    //...
END


En este ejemplo, tabla1 sería una tabla de 30 posiciones (desde tabla1[0] hasta tabla1[29]) inicializada de la siguiente forma: 1, 2, 3, 1, 2, 3, ...

Es posible, además, omitir el operador DUP quedando entonces la declaración de tabla1 de la siguiente forma:

  tabla1[]=10(1, 2, 3);

El efecto es exactamente el mismo que en el ejemplo anterior, es decir, cuando el compilador se encuentra en una inicialización de tabla la secuencia número ( secuencia_de_valores ... ) interpreta que se pretende repetir la secuencia_de_valores el número de veces que se indica.

Por tanto, es imposible repetir una secuencia de valores cero o un número negativo de veces.


Ver: Sintaxis - DUP