907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
|
Uint32 x,y,z;
nxttok();
if(tokent!=TF_INT) ParseError("Number expected\n");
x=tokenv;
nxttok();
if(tokent!=TF_INT) ParseError("Number expected\n");
y=tokenv;
if(x<1 || x>64 || y<1 || y>255) ParseError("Array dimension out of range\n");
z=array_size;
if(z+x*y>0xFFFE) ParseError("Out of array memory\n");
array_size+=x*y;
return z|(y<<16)|(x<<24);
}
static void begin_label_stack(void) {
labelstack=0;
labelptr=malloc(0x8000*sizeof(Uint16));
if(!labelptr) fatal("Allocation failed\n");
memset(labelptr,255,0x8000*sizeof(Uint16));
|
|
|
|
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
|
Uint32 x,y,z;
nxttok();
if(tokent!=TF_INT) ParseError("Number expected\n");
x=tokenv;
nxttok();
if(tokent!=TF_INT) ParseError("Number expected\n");
y=tokenv;
if(x<1 || x>64 || y<1 || y>1024) ParseError("Array dimension out of range\n");
z=array_size;
if(z+x*y>0xFFFE) ParseError("Out of array memory\n");
array_size+=x*y;
return z|((y-1)<<16)|((x-1)<<26);
}
static void begin_label_stack(void) {
labelstack=0;
labelptr=malloc(0x8000*sizeof(Uint16));
if(!labelptr) fatal("Allocation failed\n");
memset(labelptr,255,0x8000*sizeof(Uint16));
|