#include <string.h> #include "ses_v3.h" #define _DEBUG /*-------------本来はヘッダファイルの内容 (開始)-----------------*/ #ifdef _WIN32 #pragma pack(push, 1) #endif #define IO_PACKAGE_HEADER_SIZE 2 //IO package header length:tag+len #define MAX_IO_DATA_SIZE 0xf8 // maximum IO data size /* common error code. */ #define ERR_SUCCESS 0x00 // success #define ERR_SES 0x80 // SES function execution error #define ERR_INVALID_PARAMETER 0x81 // invalid parameter /* IO package */ typedef struct _IO_PACKAGE { unsigned char tag; unsigned char len; unsigned char buff[MAX_IO_DATA_SIZE]; } IO_PACKAGE; #ifdef _WIN32 #pragma pack(pop) #endif /*-------------本来はヘッダファイルの内容 (終了)-----------------*/ /* 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 */ 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(); }