C.Basic/fx/CBZ_error.c

225 lines
4.8 KiB
C

#include "CB.h"
//-----------------------------------------------------------------------------
// Casio Basic inside
//-----------------------------------------------------------------------------
//----------------------------------------------------------------------------------------------
int ErrorPtr=0; // Error ptr
int ErrorProg=0; // Error Prog
int ErrorNo; // Error No
//----------------------------------------------------------------------------------------------
void ERROR(char *buffer) {
unsigned int key;
char buf[22];
if ( TryFlag ) return ;
CB_SelectTextDD(); // Select Text Screen
SaveDisp(SAVEDISP_PAGE1);
// PopUpWin(5);
// locate(3,2); Print((unsigned char *)buffer);
// sprintf(buf," ptr:0x%X(%d)",ErrorPtr,ErrorPtr);
// locate(3,4); Print((unsigned char *)buf);
// locate(3,6); Print((unsigned char *) " Press:[EXIT]");
PopUpWin(4);
locate(3,3); Print((unsigned char *)buffer);
locate(3,5); Print((unsigned char *) " Press:[EXIT]");
Bdisp_PutDisp_DD();
WaitKeyAC();
KeyRecover();
while ( 1 ) {
GetKey(&key);
if ( key == KEY_CTRL_EXIT ) break ;
if ( key == KEY_CTRL_AC ) break ;
if ( key == KEY_CTRL_RIGHT ) break ;
if ( key == KEY_CTRL_LEFT ) break ;
}
RestoreDisp(SAVEDISP_PAGE1);
Bdisp_PutDisp_DD();
}
void CB_ErrMsg(int ErrNo) {
switch (ErrNo) {
case SyntaxERR:
ERROR(" Syntax ERROR");
break;
case MathERR:
ERROR(" Ma ERROR");
break;
case GoERR:
ERROR(" Go ERROR");
break;
case NestingERR:
ERROR(" Nesting ERROR");
break;
case StackERR:
ERROR(" Stack ERROR");
break;
case MemoryERR:
ERROR(" Memory ERROR");
break;
case ArgumentERR:
ERROR(" Argument ERROR");
break;
case DimensionERR:
ERROR(" Dimension ERROR");
break;
case RangeERR:
ERROR(" Range ERROR");
break;
case NonRealERR:
ERROR(" Non-Real ERROR");
break;
case TooMuchData:
ERROR(" Too Much Data");
break;
case ComERR:
ERROR(" Com ERROR");
break;
case TransmitERR:
ERROR(" Transmit ERROR");
break;
case ReceiveERR:
ERROR(" Receive ERROR");
break;
case InvalidType:
ERROR(" Invalid Type");
break;
case NextWithoutForERR:
ERROR("Next without For");
break;
case ForWithoutNextERR:
ERROR("For without Next");
break;
case WhileWithoutWhileEndERR:
ERROR("While w/o W.End");
break;
case WhileEndWithoutWhileERR:
ERROR("W.End w/o While");
break;
case LpWhileWithoutDoERR:
ERROR("LpWhile w/o Do");
break;
case DoWithoutLpWhileERR:
ERROR("Do w/o LpWhile");
break;
case NotLoopERR:
ERROR("Not Loop ERROR");
break;
case DivisionByZeroERR:
ERROR("Division By Zero");
break;
case UndefinedLabelERR:
ERROR("Undefined Label");
break;
case NotEnoughMemoryERR:
ERROR("Not enough Memory");
break;
case StringTooLongERR:
ERROR("String Too Long");
break;
case NoMatrixArrayERR:
ERROR("No Matrix array");
break;
case ArraySizeERR:
ERROR("Illegal Ary size");
break;
case NotfoundProgERR:
ERROR("Not found Prog");
break;
case TooManyProgERR:
ERROR("Too many SubProg");
break;
case IfWithoutIfEndERR:
ERROR("If without IfEnd");
break;
case ThenWithoutIfERR:
ERROR("Then without If");
break;
case CaseWithoutSwitchERR:
ERROR("Case w/o Switch ");
break;
case DefaultWithoutSwitchERR:
ERROR("Default w/o Swtch");
break;
case SwitchWithoutSwitchEndERR:
ERROR("Switch w/o S.End ");
break;
case SwitchEndWithoutSwitchERR:
ERROR("S.End w/o Switch ");
break;
case CantFindFileERR:
ERROR("Can't find file");
break;
case ElementSizeERR:
ERROR("Illegal Element");
break;
case AlreadyOpenERR:
ERROR("Already Opened");
break;
case ComNotOpenERR:
ERROR("Com Not Opened");
break;
case TypeMismatchERR:
ERROR("Type Mismatched");
break;
case OutOfDomainERR:
ERROR("Out of Domain ");
break;
case UndefinedVarERR:
ERROR("Undefined Var.");
break;
case UndefinedFuncERR:
ERROR("Undefined Func.");
break;
case NotSupportERR:
ERROR("Not Supported");
break;
case TooManyVarERR:
ERROR("Exceed Var. limit");
break;
case DuplicateDefERR:
ERROR("Duplicated Def.");
break;
case AlignmentERR:
// ERROR("Alignment ERR");
ERROR("Address Align ERR");
break;
case NotAccuracyERR:
ERROR("Not met Accuracy");
break;
case TryWithoutExceptERR:
ERROR("Try w/o Except ");
break;
case ExcpetWithoutTryERR:
ERROR("Except w/o Try ");
break;
// case TryEndWithoutTryERR:
// ERROR("TryEnd w/o Try ");
// break;
default:
// case FileERR:
ERROR("File ERROR");
break;
}
}
//-----------------------------------------------------------------------------
void CB_Error(int ErrNo) { // error
if ( ErrorNo ) return ;
ErrorNo=ErrNo;
ErrorPtr=ExecPtr;
ErrorProg=ProgNo;
if ( ErrNo==MathERR ) ErrorPtr--;
}