call stopInterrupts ! suspend any thread switching
push r1 ! save r1 and r2
push r2 ! . so the user can look at them
set ErrorMess10,r1 ! print the error message
call _putString ! .
pop r2 ! restore r1 and r2
pop r1 ! .
jmp TerminateRuntime ! terminate all execution
_runtimeErrorUninitializedArray:
set ErrorMess11a,r1 ! Print an error message
jmp printRuntimeError ! . and terminate all execution
_runtimeErrorBadArrayIndex:
call stopInterrupts ! suspend any thread switching
push r2 ! save r2 so the user can look at it
set ErrorMess11,r1 ! print the error message
call _putString ! .
pop r2 ! restore r2
jmp TerminateRuntime ! terminate all execution
_runtimeErrorNullPointerDuringCall:
set ErrorMess12,r1 ! Print an error message
jmp printRuntimeError ! . and terminate all execution
_runtimeErrorArrayCountNotPositive:
call stopInterrupts ! suspend any thread switching
push r1 ! save r1 so the user can look at it
set ErrorMess13,r1 ! print the error message
call _putString ! .
pop r1 ! restore r1
jmp TerminateRuntime ! terminate all execution
_runtimeErrorRestoreCatchStackError:
set ErrorMess14,r1 ! Print an error message
jmp printRuntimeError ! . and terminate all execution
_runtimeErrorThrowHandlerHasReturned:
set ErrorMess15,r1 ! Print an error message
jmp printRuntimeError ! . and terminate all execution
_runtimeErrorFatalThrowError:
set ErrorMess16,r1 ! Print an error message
jmp printRuntimeError ! . and terminate all execution
_runtimeErrorInterruptsEnabled:
set ErrorMess17,r1 ! Print an error message
jmp printRuntimeError ! . and terminate all execution
ErrorMess1:
.ascii "\nArithmetic overflow has occurred! Type 'st' to see stack.\n\0"
ErrorMess2:
.ascii "\nDivide-by-zero has occurred! Type 'st' to see stack.\n\0"
ErrorMess3:
.ascii "\nAttempt to use a null pointer! Type 'st' to see stack.\n\0"
ErrorMess4:
.ascii "\nAttempt to use an uninitialized object! Type 'st' to see stack.\n\0"
ErrorMess5:
.ascii "\nDuring an assignment of the form '*ptr = x', the ptr does not already point to an instance of the same class as x! Type 'st' to see stack.\n\0"
ErrorMess6:
.ascii "\nDuring an assignment of the form 'x = *ptr', the ptr does not already point to an instance of the same class as x! Type 'st' to see stack.\n\0"
ErrorMess7:
.ascii "\nDuring an object assignment of the form '*ptr1 = *ptr2', the two objects are not instances of the same class! Type 'st' to see stack.\n\0"
ErrorMess8:
.ascii "\nDuring an object assignment or object equality test, something is wrong with the dispatch table pointer, the dispatch table, "
.ascii "or the class descriptor; the size of the object is less than 4! Type 'st' to see stack.\n\0"
ErrorMess9:
.ascii "\nDuring an array copy, the two arrays have different sizes (r1=target size, r3=source size)! Type 'st' to see stack.\n\0"
ErrorMess10:
.ascii "\nDuring an array copy, a dynamic array does not have the correct size (r1=actual size, r2=expected size)! Type 'st' to see stack.\n\0"
ErrorMess11:
.ascii "\nDuring an array index calculation, the index is either less than 0 or greater than or equal to the array size (r2=index)! Type 'st' to see stack.\n\0"
ErrorMess11a:
.ascii "\nAttempt to use an uninitialized array! Type 'st' to see stack.\n\0"
ErrorMess12:
.ascii "\nDuring the invocation of a nameless function, the function pointer was null! Type 'st' to see stack.\n\0"
ErrorMess13:
.ascii "\nDuring the initialization of an array, a 'count' expression was zero or less (r1=count)! Type 'st' to see stack.\n\0"
.align
ErrorMess14:
.ascii "\nWhile popping the Catch Stack, an error has occurred! Type 'st' to see stack.\n\0"
ErrorMess15:
.ascii "\nAttempt to return from KPLUncaughtThrow! Type 'st' to see stack.\n\0"
ErrorMess16:
.ascii "\nError 'UncaughtThrowError' has been thrown but not caught! Type 'st' to see stack.\n\0"
ErrorMess17:
.ascii "\nAttempt to perform serial I/O while interrupts are not disabled! Type 'st' to see stack.\n\0"