version 1.6, 1998/12/08 22:03:02
|
version 1.7, 1998/12/11 22:54:30
|
Line 250 Label *engine(Xt *ip0, Cell *sp0, Cell *
|
Line 250 Label *engine(Xt *ip0, Cell *sp0, Cell *
|
(Label)&&dodoes, |
(Label)&&dodoes, |
/* the following entry is normally unused; |
/* the following entry is normally unused; |
it's there because its index indicates a does-handler */ |
it's there because its index indicates a does-handler */ |
(Label)CPU_DEP1, |
CPU_DEP1, |
#include "prim_lab.i" |
#include "prim_lab.i" |
(Label)0 |
(Label)0 |
}; |
}; |
Line 270 Label *engine(Xt *ip0, Cell *sp0, Cell *
|
Line 270 Label *engine(Xt *ip0, Cell *sp0, Cell *
|
#define CODE_OFFSET (22*sizeof(Cell)) |
#define CODE_OFFSET (22*sizeof(Cell)) |
int i; |
int i; |
Cell code_offset = offset_image? CODE_OFFSET : 0; |
Cell code_offset = offset_image? CODE_OFFSET : 0; |
|
|
symbols = (Label *)(malloc(MAX_SYMBOLS*sizeof(Cell)+CODE_OFFSET)+code_offset); |
symbols = (Label *)(malloc(MAX_SYMBOLS*sizeof(Cell)+CODE_OFFSET)+code_offset); |
for (i=0; i<DOESJUMP+1; i++) |
for (i=0; i<DOESJUMP+1; i++) |
symbols[i] = routines[i]; |
symbols[i] = (Label)routines[i]; |
for (; routines[i]!=0; i++) { |
for (; routines[i]!=0; i++) { |
if (i>=MAX_SYMBOLS) { |
if (i>=MAX_SYMBOLS) { |
fprintf(stderr,"gforth-ditc: more than %d primitives\n",MAX_SYMBOLS); |
fprintf(stderr,"gforth-ditc: more than %d primitives\n",MAX_SYMBOLS); |
exit(1); |
exit(1); |
} |
|
symbols[i] = &routines[i]; |
|
} |
} |
#endif /* defined(DOUBLY_INDIRECT) */ |
symbols[i] = &routines[i]; |
return symbols; |
|
} |
} |
|
#endif /* defined(DOUBLY_INDIRECT) */ |
|
return symbols; |
|
} |
|
|
IF_TOS(TOS = sp[0]); |
IF_TOS(TOS = sp[0]); |
IF_FTOS(FTOS = fp[0]); |
IF_FTOS(FTOS = fp[0]); |
/* prep_terminal(); */ |
/* prep_terminal(); */ |
NEXT_P0; |
NEXT_P0; |
NEXT; |
NEXT; |
|
|