 
 bool trace = false;
 
-
+#define kNGosubs (15)
+char gosubPtr = 0;
+char * gosubStack[ kNGosubs ];
+
+#define kJRGosubStack	(-6)
 #define kJRDBZError	(-5)
 #define kJRSyntaxError	(-4)
 #define kJRStop		(-3)

		// do the thing!
		cline = myAtoi( bufc );
		next = evaluate_line( ln );
		if( next == kJRDBZError ) {
			Serial.println( "Divide By Zero Error." );
			next = kJRStop;

	int next = kJRFirstLine;
	char *bufc = programRam;

	gosubPtr = 0;
	if( *bufc == '\0' ) return;

	while( *bufc && next != kJRStop ) {
