/*sensor-test*/
#include "m9402.h"
void sensor_test();

void inzt09()
{
  sys0(9,0x1100);
 /* sys1(9,1,0,0);*//*ishikawa 1/26*/
}

void nrmt09(aa,bb)
int aa,bb;
{
  extern unsigned int mmi_iivseg;
  int a, b, c, d, DIP ,disp_count;
  static int y, z;

  DIP = ((inportb(PBDR0))&0x0f);
  if (DIP <= 0x07) {
		switch (DIP) {
		case 0x02: /*infrared*/
			 mmi_iivseg=0;
  		         a= sys9(1,1);
			 d = a & 0xc0;
			 switch (d) {
			      case 0x40:  mmi_iivseg += 1;
                                          break;
			      case 0x80:  mmi_iivseg += 2;
                                          break;
			      case 0xc0:  mmi_iivseg += 3;
                                          break;

			 }
			 /*  if (a & 0xc0) mmi_iivseg |= 300;
                             else if (a & 0x80) mmi_iivseg |= 200;
			     else if (a & 0x40) mmi_iivseg |= 100; */

			 d = a & 0x06;
			 switch (d) {
			      case 0x04:  mmi_iivseg += 100;
                                          break;

			      case 0x02:  mmi_iivseg += 200;
                                          break;

    			      case 0x06:  mmi_iivseg += 300;
                                          break;

			 }
			 /*  if (a & 0x06) mmi_iivseg |= 3;
			     else if (a & 0x02) mmi_iivseg |= 2;
			     else if (a & 0x04) mmi_iivseg |= 1; */

			 d = a & 0x38;
			 switch (d) {
			      case 0x10:  mmi_iivseg += 10;
                                          break;

			      case 0x20:  mmi_iivseg += 20;
                                          break;

			      case 0x08:  mmi_iivseg += 30;
                                          break;

			      case 0x30:  mmi_iivseg += 40;
                                          break;

			      case 0x18:  mmi_iivseg += 50;
                                          break;

			      case 0x38:  mmi_iivseg += 60;
                                          break;

			 }

			 /*   if (a & 0x38) mmi_iivseg |= 60;
			      else if (a & 0x18) mmi_iivseg |= 50;
			      else if (a & 0x30) mmi_iivseg |= 40;
			      else if (a & 0x08) mmi_iivseg |= 30;
			      else if (a & 0x20) mmi_iivseg |= 20;
			      else if (a & 0x10) mmi_iivseg |= 10; */
		
			 break;
  		case 0x03: /*touch sensor*/
			 a = sys9(3,1);
			 mmi_iivseg = a;
			 break;

		case 0x04: /*supersonic sensor*/
			 a = sys9(2,1);
			 b = sys9(2,3);
			 c = sys9(2,2);
			 disp_count = sys9(0,3);
			 if (disp_count >= 1000) {
                             sys8(0,3,0);/*2/2 ishikawa*/
				
				switch (z) {
					case 1: /*right*/
						mmi_iivseg = a;
          					mmi_iivseg += 1000;
						z = 2;
						break;

					case 2: /*left*/
						mmi_iivseg = b;
                                                mmi_iivseg += 2000;
						z = 3;
						break;

					case 3: /*forward*/
						mmi_iivseg = c;
                                                mmi_iivseg += 3000;
						z = 1;
						break;
                                        default:z=1;
                                                break;
					}
 			            }
      				break;
			 
		case 0x05: /*US-right*/		 
			 a = sys9(2,1);
			 mmi_iivseg = a;
			 break;

		case 0x06: /*US-left*/
			 a = sys9(2,3);
			 mmi_iivseg = a;
			 break;

		case 0x07: /*US-forward*/
			 a = sys9(2,2);
			 mmi_iivseg = a;
			 break;
	    }
  }
  sys1(6,1,0,0); 
  sys1(9,1,0,0);
}

void timt09(a,b)
int a, b;
{}

void intt09(a,b)
int a, b;
{}

           
             
             
             


ŠJ”­‹K–ñ‚É–ß‚é