#include <string.h>
#include <ctype.h>
#include <stdlib.h>
#include "extern.h"

exeshell()
    {   unsigned pasn,ans,wrk,chksum;
        char pasw[6],ch[2];

	pasn = rand();

        sprintf(pasw,"%05d",pasn);
        strcpy(ssent,pasw);
        strcat(ssent,"=");
        rsout();
        *(ch + 1) = NULL;
        *(ch) = *(pasw);chksum = (atoi(ch)) * 6;
        *(ch) = *(pasw + 1);chksum = chksum + (atoi(ch)) *5;
        *(ch) = *(pasw + 2);chksum = chksum + (atoi(ch)) *4;
        *(ch) = *(pasw + 3);chksum = chksum + (atoi(ch)) *3;
        *(ch) = *(pasw + 4);chksum = chksum + (atoi(ch)) *2;
        wrk = chksum / 11;
        pasn = chksum - (wrk * 11);
        if ( pasn < 2 ) pasn = 11;
        ans = 11 - pasn;
        rsin(0);
        wrk = atoi(ch);
        if  ( wrk == 0 ) wrk = 5;
        if  ( wrk >  5 ) wrk = wrk - 5;
        wrk = 5 - wrk;
        substr(rsent,wrk,1,ch);
        if ( atoi(ch) == ans )
           { 
	     strcpy(ssent,"外部シェル起動\n");
	     rsout();
	     return(0);
             /*
             whoend();
             rsclose();
             if ( port_type == 2 ) devdrv = devdrv + 4;
             sprintf(fbuff,"%1d\n",devdrv);
             chain("rshell",strlen(fbuff),fbuff,1,1,0);
             exit(0);
	     */  
         } 
        strcpy(ssent,"\nERR!\n");
        rsout();
        return(0);
    }
        
