/*
  Copyright (c) 2004,   Beijing Senselock Data Security Centre
  All rights reserved.
  
  File£ºsample_17_hw.c
  
  Briefs£ºThis code will demonstrate how to use code memory and
  		  dynamic memory in your SenseLock EL EXF.
       
  
*/
#include <string.h>
#include "..\..\inc\hardware\ses_v3.h"
#include "..\inc\sample_17.h"

#define _DEBUG

/* global variable defination. */
unsigned char last_ses_error = 0; /* last SES error */
IO_PACKAGE out_pkg;  /* output package */
IO_PACKAGE *output = &out_pkg; 
IO_PACKAGE *input = (IO_PACKAGE *)pbInBuff; /* input package */


//char code *s = "this is the string defined in code memory .";

unsigned char code table[9][9] = 
{
 1,  2,  3,  4,  5,  6,  7,  8,  9,
 2,  4,  6,  8, 10, 12, 14, 16, 18,
 3,  6,  9, 12, 15, 18, 21, 24, 27,
 4,  8, 12, 16, 20, 24, 28, 32, 36,
 5, 10, 15, 20, 25, 30, 35, 40, 45,
 6, 12, 18, 24, 30, 36, 42, 48, 54,
 7, 14, 21, 28, 35, 42, 49, 56, 63,
 8, 16, 24, 32, 40, 48, 56, 64, 72,
 9, 18, 27, 36, 45, 54, 63, 72, 81
};


void main()
{

    
	unsigned char line = input->buff[0]-1;
	unsigned char column = input->buff[1]-1;
	
	output->buff[0] = table[line][column]; /* lookup in table */
	output->tag = ERR_SUCCESS;
	output->len = sizeof(char);

	
	_set_response(IO_PACKAGE_HEADER_SIZE+output->len, (unsigned char *)output);
	_exit();  
}
