version 1.4, 1998/10/25 23:15:47
|
version 1.5, 1998/11/08 23:08:05
|
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 */ |
CPU_DEP1, |
(Label)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] = (Label)routines[i]; |
symbols[i] = 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]; |
} |
} |
symbols[i] = &routines[i]; |
|
} |
|
#endif /* defined(DOUBLY_INDIRECT) */ |
#endif /* defined(DOUBLY_INDIRECT) */ |
return symbols; |
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; |
|
|