0:0 E-0 Linker error: Routine too large

Beta Testing discussion on mikroPascal.
Post Reply
Author
Message
gafsi
Posts: 2
Joined: 21 Apr 2011 02:51

0:0 E-0 Linker error: Routine too large

#1 Post by gafsi » 25 Apr 2011 03:21

Why while compiling i get this error: (0:0 E-0 Linker error: Routine too large )????

please somone help me the sooner possible,because it's in my graduate project...thankx..

This is my program code:

program montage2;
VAR i,j,k,n : integer;
LABEL boucle1,boucle2,boucle3,repos,mode_cylindrique,bobine_normale,bobine_maximale;

BEGIN
TRISA:=$07;
TRISB:=$0F;

WHILE TRUE DO
BEGIN
//////////////////************Etat_1:mode Repos**************/////////////////
repos:
WHILE (PORTB.6=0)AND(PORTB.7=0) DO
BEGIN
PORTB.0:=0;
PORTB.1:=0;
PORTB.2:=0;
PORTB.3:=1;

PORTA.4:=0;
PORTA.3:=0;
i:=0;
j:=0;
k:=0;
n:=0;
END;

////////////************Etat_2:mode forme cylindrique **************///////////
mode_cylindrique:
WHILE (PORTB.6=1)AND(PORTB.7=0) do
BEGIN
PORTB.0:=0;
PORTB.1:=0;
PORTB.3:=0;
PORTB.2:=1;
REPEAT
PORTA.4:=0;
PORTA.3:=1;
if (PORTB.6=0)AND(PORTB.7=0) then goto repos;
if (PORTB.6=0)AND(PORTB.7=1) then goto bobine_normale;
if (PORTB.6=1)AND(PORTB.7=1) then goto bobine_maximale;
UNTIL PORTA.0=1;
REPEAT
PORTA.3:=0;
PORTA.4:=1;
if (PORTB.6=0)AND(PORTB.7=0) then goto repos;
if (PORTB.6=0)AND(PORTB.7=1) then goto bobine_normale;
if (PORTB.6=1)AND(PORTB.7=1) then goto bobine_maximale;

UNTIL PORTA.2=1;

END;

/////////////************Etat_3:mode forme Bouteille **************////////////
////////////////////////////differentielle normale////////////////////////////
bobine_normale:
WHILE (PORTB.6=0)AND(PORTB.7=1) DO
BEGIN
PORTB.0:=0;
PORTB.2:=0;
PORTB.3:=0;
PORTB.1:=1;
PORTA.4:=0;
PORTA.3:=0;
i:=0;
j:=0;
k:=0;
REPEAT

REPEAT
//PORTB.0:=0;
PORTA.4:=0;
PORTA.3:=1;
if (PORTB.6=0)AND(PORTB.7=0) then goto repos;
if (PORTB.6=1)AND(PORTB.7=0) then goto mode_cylindrique;
if (PORTB.6=1)AND(PORTB.7=1) then goto bobine_maximale;
UNTIL PORTA.1=1;
if PORTA.1=1 then
BEGIN
PORTB.1:=1;
END;

IF j=0 then goto boucle1 //begin PORTB.0:=1;end
ELSE

BEGIN
REPEAT
if PORTA.0=1 then
BEGIN
WHILE PORTA.0=1 DO
BEGIN
PORTB.2:=1;
END;
BEGIN j:=0;
i:=0;
k:=0;
goto boucle1
END;
END;


IF (PORTB.4=0) AND (PORTB.5=0 ) THEN Delay_ms(10);
IF (PORTB.4=1) AND (PORTB.5=0 ) THEN Delay_ms(20);
IF (PORTB.4=0) AND (PORTB.5=1 ) THEN Delay_ms(30);
IF (PORTB.4=1) AND (PORTB.5=1 ) THEN Delay_ms(40);


k:=k+1;
UNTIL k=i*100;
END;
boucle1:
i:=i+1; j:=1; k:=0;
REPEAT
PORTA.3:=0;
PORTA.4:=1;
if (PORTB.6=0)AND(PORTB.7=0) then goto repos;
if (PORTB.6=1)AND(PORTB.7=0) then goto mode_cylindrique;
if (PORTB.6=1)AND(PORTB.7=1) then goto bobine_maximale;
UNTIL PORTA.2=1;


WHILE PORTA.2=1 DO
BEGIN
PORTB.0:=1;
END;

UNTIL PORTA.0=1;

WHILE PORTA.0=1 DO
BEGIN
PORTB.2:=1;
END;
END;

/////////////************Etat_4:mode forme Bouteille **************////////////
///////////////////////////////quantité maximale///////////////////////////////
bobine_maximale:
WHILE ((PORTB.6=1)AND(PORTB.7=1)) DO
BEGIN
PORTB.1:=0;
PORTB.2:=0;
PORTB.3:=0;
PORTB.0:=1;
n:=0;
REPEAT
REPEAT
//PORTB.0:=0;
//IF PORTA.2=1 THEN
PORTA.4:=0;
PORTA.3:=1;
if (PORTB.6=0)AND(PORTB.7=0) then goto repos;
if (PORTB.6=1)AND(PORTB.7=0) then goto mode_cylindrique;
if (PORTB.6=0)AND(PORTB.7=1) then goto bobine_normale;

UNTIL PORTA.1=1;

WHILE PORTA.1=1 DO
BEGIN
PORTB.1:=1;
END;

IF j=0 then goto boucle2 //begin PORTB.0:=1;end
ELSE

BEGIN
REPEAT
if PORTA.0=1 then
BEGIN j:=0;
i:=0;
k:=0;
goto boucle3
END;

IF (PORTB.4=0) AND (PORTB.5=0 ) THEN Delay_ms(10);
IF (PORTB.4=1) AND (PORTB.5=0 ) THEN Delay_ms(20);
IF (PORTB.4=0) AND (PORTB.5=1 ) THEN Delay_ms(30);
IF (PORTB.4=1) AND (PORTB.5=1 ) THEN Delay_ms(40);

k:=k+1;
UNTIL k=i*100;
END;

boucle2:
i:=i+1; j:=1; k:=0;
REPEAT
PORTA.3:=0;
PORTA.4:=1;
UNTIL PORTA.2=1;

UNTIL PORTA.0=1;

boucle3:
REPEAT
REPEAT
PORTA.4:=0;
PORTA.3:=1;
if (PORTB.6=0)AND(PORTB.7=0) then goto repos;
if (PORTB.6=1)AND(PORTB.7=0) then goto mode_cylindrique;
if (PORTB.6=0)AND(PORTB.7=1) then goto bobine_normale;

UNTIL PORTA.0=1;
REPEAT
PORTA.3:=0;
PORTA.4:=1;
if (PORTB.6=0)AND(PORTB.7=0) then goto repos;
if (PORTB.6=1)AND(PORTB.7=0) then goto mode_cylindrique;
if (PORTB.6=0)AND(PORTB.7=1) then goto bobine_normale;


UNTIL PORTA.2=1;
n:=n+1;
UNTIL n=5;
END;
END;
END.

User avatar
slavisa.zlatanovic
mikroElektronika team
Posts: 1321
Joined: 07 Apr 2009 09:39

Re: 0:0 E-0 Linker error: Routine too large

#2 Post by slavisa.zlatanovic » 26 Apr 2011 10:00

Hi!

We strongly encourage users to switch to PRO version because non-PRO version is an ancestor of PRO compiler
and is no longer being developed.
Every new feature, improvement and bug fix will only affect new versions of PRO compilers.
If you're a registered user you'll receive PRO license key free of charge.
See the migration document for more details:
Migration_document.PNG
Migration_document.PNG (15.87 KiB) Viewed 4116 times
Best regards
Slavisa

Post Reply

Return to “mikroPascal Beta Testing”