#include "m9402.h"

#define PST 10
#define SST 3
#define TST 10
#define RET 5
void mmi(int a) /*a:mode number ‚P:honsen ‚Q:sensor test ‚R:kitei)*/
{  
 extern unsigned int mmi_iivseg;
 extern char mmi_chase;
	 
 int data[4];/*‚V‚“‚…‚‡‚k‚d‚cnumber‚RE‚QE‚PE‚O*/
 int data2[4];
 int i;
 int dat;
 static int led;

     switch(a)
       {
        case 1:if(mmi_chase != 0)
                  led = 0x80;
               else
                  led = 0x00;
     
               if(sys9(2,5)!=0)
                  led |= 0x40;
                break;
        case 2: 
		       if(led == 0x80)
			      led = 0x40;
			   else
			      led = 0x80;
				break;
        case 3:
	           if(sys9(5,1) > sys9(5,2))/*left_tire > right_tire*/
                  led=0x80;
               else
                  led=0x40;
               if(sys9(5,1)==sys9(5,2))
                  led=0xc0;
				break;
        default: led=0;
              break;              
         }      
        dat = mmi_iivseg;
 /*          for(i=0;i<4;i++)	
		   	{
		   	 data[i]= dat % 10;
                         data[i]=(led | (i<<4) | data[i]);
                         dat= dat / 10;
			 outportb(PADR0,data[i]);
                        }*/
    	   for(i=0;i<4;i++)
		   	{
		   	 data[i]= dat % 10;             
                         dat= dat / 10;		                       
	                 }
	                 data[0]=(led | data[0]);
			 outportb(PADR0,data[0]);			  
	       for(i=1;i<4;i++)
			{
			 data2[i]=(led | (i<<4) | data[i-1]);
			 outportb(PADR0,data2[i]);
			 data[i]=(led | (i<<4) | data[i]);
			 outportb(PADR0,data[i]);
			}
}
void dsdata();
void wait()
{
 if((inportb(EDRH)&0x80)==0x80)
  {	
   sys4(6);
   dsdata();
  }
}

void dsdata()
{

 extern unsigned int mmi_iivseg;
 int mmi_mode;

 mmi_mode=(inportb(PBDR0) & 0x0f);
 sys8(6,1,mmi_mode);

 switch(mmi_mode){
   case 0x00:sys1(0,1,0,0);
             sys2(1,PST,0,0);/*ps*/
             sys2(2,SST,0,0);/*sss*/
	     sys2(3,TST,0,0);/*ts*/
	     sys2(5,RET,0,0);/*re*/
             break;
   case 0x01:sys1(7,1,0,0);
             sys2(1,PST,0,0);
             sys2(2,SST,0,0);
             sys2(3,TST,0,0);
   	     sys2(5,RET,0,0);
             break;
     default:if(mmi_mode>=0x08)
             {
              sys1(8,1,0,0);
              sys2(5,RET,0,0);
              sys2(3,TST,0,0);
              }
 
              else if((0x07 >= mmi_mode)&&(mmi_mode >= 0x02))
			   {
			    sys1(9,1,0,0);
			    sys2(1,PST,0,0);/*ps*/
			    sys2(2,SST,0,0);/*sss*/
			    sys2(3,TST,0,0);/*ts*/

			   }
 			  break;
		}
}


ŠJ”­‹K–ρ‚Ι–ί‚ι