version 1.36, 2000/07/23 19:29:56
|
version 1.37, 2000/07/27 10:40:42
|
Line 130 void relocate(Cell *image, const char *b
|
Line 130 void relocate(Cell *image, const char *b
|
int i=0, j, k, steps=(size/sizeof(Cell))/RELINFOBITS; |
int i=0, j, k, steps=(size/sizeof(Cell))/RELINFOBITS; |
Cell token; |
Cell token; |
char bits; |
char bits; |
|
Cell max_symbols; |
|
|
/* printf("relocating %x[%x]\n", image, size); */ |
/* printf("relocating %x[%x]\n", image, size); */ |
|
|
|
for (max_symbols=DOESJUMP+1; symbols[max_symbols]!=0; max_symbols++) |
|
; |
size/=sizeof(Cell); |
size/=sizeof(Cell); |
|
|
for(k=0; k<=steps; k++) { |
for(k=0; k<=steps; k++) { |
Line 159 void relocate(Cell *image, const char *b
|
Line 162 void relocate(Cell *image, const char *b
|
default : |
default : |
/* printf("Code field generation image[%x]:=CA(%x)\n", |
/* printf("Code field generation image[%x]:=CA(%x)\n", |
i, CF(image[i])); */ |
i, CF(image[i])); */ |
image[i]=(Cell)CA(CF(token)); |
if (CF(token)<max_symbols) |
|
image[i]=(Cell)CA(CF(token)); |
|
else |
|
fprintf(stderr,"Primitive %d used in this image at $%lx is not implemented by this\n engine (%s); executing this code will crash.\n",CF(token),(long)&image[i],VERSION); |
} |
} |
else |
else |
image[i]+=(Cell)image; |
image[i]+=(Cell)image; |