# This is an ide startup file.
report=4 # set verbose, but not debug
$stoponerr=1
hinv -v

menu {
    /* Display the version of the diagnostic */
echo "///////////////////////////////////////////////////////////////////////////"
    version;
echo ""
echo "                       FUNCTIONAL TEST OPTIONS "
echo "                       -----------------------"
echo "Command   Description"
echo ""
echo "ip22va    IP22 diagnostics with automatic voltage change"
echo ""
echo "gfxva     XL/XZ/Extreme/Impact diagnostics with automatic voltage change"
echo ""
echo "a2testva  A2 audio diagnostics with automatic voltage change"
echo ""
echo "kva       Galileo video board diagnostics with automatic voltage change"
echo "kvaloop   Loop Galileo board diagnostics 3 times with voltage change"
echo ""
#echo "v_menu		MGV1 Video Menu"
#echo "ab1_menu		AB1 Menu"
#echo "ab1_reg_menu	AB1 Register Menu"
#echo "ab1_mem_menu	AB1 Memory Access Menu"
#echo "cc1_menu		CC1 Menu"
#echo "cc1_mem_menu	CC1 Memory Access Menu"
#echo "cc1_reg_menu	CC1 Register Menu"
#echo "vg_menu		Video-to-Graphics Command Menu"
echo "cosmo_va  COSMO compression board diags with auto voltage change"
echo "cosmo_ex  COSMO compression board diags with auto voltage change, boot UNIX"
echo ""
echo "                     TECHNICIAN BENCH OPTIONS"
echo "                     ------------------------"
echo "ip22      IP22 diagnostics with no voltage change (include EISA tests)"
echo "gfx       XL/XZ/Extreme/Impact diagnostics with no voltage change"
echo "a2test    A2 audio diagnostics with no voltage change"
echo "kv        Galileo video board diagnostics with no voltage change"
echo "kvloop    Loop Galileo board diagnostics 3 times with no voltage change"
echo "cosmo     COSMO compression board diagnostics with no voltage change"
echo "cosmo_qk  COSMO compression board diagnostics then boot UNIX"
echo "m2        Memory Tests (kh, kh parity, threebit, marchx, marchy,"
echo "            butterfly, ldram, kh doubleword, khlow)"
echo ""
echo "///////////////////////////////////////////////////////////////////////////"
}

gioslot {
	$tmp = mg_setboard 0;
	if ($tmp) {
		echo "Found boards in slot 0"
	}
	else {
		$tmp = mg_setboard 1;
		if ($tmp) {
			echo "Found boards in slot 1"
		}
		else {
			echo "No boards found in slot 0 or slot 1"
		}
	}
}

enabdisp {
mg_pokexmap -r XMAP_DIB_CTRL0 -d 0x100
}

m2 {
	$tmp=khlow
	if($tmp) {
		echo "Failure detected in Knaizuk Hartmann Low Test\n"
		$failed=1;
		wait;
	}
	$tmp=memtest2 3
	if($tmp) {
		echo "Failure detected in Knaizuk Hartmann Test\n"
		$failed=1;
		wait;
	}	
	$tmp=memtest2 5
	if($tmp) {
		echo "Failure detected in Knaizuk Hartmann Parity  Test\n"
		$failed=1;
		wait;
	}	
	$tmp=memtest2 10
	if($tmp) {
		echo "Failure detected in Threebit Memory Test\n"
		$failed=1;
		wait;
	}	
	$tmp=memtest2 12
	if($tmp) {
		echo "Failure detected in Knaizuk Hartmann Doubleword Test\n"
		$failed=1;
		wait;
	}	
	$tmp=memtest2 11
	if($tmp) {
		echo "Failure detected in Butterfly Test\n"
		$failed=1;
		wait;
	}	
	$tmp=memtest2 8
	if($tmp) {
		echo "Failure detected in March X Test\n"
		$failed=1;
		wait;
	}	
	$tmp=memtest2 9
	if($tmp) {
		echo "Failure detected in March Y Test\n"
		$failed=1;
		wait;
	}	
	$tmp=ldram
	if($tmp) {
		echo "Failure detected in ldram test\n"
		$failed=1;
		wait;
	}	
}

memory {
	echo "----------------------------------------------------\n"
	if(dcache1){
		echo "Failure detected in dcache1 test\n"
		$failed=1;
		wait;
	}
	
	echo "----------------------------------------------------\n"
	
	$tmp=icache1
	if($tmp) {
		echo "Failure detected in icache1 test\n"
		$failed=1;
		wait;
	}
	
	echo "----------------------------------------------------\n"
	
	$tmp=icache2
	if($tmp) {
		echo "Failure detected in icache2 test\n"
		$failed=1;
		wait;
	}

	echo "----------------------------------------------------\n"

	$tmp=scache1
	if($tmp) {
		echo "Failure detected in scache1 test\n"
		$failed=1;
		wait;
	}	
	echo "----------------------------------------------------\n"

	$tmp=memtest
	if($tmp) {
		echo "Failure detected in memtest test\n"
		$failed=1;
		wait;
	}	
	echo "----------------------------------------------------\n"

	$tmp=m2
	if($tmp) {
		echo "Failure detected in additional memory tests\n"
		$failed=1;
		wait;
	}	
	echo "----------------------------------------------------\n"

	$tmp=ldram 0xa8800000
	if($tmp) {
		echo "Failure detected in ldram test\n"
		$failed=1;
		wait;
	}	
	echo "----------------------------------------------------\n"

	$tmp=ldram -p
	if($tmp) {
		echo "Failure detected in ldram with parity test\n"
		$failed=1;
		wait;
	}	
	$tmp=dram
	if($tmp) {
		echo "Failure detected in dram test\n"
		$failed=1;
		wait;
	}	
	echo "----------------------------------------------------\n"

	$tmp=dram -p
	if($tmp) {
		echo "Failure detected in dram with parity test\n"
		$failed=1;
		wait;
	}	
}

cpusc {
	echo "Checking for R4600sc\n"
        if (is_r4600sc) {
		echo "R4600sc found!!!";
		if(sc_on){
		  	$failed=1;
			wait;
        	}
		if(sc_hit){
			$failed=1;
			wait;
		}
		if(sc_miss){
		  $failed=1;
		  wait;
        	}
        	if(sc_hit_miss){
	  	  $failed=1;
		  wait;
        	}
        	if(sc_tag){
                  $failed=1
		  wait;
        	}
		if(sc_off){
			$failed=1
		}

        }
	else
		{
			echo "R4600sc not found!!!";

			echo "----------------------------------------------------\n"
			if(tlb){
				$failed=1;
				wait;
			}
	
			echo "----------------------------------------------------\n"
			if(utlb){
				$failed=1;
				wait;
			}
	fi
	}

	echo "----------------------------------------------------\n"
	if(dcache1){
		echo "Failure detected in dcache1 test\n"
		$failed=1;
		wait;
	}
	
	echo "----------------------------------------------------\n"
	
	$tmp=icache1
	if($tmp) {
		echo "Failure detected in icache1 test\n"
		$failed=1;
		wait;
	}
	
	echo "----------------------------------------------------\n"
	
	$tmp=icache2
	if($tmp) {
		echo "Failure detected in icache2 test\n"
		$failed=1;
		wait;
	}

	echo "----------------------------------------------------\n"

	$tmp=scache1
	if($tmp) {
		echo "Failure detected in scache1 test\n"
		$failed=1;
		wait;
	}	
	$tmp=scache2
	if($tmp) {
		echo "Failure detected in scache2 test\n"
		$failed=1;
		wait;
	}	

	echo "----------------------------------------------------\n"
	if(fpu) {
		$failed=1;
		wait;
	}
	echo "----------------------------------------------------\n"

	if ($failed) {
		echo "CPU CARD TEST FAILED";
		wait;
		$cpufailed=1;
		} 
		else
		{ 
			echo "CPU CARD TEST PASSED";
		}
	fi

}

a2test {
	$loopcount = 0;
	report =4;
	$a2tst0pass = 0;
	$a2tst0fail = 0;
	$a2tst1pass = 0;
	$a2tst1fail = 0;
	$a2tst2pass = 0;
	$a2tst2fail = 0;
	$a2tst3pass = 0;
	$a2tst3fail = 0;
	$a2tst4pass = 0;
	$a2tst4fail = 0;
	$a2tst5pass = 0;
	$a2tst5fail = 0;
	$a2tst6pass = 0;
	$a2tst6fail = 0;
	$a2tst7pass = 0;
	$a2tst7fail = 0;
	while ( $loopcount < 3 ) {
		echo ""
		echo "----------------------------------------------------"
		echo "Starting audio test loop" $loopcount
		echo "----------------------------------------------------\n"

		$a2tst = audio -t0
		if($a2tst) {
			$a2tst0fail = $a2tst0fail + 1;
			$failed = 1;
		}
		else {
			$a2tst0pass = $a2tst0pass + 1;
		}
		a2tst = audio -t1
		if($a2tst) {
			$a2tst1fail = $a2tst1fail + 1;
			$failed = 1;
		}
		else {
			$a2tst1pass = $a2tst1pass + 1;
		}
		a2tst = audio -t2
		if($a2tst) {
			$a2tst2fail = $a2tst2fail + 1;
			$failed = 1;
		}
		else {
			$a2tst2pass = $a2tst2pass + 1;
		}
		a2tst = audio -t3
		if($a2tst) 
			$a2tst3fail = $a2tst3fail + 1;
		else
			$a2tst3pass = $a2tst3pass + 1;
		a2tst = audio -t4
		if($a2tst)
			$a2tst4fail = $a2tst4fail + 1;
		else
			$a2tst4pass = $a2tst4pass + 1;
		a2tst = audio -t5
		if($a2tst) {
			$a2tst5fail = $a2tst5fail + 1;
			$failed = 1;
		}
		else {
			$a2tst5pass = $a2tst5pass + 1;
		}
		a2tst = audio -t6
		if($a2tst) {
			$a2tst6fail = $a2tst6fail + 1;
			$failed = 1;
		}
		else {
			$a2tst6pass = $a2tst6pass + 1;
		}
		a2tst = audio -t7
		if($a2tst) 
			$a2tst7fail = $a2tst7fail + 1;
		else
			$a2tst7pass = $a2tst7pass + 1;

		$loopcount = $loopcount + 1;
	}
	echo "audio test 0: 	Pass =" $a2tst0pass"	fail =" $a2tst0fail
	echo "audio test 1: 	Pass =" $a2tst1pass"	fail =" $a2tst1fail
	echo "audio test 2: 	Pass =" $a2tst2pass"	fail =" $a2tst2fail
	echo "audio test 3: 	Pass =" $a2tst3pass"	fail =" $a2tst3fail
	echo "audio test 4: 	Pass =" $a2tst4pass"	fail =" $a2tst4fail
	echo "audio test 5: 	Pass =" $a2tst5pass"	fail =" $a2tst5fail
	echo "audio test 6: 	Pass =" $a2tst6pass"	fail =" $a2tst6fail
	echo "audio test 7: 	Pass =" $a2tst7pass"	fail =" $a2tst7fail
	wait;

	if( $a2tst7pass == 0 ) {
		# Rerun audio -t7 ten more times to get it to pass
		echo "Audio test 7 failed three loops."
		echo "Press ENTER to run audio test 7 for 10 more loops"
		wait;
		$report=1
		$loopcount = 0;
		while ( $loopcount < 10 ) {
			a2tst = audio -t7
			if($a2tst) {
				$a2tst7fail = $a2tst7fail + 1;
			}
			else {
				$a2tst7pass = $a2tst7pass + 1;
				$loopcount = 10
			}
			$loopcount = $loopcount + 1;
		}
		if( $a2tst7pass == 0 ) {
			echo "Audio test 7 FAILED."
			echo "Reject this system with an Audio failure"
			$failed = 1;
		}
	}
}
unix {
	echo "<<<< About to to boot UNIX......>>>>"
	boot dksc(0,1,0)unix;
     }
pm1 {

	echo "----------------------------------------------------\n"
	if(tlb){
		$failed=1;
		wait;
	}
	
	echo "----------------------------------------------------\n"
	if(utlb){
		$failed=1;
		wait;
	}

	echo "----------------------------------------------------\n"
	if(dcache1){
		echo "Failure detected in dcache1 test\n"
		$failed=1;
		wait;
	}
	
	echo "----------------------------------------------------\n"
	
	$tmp=icache1
	if($tmp) {
		echo "Failure detected in icache1 test\n"
		$failed=1;
		wait;
	}
	
	echo "----------------------------------------------------\n"
	
	$tmp=icache2
	if($tmp) {
		echo "Failure detected in icache2 test\n"
		$failed=1;
		wait;
	}

	echo "----------------------------------------------------\n"

	$tmp=scache1
	if($tmp) {
		echo "Failure detected in scache1 test\n"
		$failed=1;
		wait;
	}	

	echo "----------------------------------------------------\n"

	if(hpc3) {
		$failed=1;
		wait;
	}
	echo "----------------------------------------------------\n"
	if(fpu) {
		$failed=1;
		wait;
	}

}

pm1va {
        $cpu_failed=0
        $failed=0
        echo "Voltage changed to 5.25 V\n"
        chg_volt 2;
        ide_delay -s 15;
        pm1
        if ($failed) {
                echo "FAILURES DETECTED IN IP22 at 5.25V\n"
                $cpu_failed=1;
        }

        $failed=0
        echo "Voltage changed to 5.0 V\n"
        chg_volt 1;
        ide_delay -s 15;
        pm1
        if ($failed) {
                echo "FAILURES DETECTED IN IP22 at 5.0V\n"
                $cpu_failed=1;
        }

        if ($cpu_failed) {
                echo "FAILURES DETECTED IN IP22"
        }
        else
        {
                $cpu_failed=0;
                echo "ALL TESTS IN IP22 PASSED\n";
                boot dksc(0,1,0)unix;
        }
}

ip {
	$tmp = 0;
	echo "----------------------------------------------------\n"

	if(int2) {
		$failed=1;
		wait;
	}
	if ($skip_timer !=1) {
		echo "----------------------------------------------------\n"
		if(clock) {
			$failed=1;
			wait;
		}
	}

	echo "----------------------------------------------------\n"

	$tmp = memtest  0xa8800000:0xa9000000
	if ($tmp) {
		$failed=1;
		wait;
	}
	
	
#	if ($dram_needed) {
#	  echo "----------------------------------------------------\n"
#	  echo  "PLEASE WAIT ... "
#	
#	  $tmp = dram -p 0xa8800000#2M;
#	  if($tmp) {
#		$failed=1;
#	  }
#	}	
	echo "----------------------------------------------------\n"
	# it takes about 3 minutes
	echo  "PLEASE WAIT ... THE FOLLOWING TEST TAKES ABOUT 1 1/2 MINUTES"
	
	$tmp = ldram -p;
	
	if($tmp){
		$failed=1;
		wait;
	}
	# illegal i3 e1 e2
	
	# Run new SIMM tests
	echo "----------------------------------------------------\n"
	$tmp = m2;
	if($tmp) {
		echo "Failure detected in extra kh memory tests\n"
		$failed=1;
		wait;
	}

# Duart External tests turned off and internal tests turned on  rwaits 9/23/92
# originally -i0, -i1 on -i2 off, -e0 off -e2, -e3 on
	echo "----------------------------------------------------\n"
	$tmp=duart -i0;
	
	if($tmp) {
		$failed=1;
		wait;
	}
	
	$tmp= duart -i1;
	
	if($tmp) {
		$failed=1;
		wait;
	}
	
	
	echo "----------------------------------------------------\n"
	
	$tmp = led 0;
	
	if($tmp){
		$failed=1;
		wait;
	}
	
	$tmp = led 1;
	
	if($tmp){
		$failed=1;
		wait;
	}
	
	echo "----------------------------------------------------\n"
	
	if (parity) {
		$failed=1;
		wait;
	}
	
	echo "----------------------------------------------------\n"
	$status1 = scsi;
	if($status1) {
		$failed=1;
		wait;
	}
	
	if ($skip_timer != 1) {
		echo "----------------------------------------------------\n"
		if(timer){
		$failed=1;
		}
 	}	
	echo "----------------------------------------------------\n"
	if ($skip_eisa != 1) {
	    if(eisa){
		$failed=1;
		wait;
	    }
	}
	else {
	    echo "Skipping EIU/EISA interface test"
	}

}	
ip22 {
        $skip_eisa = 0;
	$failed = 0;
	$pm1_failed = 0;

	pm1;

	if($failed) {
		$pm1_failed = 1;
		wait;
	}

	cpusc;
	ip;

	echo "----------------------------------------------------\n"

	
	if($failed) {
		echo "FAILURES DETECTED IN IP22\n"
		$cpu_failed=1;
		}
	else
		{
		$cpu_failed=0;
		echo "ALL TESTS IN IP22 PASSED\n";
	}
	fi
}

ip22va {

	$skip_timer = 0;
        $skip_eisa = 0;
	$failed =0;
	echo "\n*****************************\n"
	echo "Voltage changed to 4.75V\n"
	echo "\n*****************************\n"
	chg_volt 0;
	ide_delay -s 15;
        pm1;
	cpusc;
	ip;
	echo "\n*****************************\n"
	echo "Voltage changed to 5.25 V\n"
	echo "\n*****************************\n"
	chg_volt 2;
	ide_delay -s 15;
	pm1;
	cpusc;
	ip;
	chg_volt 1;
	ide_delay -s 15;

	echo "----------------------------------------------------\n"

	
	if($failed) {
		echo "FAILURES DETECTED IN IP22\n"
		$cpu_failed=1;
		}
	else
		{
		$cpu_failed=0;
		echo "ALL TESTS IN IP22 PASSED\n";
		boot dksc(0,1,0)unix;
	}
	fi
}
ip22s {
	
        $skip_eisa = 1;
        ip22
}

a2testva {
	chg_volt 0;
	ide_delay -s 15;
	a2test;
	chg_volt 1;
	ide_delay -s 15;
	chg_volt 2;
	ide_delay -s 15;
	a2test;
	chg_volt 1;
	ide_delay -s 15;
}


# Start of GR2 diagnostics 
# Initialize variables used by GR2.
$stride_failed=0 ;
$zb_failed=0 ;
$gr2_failed=0;
$chkbt457_failed=0;
$bp_failed=0;
$shramre3_failed=0;
$cpushram_failed=0;
$cpure3_failed=0;
$ctxsw_failed=0;
$vdma_failed=0;
$quad_failed=0;
$fourquad_failed=0;
$mon=0;

$test_xmap_failed = 0;
$test_xmap_clut_failed = 0;

gr2_vhwinit {
	gr2_videoclk 0x47
	if ($mon ==1 ) gr2_initclock 0x132;
	else gr2_initclock 0x107;
	fi
	gr2_wrconfig 0x0
	gr2_delay 3
	gr2_wrconfig 0x1
	gr2_vinitdac
}

gr2_initre {
	$a = gr2_getGR2ver;
	if ($a < 4) gr2_wrfifo 0 0;
	else if ($a == 4) gr2_wrfifo 0 1;
	else gr2_wrfifo 0 2;
}

gr2_initsys {
	gr2_reset
	gr2_vhwinit
	$mon = gr2_getMonType;
	if ($mon == 1) gr2_initvc1 4;
	else gr2_initvc1 20;
	fi
	gr2_xcol
	gr2_inithq
	gr2_load_ucode ge
	gr2_load_ucode hq
	gr2_unstall
	gr2_initre
}

clear {
	gr2_wrfifo 35 0
	gr2_wrfifo 6 0
}

gr2_quad {
	gr2_wrfifo 33 0
}

gr2_fourquad {
	gr2_wrfifo 34 0
}

test_xmap {
	gr2_initsys;
	$a=gr2_txmap;
	return $a;
}

test_xmap_clut {
	gr2_initsys;
	$a=gr2_txmap_clut;
	return $a;
}

gr2_vdma {
	gr2_initsys;
	$b=gr2_cachefdma 32 1;
	$b=$b+gr2_cachefdma 256 1;
	$b=$b+gr2_cachefdma 512 1;
	$b=$b+gr2_cachefdma 128 1;
	$b=$b+gr2_yzoomdma ;
	$b=$b+gr2_yzoomdma 32 32;
	$b=$b+gr2_yzoomdma 128 128;
	$b=$b+gr2_yzoomdma 256 256;
	$b=$b+gr2_stridedma;
	$b=$b+gr2_stridedma 32 32;
	$b=$b+gr2_stridedma 256 1;
	$b=$b+gr2_stridedma 512 0;

	return $b;
}

gr2 {
# Too verbose with report=4
	report=3;

	$stride_failed=0 ;
	$zb_failed=0 ;
	$gr2_failed=0;
	$chkbt457_failed=0;
	$bp_failed=0;
	$shramre3_failed=0;
	$cpushram_failed=0;
	$cpure3_failed=0;
	$ctxsw_failed=0;
	$vdma_failed=0;
	$quad_failed=0;
	$fourquad_failed=0;

	$test_xmap_failed = 0;
	$test_xmap_clut_failed = 0;

	gr2_reset;
	buffon


# HQ2 internal register 19  must read 0xdeadbeef
	report = 2;
	gr2_rdhqint 19;
	report = 1;

# Test VC1 SRAM 
	gr2_vhwinit
	report =3 
	if (gr2_vc1_sram) {
		echo "VC1 SRAM test failed";
		resetcons;
		buffoff;
        	wait;
		$err = 1;
	}
# Test ram 0 at Ge7 at 0
	$tmp = gr2_tram 0;
	if ($tmp) {
		echo "GE7 at 0 RAM0 test failed"
		resetcons;
		buffoff;
		$err = 1;
        	wait;
	}
# Test ram 0 at Ge7 at 1
	$tmp = gr2_tram 1;
	if ($tmp) {
		echo "GE7 at 1 RAM0 test failed"
		resetcons;
		buffoff;
		$err = 1;
        	wait;
	}
# Test ram 0 at Ge7 at 2
	$tmp = gr2_tram 2;
	if ($tmp) {
		echo "GE7 at 2 RAM0 test failed"
		resetcons;
		buffoff;
		$err = 1;
        	wait;
	}
# Test ram 0 at Ge7 at 3
	$tmp = gr2_tram 3 ;
	if ($tmp) {
		echo "GE7 at 3 RAM0 test failed"
		resetcons;
		buffoff;
        	wait;
		$err = 1;
	}
# Test ram 0 at Ge7 at 4
	$tmp = gr2_tram 4 ;
	if ($tmp) {
		echo "GE7 at 4 RAM0 test failed"
		resetcons;
		buffoff;
        	wait;
		$err = 1;
	}
# Test ram 0 at Ge7 at 5
	$tmp = gr2_tram 5 ;
	if ($tmp) {
		echo "GE7 at 5 RAM0 test failed"
		resetcons;
		buffoff;
        	wait;
		$err = 1;
	}
# Test ram 0 at Ge7 at 6
	$tmp = gr2_tram 6 ;
	if ($tmp) {
		echo "GE7 at 6 RAM0 test failed"
		resetcons;
		buffoff;
        	wait;
		$err = 1;
	}
# Test ram 0 at Ge7 at 7
	$tmp = gr2_tram 7 ;
	if ($tmp) {
		echo "GE7 at 7 RAM0 test failed"
		resetcons;
		buffoff;
        	wait;
		$err = 1;
	}
# Test shram  
	$tmp = gr2_tram 8 ;
	if ($tmp) {
		echo "Share ram test failed "; 
		resetcons;
		buffoff;
        	wait;
		$err = 1;
	}
# Test Hq2uram
	$tmp = gr2_tram 9 ;
	if ($tmp) {
		echo "HQ2 uram test failed "; 
		resetcons;
		buffoff;
        	wait;
	    	$err = 1;
	}
# Test ge7uram
	$tmp = gr2_tram 10;
	if ($tmp) {
		echo "GE7 uram test failed "; 
		resetcons;
		buffoff;
        	wait;
	    	$err = 1;
	}
	gr2_initsys;
	clear;

# Test HQ2
	if(gr2_hq2test) {
		echo "HQ2 test failed "; 
		resetcons;
		buffoff;
        	wait;
	    	$err = 1;
	}
# Test shareram using Ucode
	if (gr2_shram) {
		echo "Shram test failed"
		resetcons;
		buffoff;
        	wait;
	    	$err = 1;
	}
# Test internal GE7 ram
	if (gr2_ram12) {
		echo "GE7 internal test failed"
		resetcons;
		buffoff;
        	wait;
	    	$err = 1;
	}
# Test seedrom 
	if (gr2_seedrom) {
		echo "GE7 seedrom test failed"
		resetcons;
		buffoff;
        	wait;
	    	$err = 1;
	}
# Test the squaroot rom
	if (gr2_sqrom) { 
		echo "GE7 sqrom test failed"
		resetcons;
		buffoff;
        	wait;
	    	$err = 1;
	}
	gr2_initsys ;

# Test Ge 7 bus
	if (gr2_gebus) {
		echo "GE7 bus test failed"
		resetcons;
		buffoff;
        	wait;
	    	$err = 1;
	}

# Test ge floating point unit
	if (gr2_gefloat) {
		echo "GE7 floating point test failed"
		resetcons;
		buffoff;
        	wait;
	    	$err = 1;
	}
	gr2_initsys;
	clear;

	if ( $err ) {
		echo "HQ & GE Tests failed\n";
		resetcons;
		buffoff;
		wait;
		$err=0
		$gr2_failed=1
	}
	else {
		resetcons;
		buffoff;
		echo "HQ & GE Tests passed\n"
	}
	buffon

# Test bt457 
	if (gr2_chkbt457) {
		resetcons;
		buffoff;
        	wait;
	    	$chkbt457_failed = 1;
	    	$err=1;
	}
# Test bitplane VM2
	gr2_initsys
	if (gr2_bp) {
		$bp_failed = 1;
		$err=1;
		resetcons;
		buffoff;
	    wait;
	}
# Test Shared ram and Re
	gr2_initsys
	$tmp = gr2_shramre3
	if ($tmp) {
		resetcons;
		buffoff;
        	wait;
	    	$shramre3_failed =1;
	    	$err=1;
	}
# Test DMA between host and GE7 shared ram
	gr2_initsys
	clear
	$tmp = gr2_cpushram
	if ($tmp) {
		resetcons;
		buffoff;
        	wait;
	    	$cpushram_failed =1;
	    	$err=1;
	}
# Test DMA between host and and RE3
	resetcons
	buffon
	gr2_initsys
	$tmp = gr2_cpure3
	if ($tmp) {
		resetcons;
		buffoff;
        	wait;
	    	$cpure3_failed =1;
	    	$err=1;
	}
# Test GE7 context switching
	if(gr2_ctxsw) {
		resetcons;
		buffoff;
        	wait;
	    	$ctxsw_failed =1;
	    	$err=1;
	}
	clear;
# Test quad drawing
	$tmp = gr2_quad
	if ($tmp) {
		resetcons;
		buffoff;
        	wait;
	    	$quad_failed =1;
	    	$err=1;
	}
	$tmp = gr2_fourquad
	if ($tmp){
		resetcons;
		buffoff;
		wait;
	    	$fourquad_failed = 1;
	    	$err=1;
	}
	clear;
	if ($chkbt457_failed) echo "Bt457 test failed";
	if ($bp_failed)  echo "bitplane test failed";
	if ($shramre3_failed) echo "shramre3 test failed"
	if ($cpushram_failed) echo "CPU shram test failed";
	if ($cpure3_failed) echo "cpure3 test failed ";
	if ($ctxsw_failed) echo "context switching test failed ";
	if ($vdma_failed) echo "vdma controller test failed ";
	if ($quad_failed) echo "quad test failed";
	if ($fourquad_failed) echo "fourquad test failed";

	if ($err)
	{
	    if (!$report) {
		emfail 2;
		wait;
		exit;
	    }	
	    echo "******  PRESS RETURN TO CONTINUE OR ^C TO EXIT ************"
	    $err=0
	    $gr2_failed=1
	    resetcons;
	    buffoff;
	    wait;
	}
	else {
	    resetcons;
	    buffoff;
	    echo "BT457, Bit-Plane, DMA and QUADs Tests Passed.\n"
	}
	buffon

# Test stridedma between shram and re3
	gr2_initsys
	$tmp = gr2_stride
	if ($tmp)  {
	    $stride_failed =1 ;
	    $err=1;
	    resetcons;
	    buffoff;
	    wait;
	}
# Test Zbuffer
	gr2_initsys
	$tmp=gr2_zb
	if($tmp)  {
	    $zb_failed =1;
	    $err=1;
	    resetcons;
	    buffoff;
	    wait;
	}
	resetcons
	buffoff
	echo "************************* RESULTS ********************************"
	if ($stride_failed)  {
	    echo "stride test failed";
	    $gr2_failed = 1;
	    wait;
	}
	if ($zb_failed) { 
	    echo "Zbuffer test failed";
	    $gr2_failed = 1;
	    wait;
	}
	if (!$gr2_failed) echo "Stride DMA, and Z-Buffer Test Passed.\n"
# Test Xmap 
	buffon
	echo "testing XMAP"
	if (test_xmap) {
	    $test_xmap_failed =1;
	    $err=1;
	    resetcons;
	    buffoff;
	    wait;
	}
#Test Xmap CLUT 
	if (test_xmap_clut) {
	    $test_xmap_clut_failed =1;
	    $err=1;
	    resetcons;
	    buffoff;
	    wait;
	}
	resetcons
	buffoff
	echo "************************* RESULTS ********************************"
	if ($test_xmap_failed) {
	    echo "test_xmap test failed";
	    $gr2_failed = 1;
	}
	if ($test_xmap_clut_failed) {
	    echo "test_xmap_clut test failed";
	    $gr2_failed = 1;
	}
	if (!$err) echo "XMAPs Test Passed.\n"
	if ($gr2_failed) {
		echo "ERROR: Failure detected on graphics board."
		wait;
	}
	else echo "graphics board tests passed"
	fi
	echo " *****************END OF THE TEST *****************"

	# Restore verbosity
	report=4
}

gr2_all {
        $tmp = gr2_setboard 0;
        if ($tmp) {
			
		echo "Testing gr3/gu1 in slot 0."
                gr2;
        	if ($gr2_failed) {
			echo "ERROR: Failure detected on gr3/gu1 in slot 0."
		}
        }

        $tmp = gr2_setboard 1;
        if ($tmp) {
		echo "Testing gr3/gu1 in slot 1."
                gr2;
	        if ($gr2_failed) {
			echo "ERROR: Failure detected on gr3/gu1 in slot 1."
		}
        }
}
# END OF GR2 SUPPORT

#Start of Galileo diagnostics
CheckSlot {
	$tmp = mg_setboard 0;
	if ($tmp) {
		echo "IMPACT Board Found in slot 0."
		return 0
	}

	$tmp = mg_setboard 1;
	if ($tmp) {
		echo "IMPACT Board Found in slot 1."
		return 0
	}

        $tmp = gr2_setboard 0;
        if ($tmp) {
		echo "GR2 Board Found in slot 0."
		return 0
        }

        $tmp = gr2_setboard 1;
        if ($tmp) {
		echo "GR2 Board Found in slot 1."
		return 0
        }

	$tmp = ng1_setboard 0;
	if ($tmp) {
		echo "NG1 Board Found in slot 0."
		return 0
	}

	$tmp = ng1_setboard 1;
	if ($tmp) {
		echo "NG1 Board Found in slot 1."
		return 0
	}
}

cc1 {
	CheckSlot;
	echo "CC1 Frame Buffer Test";
	$status =ev1_init ;
	if ($status)  {
		echo " Galileo Board Initialization FAILED"
		return ($status);
	}
	echo "Galileo Board Initialized Properly"
	echo "CC1 Memory Test";
	$status = cc1_mem;
	if ($status)  {
		wait;
	}
	echo "CC1 (DMA MODE)Memory Test";
	$status = cc1_dma;
	if ($status) {
		wait;
	}
}

ab1_red {
	CheckSlot;
	$status =ev1_init ;
	if ($status)  {
		echo " Galileo Board Initialization FAILED"
		return ($status);
	}
	echo "Galileo Board Initialized Properly"
	echo "AB1 Red Channel Memory Test ";
	$status = ab1_rmem;
	if ($status)
		wait;
}

ab1_blue {
	CheckSlot;
	$status =ev1_init ;
	if ($status)  {
		echo " Galileo Board Initialization FAILED"
		return ($status);
	}
	echo "Galileo Board Initialized Properly"
	echo "AB1 Blue Channel Memory Test ";
	$status = ab1_bmem;
	if ($status)
		wait;
}

ab1_green {
	CheckSlot;
	$status =ev1_init ;
	if ($status)  {
		echo " Galileo Board Initialization FAILED"
		return ($status);
	}
	echo "Galileo Board Initialized Properly"
	echo "AB1 Green Channel Memory Test ";
	$status = ab1_gmem;
	if ($status)
		wait;
}

ab1 {
	CheckSlot;
	$status =ev1_init ;
	if ($status)  {
		echo " Galileo Board Initialization FAILED"
		return ($status);
	}
	echo "Galileo Board Initialized Properly"
	echo "AB1 Memory Test (Red, Green, Blue)";
	$status = ab1_mem;
	if ($status)  {
		wait;
	}
}

gfxset {
	mg_vc3init 0x5;
	mg_progcmap 0x0;
}

kv {
	CheckSlot;
	$status =ev1_init ;
	if ($status)  {
		echo " Galileo Board Not Found"
		return ($status);
	}
	echo "Galileo Board Initialized Properly"
	echo "Test CC1 Display Control Bus";
        $status = cc1_dcb;
        if ($status)
                wait;
        echo "Test AB1 Display Control Bus";
        $status = ab1_dcb;
        if ($status)
                wait;
	echo "CC1 Memory Test";
	cc1;
	echo "AB1 Memory Test (Red, Green, Blue)";
	ab1;
}


kva {
	CheckSlot;

    	echo "Voltage changed to 5.25 V\n"
	chg_volt 1;
	ide_delay -s 15;
    	chg_volt 2;
	ide_delay -s 15;
	kv;

    	echo "Voltage changed to 5.0 V\n"
    	chg_volt 1;
	ide_delay -s 15;
	kv;

	unix;
}
#END of Galileo diagnostics
#START of the COSMO diagnostics

cosmo {
        echo "    "
        echo "Test COSMO for Existence"
        $cosmo_status = cosmo_probe;
        if ($cosmo_status) {
                echo "COSMO Board NOT FOUND!"
                return ($cosmo_status);
        }
        echo "    "
        echo "Testing DMAN Registers"
        if ((cosmo_DMAN_reg) && $stoponerr)
                wait;
        echo "    "
        echo "Testing CAROB Registers"
        if ((cosmo_CAROB_reg) && $stoponerr)
                wait;
        echo "    "
        echo "Testing I2C/8485 Registers"
        if ((cosmo_I2C_reg) && $stoponerr)
                wait;
        echo "    "
        echo "Testing IDT FIFO and Control Registers"
        if ((cosmo_idt) && $stoponerr)
                wait;
        echo "    "
        echo "Testing CL560 Registers"
        if ((cosmo_CL560_reg) && $stoponerr)
                wait;
        echo "    "
        echo "Testing CL560 CODEC Fifo"
        if ((cosmo_CL560_codec) && $stoponerr)
                wait;
        echo "    "
        echo "Testing Field Buffer FIFO Using PIO"
        if ((cosmo_fb_pio) && $stoponerr)
                wait;
        echo "    "
        echo "Testing Field Buffer FIFO Using DMA"
        if ((cosmo_fb_dma) && $stoponerr)
                wait;
        echo "    "
        echo "Testing Compression of an Image"
        if ((cosmo_comp) && $stoponerr)
                wait;
        echo "    "
	echo "Testing Decompression of an Image"
        if ((cosmo_decomp) && $stoponerr)
                wait;
}

cosmo_va {
        echo "Voltage changed to 5.25 V\n"
        chg_volt 2;
        ide_delay -s 15;
        cosmo

        echo "Voltage changed to 5.0 V\n"
        chg_volt 1;
        ide_delay -s 15;
        cosmo
}

cosmo_ex {
        echo "Voltage changed to 5.25 V\n"
        chg_volt 2;
        ide_delay -s 15;
        cosmo

        echo "Voltage changed to 5.0 V\n"
        chg_volt 1;
        ide_delay -s 15;
        cosmo
        unix
}

cosmo_qk {
        echo "COSMO diags plus UNIX boot\n"
        cosmo
        unix
}

#END of COSMO diagnostics


# Initialize variables used by ng1.
$err=0
$ng1failed=0
$ng1_rex3_failed=0
$ng1_bt445_failed=0
$ng1_cmap_failed=0
$ng1_xmap9_failed=0
$ng1_vc2_failed=0
$ng1_vram_failed=0
$ng1_cid_failed=0
$ng1_dma_failed=0
$ng1_dma_result=-1

# Start of NG1 diagnostics 

ng1_script {
	$ng1failed=0;
	$err=0;
	buffon

# Test Rex3
	if(ng1_rexregs) {
		if (!$report) {
			emfail 2;
			wait;
			exit;
		}
		$ng1_rex3_failed = 1;
		$err=1;
	}
# Test bt445
	if(ng1_bt445test) {
		if (!$report) {
			emfail 2;
			wait;
			exit;
		}
		$ng1_bt445_failed =1;
		$err=1;
	}
# Test cmap
	if(ng1_cmaptest) {
		if (!$report) {
			emfail 2;
			wait;
			exit;
		}
		$ng1_cmap_failed = 1;
		$err=1;
	}
# Test Xmap9
	if(ng1_xmap9test) {
		if (!$report) {
			emfail 2;
			wait;
			exit;
		}
		$ng1_xmap9_failed = 1;
		$err=1;
	}
# Test VC2 
	if(ng1_vc2test) {
		if (!$report) {
			emfail 2;
			wait;
			exit;
		}
		$ng1_vc2_failed = 1;
		$err=1;
	}
# Test VRAM
	if(ng1_vram) {
		 if (!$report) {
			emfail 2;
			wait;
			exit;
		}
		$ng1_vram_failed = 1;
		$err=1;
	}
# Test CID
	if(ng1_cid) {
		if (!$report) {
			emfail 2;
			wait;
			exit;
		}
		$ng1_cid_failed = 1;
		$err=1;
	}
# Change Bus width to 64 & run DMA tests
	ng1_setvisual 0;
	ng1_color 0;
	ng1_block 0 0 105 105;
	ng1_buswidth 64;
	ng1_rwpacked 1;
	ng1_rwdouble 1;
	$ng1_dma_result=ng1_dmatest 0 0 100 100;
	if($ng1_dma_result == -1) {
		if (!$report) {
			emfail 2;
			wait;
			exit;
		}
		$ng1_dma_failed = 1;
		$err=1;
	}
	ng1_buswidth 32;
	resetcons
	buffoff
	echo "************************* RESULTS ******************************"

	if($ng1_rex3_failed) {
		echo "Rex3 Register r/w tests failed.";
		$ng1failed = 1;
	}
	if($ng1_cmap_failed) {
		echo "Cmap r/w tests failed.";
		$ng1failed = 1;
	}
	if($ng1_xmap9_failed) {
		echo "Xmap9 r/w tests failed.";
		$ng1failed = 1;
	}
	if($ng1_vc2_failed) {
		echo "VC2 r/w tests failed.";
		$ng1failed = 1;
	}
	if($ng1_vram_failed) {
		echo "VRAM test failed.";
		$ng1failed = 1;
	}
	if($ng1_cid_failed) {
		echo "CID test failed.";
		$ng1failed = 1;
	}
	if($ng1_dma_failed) {
		echo "DMA tests failed.";
		$ng1failed = 1;
	}

	if (!$err) echo "REX3, CMAP, XMAP9, VC2, VRAM, CID & DMA Test Passed.\n"
	if ($ng1failed) echo "ERROR: Failure detected on NG1 graphics board."
	else echo "NG1 graphics board tests passed"
	fi
	echo " *****************END OF THE TEST *****************"
}

ng1 {
# test board 0 only (mostly for Indy)
	ng1_probe;
	$tmp = ng1_setboard 0;
	if ($tmp)
		ng1_script;
}

ng1_all {
        $tmp = ng1_setboard 0;
        if ($tmp) {
		echo "Testing NG1/LG3 in slot 0."
                ng1_script;
        	if ($ng1failed) {
			echo "ERROR: Failure detected on gfx in slot 0."
		}
        }

        $tmp = ng1_setboard 1;
        if ($tmp) {
		echo "Testing NG1/LG3 in slot 1."
                ng1_script;
	        if ($ng1failed) {
			echo "ERROR: Failure detected on gfx in slot 1."
		}
        }
}

# END OF NG1

ng1va {

	echo "\n*****************************\n"
	echo "Voltage changed to 5.25V\n"
	echo "\n*****************************\n"
	chg_volt 1;
	ide_delay -s 15;
	chg_volt 2;
	ide_delay -s 15;
	ng1_all;
	echo "\n*****************************\n"
	echo "Voltage set back to 5.0V\n"
	echo "\n*****************************\n"
	chg_volt 1;
	ide_delay -s 15;
}

# END OF NG1VA


# START OF MGRAS TESTS
$mgfailed = 0;

delay {
	ide_delay -s 2;
}

allsetup {
        gioslot
	mg_gfxreset;
	delay;
	mg_set_0ge;
	delay;
	mg_reset;
	delay;
	delay;
	resetcons
	if (!mg_gfxconsole) {
		mg_sync_repp
        	mg_sync_pprdram
        	mg_xmapinit
		mg_rdram_ccsearch
        	mg_initppregs
		enabdisp	
		mg0_clear_color
	}
}
hq3test {
	echo "------	Executing Hq3 Test Suite 	------"
	buffon;
	mg_gfxreset;
	delay;
	mg_set_0ge
        $status  	= 	mg_hq3_initcheck;
#        if ($status) {
#                $failed = 1;
#		echo "mg_hq3_initcheck";
#                return(-1);
#        }


        $status  	= 	mg_hq3;
        if ($status) {
                $failed = 1;
                return(-1);
        }
	mg_gfxreset;
	delay;
     	$status  	= 	mg_hq3_cp;

     	$status  	= 	mg_hq3_converter;
     	if ($status) {
                $failed = 1;
                wait ;
        }

        $status  	= 	mg_hq3_cfifo;
        if ($status) {
                $failed = 1;
                return(-1);
        }

	echo "********	Hq3 Test Suite Execution Completed 	********\n"
	resetcons; buffoff
}


# GE11 test scripts 


gioslot_2GE {
	$tmp = mg_setboard 0;
	if ($tmp) {
		echo "Mgras Gfx init to GIO Slot 0 "
		mg_setboard 0 2;
	}
	else {
		$tmp = mg_setboard 1;
		if ($tmp) {
			echo "Found boards in slot 1"
			mg_setboard 1 2;
	        }
		else {
			echo "No boards found in slot 0 or slot 1"
		}
	}
}
ge0_ucode {
	mg_reset;
	$ge_no = mg_queryGE;
	if ($ge_no == 0)
	{
		echo "GE11 doesn't exist\n";
	}
	else if ($ge_no == 1){
		echo "\ntesting GE0 Ucode memory....\n";	
      
		gioslot;
		buffon;
		mg_gfxreset;
		mg_set_ge 0;
		$status = mg_ge_ucode_a
		if ($status) {
			$failed = 1;
			return(-1);
		}
		$status = mg_ge_ucode_m
		if ($status) {
			$failed = 1;
			return(-1);
		}
	     }
             else if ($ge_no == 2) {
		echo "\ntesting GE0 Ucode memory....\n";	
      
		gioslot_2GE;
		buffon;
		mg_gfxreset;
		mg_set_ge 0;
		$status = mg_ge_ucode_a
		if ($status) {
			$failed = 1;
			return(-1);
		}
		$status = mg_ge_ucode_m
		if ($status) {
			$failed = 1;
			return(-1);
		}
	     }	
}
ge1_ucode {
	mg_reset;
	$ge_no = mg_queryGE;	
	if ($ge_no == 2) 
	{
		echo "\ntesting GE1 Ucode memory....\n";	
		gioslot_2GE;
		buffon;
		mg_gfxreset;
		mg_set_ge 1;
		$status = mg_ge_ucode_a
		if ($status) {
			$failed = 1;
			return(-1);
		}
		$status = mg_ge_ucode_m
		if ($status) {
			$failed = 1;
			return(-1);
		}
	}
	else {
		echo "GE11 doesn't exist\n";
	     }
}
	
	
getest {
#	echo "------	Executing GE COREs Test Suite 	------"
#        $status 	=	mg_ge_ucode_a;
#        if ($status) {
#                $failed = 1;
#                return(-1);
#        }
#
#        $status 	=	mg_ge_ucode_m;
#        if ($status) {
#                $failed = 1;
#                return(-1);
#        }

#        $status 	=	mg_hq3_dnload;
#        $status 	=	mg_ge11_dnload;
#        $status 	=	mg_ge_go;

        $status 	=	mg_ge_inst;
	if ($status) {
                $failed = 1;
                return(-1);
        }


        $status 	=	mg_ge_cram;
	if ($status) {
                $failed = 1;
                return(-1);
        }

        $status 	=	mg_ge_eram;
	if ($status) {
                $failed = 1;
                return(-1);
        }

        $status 	=	mg_ge_wram;
	if ($status) {
                $failed = 1;
                return(-1);
        }


        $status 	=	mg_ge_alu;
	if ($status) {
                $failed = 1;
                return(-1);
        }

        $status 	=	mg_ge_dreg;
	if ($status) {
                $failed = 1;
                return(-1);
        }

        $status 	=	mg_ge_dma;
	if ($status) {
               $failed = 1;
                return(-1);
        }


	echo "********	GE Test Suite Execution Completed 	********"

}



ge0_setup {
	mg_reset;
	$ge_no = mg_queryGE;
	if ($ge_no == 0)
	{
		echo "No GE11 exists\n";
	}
	if ($ge_no == 2)  {
		echo "------	Executing GE0 test setup 	------"
		gioslot_2GE;
		mg_hq3_dnload;
		mg_gfxreset;
		mg_set_ge 0;
		mg_ge11_dnload;
		mg_ge_go;
	 }
	if ($ge_no == 1)  {

		echo "------	Executing GE0 test setup 	------"
		gioslot_2GE;
		mg_hq3_dnload;
		mg_gfxreset;
		delay;
		mg_ge11_dnload;
		mg_set_ge 0;
		mg_ge_go;
	     }
#	buffoff; resetcons;
}
ge0_test {
	mg_reset;
	$ge_no = mg_queryGE;
	if($ge_no == 0)
	{
		 echo "No GE11 exists\n";
	}
	else {

		echo "------	Executing GE Test Suite on :: GE0 	------"
		ge0_ucode;
		ge0_setup;
		buffon
		mg_gfxreset
		delay;
		
	mg_pon_puts -s "testing ge0_core....\n\r";
		$status 	=	getest;
       		if ($status) {
       	        	 $failed = 1;
                return(-1);
        	}
	}
#	buffoff; resetcons;
}

ge1_setup {
	mg_reset;
	$ge_no = mg_queryGE;
	buffon;
	if($ge_no == 2)
	{
		echo "------	Executing GE1 test setup 	------"
		gioslot_2GE;
		buffon
		mg_gfxreset;
		mg_set_2ge;
		mg_set_ge 0;
		mg_hq3_dnload;
		mg_ge11_dnload;
		mg_ge_go;
		mg_set_ge 1;
		mg_ge11_dnload;
		mg_ge_go;
		mg_gfxreset;
		mg_set_2ge;
		mg_set_ge 0;
		mg_nextge;
		mg_set_ge 1;
	}
	if($ge_no == 1)
	{
		echo "GE11_1 doesn't exist\n";
	}
	buffoff; resetcons;
}

ge1_test {
	mg_reset;
	$ge_no = mg_queryGE;
	buffon;
	if($ge_no == 2)
	{
		mg_gfxreset;
		echo "------	Executing GE Test Suite  :: GE1 	------"
		ge1_ucode;
		ge1_setup;
		$status 	=	getest;
        	if ($status) {
                	$failed = 1;
                	return(-1);
       		 }
	}
	if($ge_no == 1)
	{
		echo "GE11_1 doesn't exist\n";
	}
	buffoff; resetcons;
}
tge_setup {
	mg_reset;
	$ge_no = mg_queryGE;
	if ($ge_no  == 2)
	{
		echo "=== tge_setup ===\n";
		gioslot_2GE;
		buffon;
		mg_hq3_dnload;
		mg_gfxreset;
		delay;
		mg_set_ge 0;
		mg_ge11_dnload;
		mg_ge_go;
		mg_set_ge 1;
		mg_ge11_dnload;
		mg_ge_go;
		mg_set_ge 0;
		resetcons; buffoff;
	}
	if($ge_no == 1)
	{
		echo "Setup GE11_0 only\n";
		ge0_setup;
	}
	if($ge_no == 0)
	{
		echo "NO ge11 exists\n";
	}
	buffoff; resetcons;
}

tge_test {
	mg_reset;
	$ge_no = mg_queryGE;
	if ($ge_no == 2)
	{
	mg_pon_puts -s "testing ge0_ucode....\n\r";
		ge0_ucode;
	mg_pon_puts -s "testing ge1_ucode....\n\r";
		ge1_ucode;
	mg_pon_puts -s "testing tge_setup....\n\r";
		tge_setup;
		gioslot_2GE;
		buffon
		mg_gfxreset
		delay;
		mg_set_2ge;
		mg_set_ge 0
		mg_ge_go
		mg_set_ge 1
		mg_ge_go
		mg_set_ge 0
		echo " testing GE0 COREs....\n";
		$status = getest
		if ($status) {
			$failed = 1;
			resetcons; buffoff;
			return (-1);
		}
		mg_nextge;
		mg_set_ge 1;
		mg_ge_go
		echo " testing GE1 COREs....\n";
		$status = getest
		if ($status) {
			$failed = 1;
			resetcons; buffoff;
			return (-1);
		}
		resetcons; buffoff
	}
	if ($ge_no == 1) 
	{
		echo "Test only GE11_0\n";
		$status = ge0_test;
		if ($status) {
			$failed = 1;
			resetcons; buffoff;
			return (-1);
		}
		resetcons; buffoff
	}
	if ($ge_no == 0)
	{
		echo "No GE11 exists\n";
		ge0_test;
	}
}
# End of Ge test scripts

dactest {
	echo "------	Executing DAC   Test Suite 	------"
        $status 	=	mg_dacreset;
        if ($status) {
                $failed = 1;
                return(-1);
        }


        $status 	=	mg_dacmodereg;
        if ($status) {
                $failed = 1;
                return(-1);
        }


        $status 	=	mg_dacreset;
        if ($status) {
                $failed = 1;
                return(-1);
        }

        $status 	=	mg_dacaddrreg;
        if ($status) {
                $failed = 1;
                return(-1);
        }

        $status 	=	mg_dacreset;
        if ($status) {
                $failed = 1;
                return(-1);
        }

        $status 	=	mg_clrpaletteaddrUniq;
        if ($status) {
                $failed = 1;
                return(-1);
        }

        $status 	=	mg_dacreset;
        if ($status) {
                $failed = 1;
                return(-1);
        }

        $status 	=	mg_clrpalettewalkbit;
        if ($status) {
                $failed = 1;
                return(-1);
        }

        $status 	=	mg_dacreset;
        if ($status) {
                $failed = 1;
                return(-1);
        }

        $status 	=	mg_clrpalettepatrn;
        if ($status) {
                $failed = 1;
                return(-1);
        }

        $status 	=	mg_dacreset;
        if ($status) {
                $failed = 1;
                return(-1);
        }

	echo "********	DAC Test Suite Execution Completed 	********"
}

vc3test {
	echo "------	Executing VC3   Test Suite 	------"
        $status 	=	mg_vc3reset;
        if ($status) {
                $failed = 1;
                return(-1);
        }

        $status 	=	mg_vc3internalreg;
        if ($status) {
                $failed = 1;
                return(-1);
        }

        $status 	=	mg_vc3addrsbus;
        if ($status) {
                $failed = 1;
                return(-1);
        }

        $status 	=	mg_vc3databus;
        if ($status) {
                $failed = 1;
                return(-1);
        }

        $status 	=	mg_vc3addrsuniq;
        if ($status) {
                $failed = 1;
                return(-1);
        }

        $status 	=	mg_vc3patrn;
        if ($status) {
                $failed = 1;
                return(-1);
        }


	echo "********	VC3 Test Suite Execution Completed 	********"
}

cmaptest {
	echo "------	Executing CMAP   Test Suite 	------"
        $status 	=	mg_vc3init 0x555;
        if ($status) {
                $failed = 1;
		return (-1);
        }


        $status 	=	mg_cmaprev;
        if (!$status) {
                $failed = 1;
		return (-1);
        }


        $status 	=	mg_cmapdatabus 0;
        if ($status) {
                $failed = 1;
		return (-1);
        }

        $status 	=	mg_cmapaddrsbus 0;
        if ($status) {
                $failed = 1;
		return (-1);
        }

        $status 	=	mg_cmappatrn 0;
        if ($status) {
                $failed = 1;
		return (-1);
        }

        $status 	=	mg_cmapaddrsuniq 0;
        if ($status) {
                $failed = 1;
		return (-1);
        }


        $status 	=	mg_cmapdatabus 1;
        if ($status) {
                $failed = 1;
		return (-1);
        }


        $status 	=	mg_cmapaddrsbus 1;
        if ($status) {
                $failed = 1;
		return (-1);
        }

        $status 	=	mg_cmappatrn 1;
        if ($status) {
                $failed = 1;
		return (-1);
        }

        $status 	=	mg_cmapaddrsuniq 1;
        if ($status) {
                $failed = 1;
		return (-1);
        }

        $status 	=	mg_cmapuniqtest;
        if ($status) {
                $failed = 1;
		return (-1);
        }


	echo "********	CMAP Test Suite Execution Completed 	********"
}


bkend {
	buffon;
	echo "------	Executing Back End   Test Suite 	------"
        $status 	=	dactest;
        if ($status) {
                $failed = 1;
                return(-1);
        }

	mg_pon_puts -s "testing vc3test....\n\r";
        $status 	=	vc3test;
        if ($status) {
                $failed = 1;
                return(-1);
        }

	mg_pon_puts -s "testing cmaptest....\n\r";
#        $status 	=	cmaptest;
        if ($status) {
                $failed = 1;
                return(-1);
        }

#        $status 	=	mg_reset; 
        if ($status) {
                $failed = 1;
                return(-1);
        }
	delay;

	mg_pon_puts -s "testing mg_xmapdcbreg 0....\n\r";
        $status 	=	mg_xmapdcbreg 0;
        if ($status) {
                $failed = 1;
                return(-1);
        }

	mg_pon_puts -s "testing mg_xmapdcbreg 1....\n\r";
        $status 	=	mg_xmapdcbreg 1;
        if ($status) {
                $failed = 1;
                return(-1);
        }

	$tmp = mg_setnumre4s -q
	if ($tmp == 2) {
		mg_pon_puts -s "testing mg_xmapdcbreg 2...\n\r";
		$status         =       mg_xmapdcbreg 2;
        	if ($status) {
                	$failed = 1;
                	return(-1);
        	}
		mg_pon_puts -s "testing mg_xmapdcbreg 3...\n\r";
		$status         =       mg_xmapdcbreg 3;
        	if ($status) {
                	$failed = 1;
                	return(-1);
        	}
	}
		

        $status 	=	mg_reset; 
        if ($status) {
                $failed = 1;
                return(-1);
        }
	delay;


#	mg_pon_puts -s "testing mg_crcwalk test suite (1280X1024X60)... \n\r";
#	mg_stoptiming;
#	$status		=	mg_vc3init 0x107
#	if ($status) {
#		$failed = 1;
#		return(-1);
#	}
#	mg_starttiming;
	$status 	=	mg_crcwalk;
	if ($status) {
		$failed = 1;
		return(-1);
	}
#	$status 	=	mg_reset; 
#	if ($status) {
#		$failed = 1;
#		return(-1);
#	}
#
#	mg_pon_puts -s "testing mg_crcwalk test suite (1280X1024X72)... \n\r";
#	mg_stoptiming;
#	$status		=	mg_vc3init 0x130
#	if ($status) {
#		$failed = 1;
#		return(-1);
#	}
#	mg_starttiming;
#	$status 	=	mg_crcwalk;
#	if ($status) {
#		$failed = 1;
#		return(-1);
#	}
#	$status 	=	mg_reset; 
#	if ($status) {
#		$failed = 1;
#		return(-1);
#	}
#
#	mg_pon_puts -s "testing mg_crcwalk test suite (1280X1024X76)... \n\r";
#	mg_stoptiming;
#	$status		=	mg_vc3init 0x139
#	if ($status) {
#		$failed = 1;
#		return(-1);
#	}
#	mg_starttiming;
#	$status 	=	mg_crcwalk;
#        if ($status) {
#                $failed = 1;
#                return(-1);
#        }
#	$status 	=	mg_reset; 
#	if ($status) {
#		$failed = 1;
#		return(-1);
#	}
#
#	mg_pon_puts -s "testing mg_crcwalk test suite (1600X1200X60)....\n\r";
#	$status		= 	mg_issolid;
#	if ($status) {	
#		mg_pon_puts -s "testing mg_crcwalk for Soild Impact...\n\r"
#		mg_stoptiming;
#		$status	=	mg_vc3init 0x156
#		if ($status) {
#			$failed = 1;
#			return(-1);
#		}
#		mg_starttiming;
#		$status	=	mg_crcwalk;
#		if ($status) {
#			$failed = 1;
#			mg_pon_puts -s "ERROR: mg_crcwalk test failed for Solid Impact\n\r"
#			return(-1);
#		}
#	} else {
#		mg_pon_puts -s "testing mg_crcwalk for Max/High Impact...\n\r"
#		mg_stoptiming;
#		$status	=	mg_vc3init 0x159
#		if ($status) {
#			$failed = 1;
#			return(-1);
#		}
#		mg_starttiming;
#		$status	=	mg_crcwalk;
#		if ($status) {
#			$failed = 1;
#			mg_pon_puts -s "ERROR: mg_crcwalk test failed for Max/High Impact\n\r"
#			return(-1);
#		}
#	}

	delay;

#	delay;
	echo "Executing mg_vc3cursorposition test..."
	mg_reset;
	delay;
	mg_xmapinit;
	delay;
	repeat 3 {
		delay
	}
	mg_pon_puts -s "testing mg_vc3cursorposition....\n\r";

	$status 	=	mg_vc3cursorposition;
	if ($status) {
                $failed = 1;
		resetcons; buffoff;
                return(-1);
	}
	

	resetcons; buffoff;
	echo "********	Back End Test Suite Execution Completed 	********"

}

re4test {
	echo "------	Executing RE4   Test Suite 	------"
	$status 	=	mg_re_status_reg;
	if ($status) {
		$failed = 1; return(-1);
	}

	led 0;
	$status 	=	mg_re_rdwr_regs;
	if ($status) {
		$failed = 1; return(-1);
	}

	$status 	=	mg_re_internal_ram -t0;
	if ($status) {
		$failed = 1; return(-1);
	}

	$status 	=	mg_re_internal_ram -t1;
	if ($status)  {
		$failed = 1; return(-1);
	}

	$status 	=	mg_re_internal_ram -t2;
	if ($status) {
		$failed = 1; return(-1);
	}

	led 1;
	$status 	=	mg_re_internal_ram -t3;
	if ($status) {
		$failed = 1; return(-1);
	}


	$status 	=	mg_re_internal_ram -t4;
	if ($status) {
		$failed = 1; return(-1);
	}

	$status 	=	mg_re_internal_ram -t5;
	if ($status) {
		$failed = 1; return(-1);
	}

	echo "********	RE4 Test Suite Execution Completed 	********"
}

dmatest {
	echo "------	Executing DMA Test Suite 	------"
        $status 	=	mg_host_hqdma;
        if ($status) {
                $failed = 1;
                return(-1);
        }


        $status 	=	mg_host_hq_cp_dma;
	if ($status) {
		$failed = 1;
		return(-1);
	}

#        $status 	=	mg_ge_dma;
#	if ($status) {
#                $failed = 1;
#                return(-1);
#        }

#	DMA PIO Test
	$status 	=	mg_dma_pp  -r1 -e1 -w1 -d1  -t  -m 0 0 -b 0x240 -y 16 -z 192
	if ($status) {
		$failed = 1;
		return(-1);
	}
	echo "********	DMA Test Suite Execution Completed 	********"
}


# allows colors to be correct for drawings
drawsetup {
	delay;
#	mg_gfxreset;
#	mg_set_0ge;
#	mg_reset;
	delay;
	delay;
	mg_xmapinit;
}

drawclose {
	delay;
#	resetcons;
	delay;
	delay;
}

tex_draw_test {
	echo "------	Executing tex_draw_test  Suite 	------"
	mg_pon_puts -s "testing mg_notex_line....\n\r";
	drawsetup;
	$status		=	mg_notex_line
	delay;
        if ($status) {
                $failed = 1;
                return(-1);
        }
	mg_pon_puts -s "testing mg_notex_poly....\n\r";
	delay;
	$status		=	mg_notex_poly
	delay;
        if ($status) {
                $failed = 1;
                return(-1);
        }
	mg_pon_puts -s "testing mg_tex_poly....\n\r";
	delay;
	$status		=	mg_tex_poly 
	delay;
        if ($status) {
                $failed = 1;
                return(-1);
        }
	mg_pon_puts -s "testing mg_tex_id....\n\r";
	delay;
	$status		=	mg_tex_1d
	delay;
        if ($status) {
                $failed = 1;
                return(-1);
        }
	mg_pon_puts -s "testing mg_tex_3d....\n\r";
	delay;
	$status		=	mg_tex_3d
	delay;
        if ($status) {
                $failed = 1;
                return(-1);
        }
	mg_pon_puts -s "testing mg_tex_scistri....\n\r";
	delay;
	$status		=	mg_tex_scistri
	delay;
        if ($status) {
                $failed = 1;
                return(-1);
        }
	mg_pon_puts -s "testing mg_tex_linegl....\n\r";
	delay;
	$status		=	mg_tex_linegl
	delay;
        if ($status) {
                $failed = 1;
                return(-1);
        }
	mg_pon_puts -s "testing mg_tex_load....\n\r";
	delay;
	$status		=	mg_tex_load
	delay;
        if ($status) {
                $failed = 1;
                return(-1);
        }
	mg_pon_puts -s "testing mg_tex_persp....\n\r";
	delay;
	$status		=	mg_tex_persp
	delay;
        if ($status) {
                $failed = 1;
                return(-1);
        }
	mg_pon_puts -s "testing mg_tex_mag....\n\r";
	delay;
	$status		=	mg_tex_mag 
	delay;
        if ($status) {
                $failed = 1;
                return(-1);
        }
	mg_pon_puts -s "testing mg_tex_detail....\n\r";
	delay;
	$status		=	mg_tex_detail
	delay;
        if ($status) {
                $failed = 1;
                return(-1);
        }
	mg_pon_puts -s "testing mg_tex_bordertall....\n\r";
	delay;
	$status		=	mg_tex_bordertall
	delay;
        if ($status) {
                $failed = 1;
                return(-1);
        }
	mg_pon_puts -s "testing mg_tex_lut4d....\n\r";
	delay;
	$status		=	mg_tex_lut4d
	delay;
        if ($status) {
                $failed = 1;
                return(-1);
        }
	mg_pon_puts -s "testing mg_tex_borderwide....\n\r";
	delay;
	$status		=	mg_tex_borderwide
	delay;
        if ($status) {
                $failed = 1;
                return(-1);
        }
	mg_pon_puts -s "testing mg_tex_mddma....\n\r";
	delay;
	$status		=	mg_tex_mddma
	delay
        if ($status) {
                $failed = 1;
                return(-1);
        }

	drawclose;

	echo "********	tex_draw_test Suite Execution Completed 	********"
}

repp_test {
	echo "------	Executing RE-PP Test Suite 	------"
	drawsetup;
	$status		=	mg_z_tri 
	delay;
        if ($status) {
                $failed = 1;
                return(-1);
        }
	delay;
	$status		=	mg_lines 
	delay;
        if ($status) {
                $failed = 1;
                return(-1);
        }
	delay;
	$status		=	mg_points 
	delay;
        if ($status) {
                $failed = 1;
                return(-1);
        }
	delay;
	$status		=	mg_stip_tri  
	delay;
        if ($status) {
                $failed = 1;
                return(-1);
        }
	delay;
	$status		=	mg_xblock 
	delay;
        if ($status) {
                $failed = 1;
                return(-1);
        }
	delay;
	$status		=	mg_chars 
	delay;
        if ($status) {
                $failed = 1;
                return(-1);
        }
	delay;
	$status		=	mg_logicop
	delay;
        if ($status) {
                $failed = 1;
                return(-1);
        }
	delay;
	$status		=	mg_dither
	delay;
        if ($status) {
                $failed = 1;
                return(-1);
        }
	delay;
	$status		=	mg_color_tri 
	delay;
        if ($status) {
                $failed = 1;
                return(-1);
        }

	led 1
	delay
	drawclose;

	echo "********	RE/PP Test Suite Execution Completed 	********"
}

rdram_mem {
        echo "------    Executing FRAME BUFFER  Test Suite      ------"
	drawsetup
	if (mg_gfxconsole)
		mg_pon_puts -s "testing mg_dma_pp Z Buffer....\n\r";
        $status         =       mg_dma_pp  -r0 -e0 -w0 -d0 -b 0x0 -p3
        if ($status) {
                $failed = 1;
		return (-1);
        }
	if (mg_gfxconsole)
		mg_pon_puts -s "testing mg_dma_pp Color Buffer....\n\r";
        $status         =       mg_dma_pp  -r0 -e0 -w0 -d0  -b 0x240 -p3
        if ($status) {
                $failed = 1;
		return (-1);
        }
	if (mg_gfxconsole)
		mg_pon_puts -s "testing mg_dma_pp Overlay Buffer....\n\r";
        $status         =       mg_dma_pp  -r0 -e0 -w0 -d0  -b 0x1c0 -p3
        if ($status) {
                $failed = 1;
		return (-1);
        }

	$tmp = mg_setnumre4s -q
        if ($tmp == 2) {
#               Display Buffer-CD Test
                if (mg_gfxconsole)
                        mg_pon_puts -s "testing mg_dma_pp Buffer CD....\n\r";
                $status = mg_dma_pp  -r0 -e0 -w0 -d0  -b 0x320 -p3
                if ($status) {
                        $failed = 1;
                        return (-1);
                }
#               ACC36 or AUX 0 Buffer
                if (mg_gfxconsole)
                    mg_pon_puts -s "testing mg_dma_pp ACC36/AUX Buffer....\n\r";                $status = mg_dma_pp  -r0 -e0 -w0 -d0  -b 0x0e0 -p3
                if ($status) {
                        $failed = 1;
                        return (-1);
                }
        }

        echo "********  FRAME BUFFER  Test Suite Execution Completed    ********"
}

tram_mem {
	delay;
        echo "------    Executing TRAM Memory Test Suite        ------"
	delay;
        $status         =       mg_dma_tram -m 3 -e 0
        if ($status) {
                $failed = 1;
		return (-1);
        }
	delay
        $foo = mg_setnumre4s -q
        delay
        if ($foo == 2) {
                $status         =       mg_dma_tram -m 3 -e 0 -n 1
                if ($status) {
                        $failed = 1;
                        return (-1);
                }
        }
}


re4flextest {
        echo "------    High Density Flex Connectivity Test ------"
	$status		=		mg_hq3 4
        if ($status) {
                $failed = 1;
        }
}


mg_test_all {
	$failed = 0;
	if (mg_gfxconsole) {
		report=2;
	} else {
		report=2;
	}
        repeat 3 delay;
        gioslot;
        if (mg_gfxconsole) {
                mg_reset;
                delay;
                delay;
                resetcons;
        } else {
                allsetup;
        }

	buffon
	mg_pon_puts -s "Start mg_test_all test script ....\n\r";
	delay;
	delay;
	mg_pon_puts -s "testing re4flextest....\n\r";
	$status		=	re4flextest;
	if ($failed) {
			echo "Flex Test FAILED"
			resetcons; buffoff;
			wait;
                	return($status);
	}
	
	mg_pon_puts -s "testing hq3test....\n\r";
	$status	=	hq3test;
	if ($failed) {
			echo "hq3test FAILED"
			wait;
                	return($status);
	}
	
	mg_pon_puts -s "testing bkend....\n\r";
	resetcons;
	gioslot;
	mg_reset;
	delay;
	delay;
	resetcons;
	$status		=	bkend;
	if ($failed) {
			echo "bkend FAILED" 
			resetcons; buffoff;
                	return($status);
	}

	mg_pon_puts -s "testing ge_test....\n\r";
#	resetcons; 

        mg_reset;

        $ge_no = mg_queryGE;
        if ($ge_no == 2)                                        # 2 GE system
        {
                echo "Testing 2GE system....\n"
                $status         =       tge_test;
        }
        if ($ge_no == 1)                                        # 1 ge system
        {
        mg_pon_puts -s "testing ge11_0 ...\n\r";
                echo "Testing 1GE system....\n"
                $status = ge0_test;
        mg_pon_puts -s "finished ge11_0 test ...\n\r";
        }

        if ($failed) {
                echo "ge_test FAILED"
                resetcons; buffoff;
                return($status);
        }

	
	allsetup;
        buffon

	mg_pon_puts -s "\rtesting re4test....\n\r";
	$status		=	re4test;
	if ($failed) {
			echo "re4test FAILED"
			resetcons; buffoff;
                	return(-1);
	}
	mg_pon_puts -s "testing dmatest....\n\r";
	$status		=	dmatest;
	if ($failed) {
			echo "dmatest FAILED"
			resetcons; buffoff;
                	return($status);
	}

	mg_pon_puts -s "testing rdram_mem....\n\r";
	$status 	=	rdram_mem;
	if ($failed) {
			echo "RDRAM FAILED"
			resetcons; buffoff;
                	return($status);
	}

	mg_pon_puts -s "testing repp_test....\n\r";
	$status		=	repp_test;
	if ($failed) {
			echo "repp_test FAILED"
			resetcons; buffoff;
                	return($status);
	}

	delay;

	allsetup ;
	delay;
        delay;
	mg_reset;
        delay;
	resetcons; buffoff;
	buffon;

	echo "Testing TRAM memory"
	repeat 3 delay;
	mg_pon_puts -s "testing tram_mem....\n\r";
	$status		=	tram_mem;
	if ($failed) {
			echo "tram test FAILED"
			resetcons; buffoff;
                	return(-1);
	}

	mg_pon_puts -s "testing tex_draw_test....\n\r";
	$status		=	tex_draw_test
	if ($failed) {
			echo "tex_draw_test FAILED"
			resetcons; buffoff;
                	return(-1);
	}
	
	mg_pon_puts -s "All tests have passed....\n\r";
	echo " All tests have passed"
	delay;
	delay;
	mg_reset;
	resetcons; buffoff;
	report=4
}

mg_all {
	$failed = 0;
        $tmp = mg_setboard 0;
        if ($tmp) {
		echo "Testing Impact boards in slot 0."
                mg_test_all;
        	if ($failed) {
			echo "ERROR: Failure detected on gfx in slot 0."
			$mgfailed = 1;
		}
        }

	$failed = 0;
        $tmp = mg_setboard 1;
        if ($tmp) {
		echo "Testing Impact boards in slot 1."
                mg_test_all;
	        if ($failed) {
			echo "ERROR: Failure detected on gfx in slot 0."
			$mgfailed = 1;
		}
        }
}

# END OF IMPACT 
# Top level functions

gfx_diag {
    $express = gr2_probe;
    $newport=ng1_probe;

    if ($newport) {
	ng1_all;
    }
    if ($express) {
	gr2_all;
    }
#    ng1_all;
#    gr2_all;
}


gfx {
    $express = gr2_probe;
    $newport=ng1_probe;
    $mgras = mg_probe;

    if ($newport) {
	ng1_all;
    }
    if ($express) {
	gr2_all;
    }
    if ($mgras) {
	mg_all;
    }
    if (($mgfailed == 0) && ($gr2_failed == 0) && ($ng1failed == 0)) {
    	unix;
    }
} 

gfxva {
    echo "Voltage changed to 4.75 V\n"
    chg_volt 1;
	ide_delay -s 15;
    chg_volt 0;
	ide_delay -s 15;
    $express = gr2_probe;
    $newport=ng1_probe;
    $mgras = mg_probe;

    if ($newport) {
	ng1_all;
    }
    if ($express) {
	gr2_all;
    }
    if ($mgras) {
	mg_all;
    }
    if (($mgfailed == 1) || ($gr2_failed == 1) || ($ng1failed == 1)) {
	echo "ERROR: Gfx failed at Voltage 4.75";
	return;
    } 
    $mgfailed = 0;
    $gr2_failed = 0;
    $ng1failed = 0;
    echo "Voltage changed to 5.25 V\n"
    chg_volt 1;
	ide_delay -s 15;
    chg_volt 2;
	ide_delay -s 15;
    $express = gr2_probe;
    $newport=ng1_probe;
    $mgras = mg_probe;

    if ($newport) {
	ng1_all;
    }
    if ($express) {
	gr2_all;
    }
    if ($mgras) {
	mg_all;
    }
    if (($mgfailed == 0) && ($gr2_failed == 0) && ($ng1failed == 0)) {
    	unix
    }
    echo "ERROR: Gfx failed at Voltage 5.25";
}

v2g2v {

	CheckSlot
	$status =ev1_init ;
	if ($status)  {
		echo " Galileo Board Initialization FAILED"
		return ($status);
	}
        gfxset;
	echo "   "
	echo "Now trying vid2gfxa"
	v2ga;
        echo "Now trying gfx2vidb"
	g2vb;
	echo "Finished"

}

gfx2vidb {

	CheckSlot
	$status =ev1_init ;
	if ($status)  {
		echo " Galileo Board Initialization FAILED"
		return ($status);
	}
        gfxset;
	echo "   "
	echo "Now trying gfx2vidb"
	g2vb;
	echo "Finished   "
}
gfx2vida {

	CheckSlot
	$status =ev1_init ;
	if ($status)  {
		echo " Galileo Board Initialization FAILED"
		return ($status);
	}
        gfxset;
	echo "   "
	echo "Now trying gfx2vida"
	g2va;
	echo "Finished   "
}

vid2gfxa {

	CheckSlot
          $status = ev1_init;
	if ($status)  {
		echo " Galileo Board Initialization FAILED"
		return ($status);
	}
          gfxset;
        composite;
	echo "   "
	echo "Now trying vid2gfxa"
	v2ga;
	echo "Finished   "
}

vid2gfxc {

	CheckSlot
          $status = ev1_init;
	if ($status)  {
		echo " Galileo Board Initialization FAILED"
		return ($status);
	}
        gfxset;
	echo "   "
	echo "Now trying vid2gfxa"
	v2gc;
	echo "Finished   "
}

vid2gfxb {

	CheckSlot
        $status = ev1_init;
	if ($status)  {
		echo " Galileo Board Initialization FAILED"
		return ($status);
	}
        gfxset;
	echo "   "
	echo "Now trying vid2gfxb"
	v2gb;
	echo "Finished   "
}

menu;
