version 1.36, 1996/05/03 13:05:05
|
version 1.37, 1996/07/16 20:57:12
|
Line 101 void relocate(Cell *image, char *bitstri
|
Line 101 void relocate(Cell *image, char *bitstri
|
int i=0, j, k, steps=(size/sizeof(Cell))/8; |
int i=0, j, k, steps=(size/sizeof(Cell))/8; |
char bits; |
char bits; |
/* static char bits[8]={0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01};*/ |
/* static char bits[8]={0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01};*/ |
|
|
|
/* printf("relocating %x[%x]\n", image, size); */ |
|
|
for(k=0; k<=steps; k++) |
for(k=0; k<=steps; k++) |
for(j=0, bits=bitstring[k]; j<8; j++, i++, bits<<=1) |
for(j=0, bits=bitstring[k]; j<8; j++, i++, bits<<=1) |
Line 118 void relocate(Cell *image, char *bitstri
|
Line 120 void relocate(Cell *image, char *bitstri
|
case CF(DODOES) : MAKE_DOES_CF(image+i,image[i+1]+((Cell)image)); |
case CF(DODOES) : MAKE_DOES_CF(image+i,image[i+1]+((Cell)image)); |
break; |
break; |
case CF(DOESJUMP): MAKE_DOES_HANDLER(image+i); break; |
case CF(DOESJUMP): MAKE_DOES_HANDLER(image+i); break; |
default : image[i]=(Cell)CA(CF(image[i])); |
default : |
|
/* printf("Code field generation image[%x]:=CA(%x)\n", |
|
i, CF(image[i])); |
|
*/ image[i]=(Cell)CA(CF(image[i])); |
} |
} |
else |
else |
image[i]+=(Cell)image; |
image[i]+=(Cell)image; |