version 1.26, 2010/08/06 15:32:57
|
version 1.36, 2011/03/06 16:44:07
|
Line 1
|
Line 1
|
/* |
/* |
================================================================================ |
================================================================================ |
RPL/2 (R) version 4.0.18 |
RPL/2 (R) version 4.0.21 |
Copyright (C) 1989-2010 Dr. BERTRAND Joël |
Copyright (C) 1989-2011 Dr. BERTRAND Joël |
|
|
This file is part of RPL/2. |
This file is part of RPL/2. |
|
|
Line 459 initialisation_instructions(struct_proce
|
Line 459 initialisation_instructions(struct_proce
|
INSTRUCTION("INCR", instruction_incr); |
INSTRUCTION("INCR", instruction_incr); |
//INSTRUCTION("ISOL"); |
//INSTRUCTION("ISOL"); |
INSTRUCTION("ISWI", instruction_iswi); |
INSTRUCTION("ISWI", instruction_iswi); |
|
# ifndef OS2 |
INSTRUCTION("KILL", instruction_kill); |
INSTRUCTION("KILL", instruction_kill); |
|
# endif |
INSTRUCTION("KIND", instruction_kind); |
INSTRUCTION("KIND", instruction_kind); |
INSTRUCTION("LAST", instruction_last); |
INSTRUCTION("LAST", instruction_last); |
INSTRUCTION("LEGV", instruction_legv); |
INSTRUCTION("LEGV", instruction_legv); |
INSTRUCTION("LINE", instruction_line); |
INSTRUCTION("LINE", instruction_line); |
INSTRUCTION("LNP1", instruction_lnp1); |
INSTRUCTION("LNP1", instruction_lnp1); |
INSTRUCTION("LOCK", instruction_lock); |
INSTRUCTION("LOCK", instruction_lock); |
|
INSTRUCTION("L->T", instruction_l_vers_t); |
INSTRUCTION("MANT", instruction_mant); |
INSTRUCTION("MANT", instruction_mant); |
INSTRUCTION("MARK", instruction_mark); |
INSTRUCTION("MARK", instruction_mark); |
//INSTRUCTION("MAXR") |
//INSTRUCTION("MAXR") |
Line 486 initialisation_instructions(struct_proce
|
Line 489 initialisation_instructions(struct_proce
|
INSTRUCTION("PLOT", instruction_plot); |
INSTRUCTION("PLOT", instruction_plot); |
INSTRUCTION("PMAX", instruction_pmax); |
INSTRUCTION("PMAX", instruction_pmax); |
INSTRUCTION("PMIN", instruction_pmin); |
INSTRUCTION("PMIN", instruction_pmin); |
|
# ifndef OS2 |
INSTRUCTION("POKE", instruction_poke); |
INSTRUCTION("POKE", instruction_poke); |
|
# endif |
INSTRUCTION("PPAR", instruction_ppar); |
INSTRUCTION("PPAR", instruction_ppar); |
INSTRUCTION("PRMD", instruction_prmd); |
INSTRUCTION("PRMD", instruction_prmd); |
INSTRUCTION("PRST", instruction_prst); |
INSTRUCTION("PRST", instruction_prst); |
Line 552 initialisation_instructions(struct_proce
|
Line 557 initialisation_instructions(struct_proce
|
INSTRUCTION("STO-", instruction_sto_moins); |
INSTRUCTION("STO-", instruction_sto_moins); |
INSTRUCTION("STO/", instruction_sto_division); |
INSTRUCTION("STO/", instruction_sto_division); |
INSTRUCTION("STOF", instruction_stof); |
INSTRUCTION("STOF", instruction_stof); |
|
# ifndef OS2 |
INSTRUCTION("STOP", instruction_stop); |
INSTRUCTION("STOP", instruction_stop); |
|
# endif |
INSTRUCTION("STOS", instruction_stos); |
INSTRUCTION("STOS", instruction_stos); |
INSTRUCTION("STWS", instruction_stws); |
INSTRUCTION("STWS", instruction_stws); |
INSTRUCTION("SWAP", instruction_swap); |
INSTRUCTION("SWAP", instruction_swap); |
Line 565 initialisation_instructions(struct_proce
|
Line 572 initialisation_instructions(struct_proce
|
INSTRUCTION("TRNC", instruction_trnc); |
INSTRUCTION("TRNC", instruction_trnc); |
INSTRUCTION("TRUE", instruction_true); |
INSTRUCTION("TRUE", instruction_true); |
INSTRUCTION("TYPE", instruction_type); |
INSTRUCTION("TYPE", instruction_type); |
|
INSTRUCTION("T->L", instruction_t_vers_l); |
INSTRUCTION("UTPC", instruction_utpc); |
INSTRUCTION("UTPC", instruction_utpc); |
INSTRUCTION("UTPF", instruction_utpf); |
INSTRUCTION("UTPF", instruction_utpf); |
INSTRUCTION("UTPN", instruction_utpn); |
INSTRUCTION("UTPN", instruction_utpn); |
Line 685 initialisation_instructions(struct_proce
|
Line 693 initialisation_instructions(struct_proce
|
INSTRUCTION("SLICE", instruction_slice); |
INSTRUCTION("SLICE", instruction_slice); |
//INSTRUCTION("SLIST") |
//INSTRUCTION("SLIST") |
//Instruction HP48 (somme des termes d'une liste) |
//Instruction HP48 (somme des termes d'une liste) |
|
# ifndef OS2 |
INSTRUCTION("SPAWN", instruction_spawn); |
INSTRUCTION("SPAWN", instruction_spawn); |
|
# endif |
INSTRUCTION("START", instruction_start); |
INSTRUCTION("START", instruction_start); |
INSTRUCTION("STORE", instruction_store); |
INSTRUCTION("STORE", instruction_store); |
INSTRUCTION("STR->", instruction_str_fleche); |
INSTRUCTION("STR->", instruction_str_fleche); |
Line 722 initialisation_instructions(struct_proce
|
Line 732 initialisation_instructions(struct_proce
|
INSTRUCTION("CLRSWI", instruction_clrswi); |
INSTRUCTION("CLRSWI", instruction_clrswi); |
INSTRUCTION("CREATE", instruction_create); |
INSTRUCTION("CREATE", instruction_create); |
INSTRUCTION("DELETE", instruction_delete); |
INSTRUCTION("DELETE", instruction_delete); |
|
# ifndef OS2 |
INSTRUCTION("DETACH", instruction_detach); |
INSTRUCTION("DETACH", instruction_detach); |
|
# endif |
INSTRUCTION("DIAG->", instruction_diag_fleche); |
INSTRUCTION("DIAG->", instruction_diag_fleche); |
//INSTRUCTION("DOLIST") |
//INSTRUCTION("DOLIST") |
//Instruction HP48 (application d'une fonction à une liste) |
//Instruction HP48 (application d'une fonction à une liste) |
Line 816 initialisation_instructions(struct_proce
|
Line 828 initialisation_instructions(struct_proce
|
|
|
INSTRUCTION("CLRCNTXT", instruction_clrcntxt); |
INSTRUCTION("CLRCNTXT", instruction_clrcntxt); |
INSTRUCTION("CLRSMPHR", instruction_clrsmphr); |
INSTRUCTION("CLRSMPHR", instruction_clrsmphr); |
|
# ifndef OS2 |
INSTRUCTION("CONTINUE", instruction_continue); |
INSTRUCTION("CONTINUE", instruction_continue); |
|
# endif |
INSTRUCTION("DUPCNTXT", instruction_dupcntxt); |
INSTRUCTION("DUPCNTXT", instruction_dupcntxt); |
INSTRUCTION("FUNCTION", instruction_function); |
INSTRUCTION("FUNCTION", instruction_function); |
INSTRUCTION("IMPLICIT", instruction_implicit); |
INSTRUCTION("IMPLICIT", instruction_implicit); |
Line 884 initialisation_instructions(struct_proce
|
Line 898 initialisation_instructions(struct_proce
|
} |
} |
|
|
|
|
#ifndef OS2 |
|
extern inline |
|
#endif |
|
void * |
void * |
analyse_instruction(struct_processus *s_etat_processus, unsigned char *ptr) |
analyse_instruction(struct_processus *s_etat_processus, unsigned char *ptr) |
{ |
{ |
Line 960 analyse(struct_processus *s_etat_process
|
Line 971 analyse(struct_processus *s_etat_process
|
|
|
void (*instruction)(); |
void (*instruction)(); |
|
|
|
# ifdef DMALLOC |
|
BUG(dmalloc_verify(NULL) == DMALLOC_VERIFY_ERROR, |
|
printf("HEAP CORRUPTION!")); |
|
# endif |
|
|
errno = 0; |
errno = 0; |
(*s_etat_processus).var_volatile_exception_gsl = 0; |
(*s_etat_processus).var_volatile_exception_gsl = 0; |
|
|
Line 1147 analyse(struct_processus *s_etat_process
|
Line 1163 analyse(struct_processus *s_etat_process
|
-------------------------------------------------------------------------------- |
-------------------------------------------------------------------------------- |
*/ |
*/ |
|
|
|
# ifndef OS2 |
if ((*s_etat_processus).pourcentage_maximal_cpu < 100) |
if ((*s_etat_processus).pourcentage_maximal_cpu < 100) |
{ |
{ |
getrusage(RUSAGE_SELF, &usage_final); |
getrusage(RUSAGE_SELF, &usage_final); |
Line 1202 analyse(struct_processus *s_etat_process
|
Line 1219 analyse(struct_processus *s_etat_process
|
usage_initial = usage_final; |
usage_initial = usage_final; |
} |
} |
} |
} |
|
# endif |
|
|
/* |
/* |
-------------------------------------------------------------------------------- |
-------------------------------------------------------------------------------- |