home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Phoenix Heaven Sunny 2
/
APPARE2.BIN
/
oh_towns
/
dic
/
src
/
defs.h
< prev
next >
Wrap
Text File
|
1995-06-20
|
8KB
|
416 lines
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
#ifndef SJIS
# ifndef EUC
# define SJIS
# endif
#endif /* SJIS */
#ifdef MSDOS
# ifndef FMRBIOS
# ifndef MSCDEX
# define FMRBIOS
# endif
# endif
#endif /* MSDOS */
#ifdef MSDOS
#include <stdlib.h>
# ifdef TC
# include <alloc.h>
# else
# include <malloc.h>
# endif
#include <jctype.h>
#include <dos.h>
#endif /* MSDOS */
#ifdef UNIX
#include <curses.h>
#ifdef NEWS
#include <locale.h>
#endif
#ifndef MORE
#define MORE "more"
#endif
#ifndef CD_ROM
#define CD_ROM "/dev/Cdrom"
#endif
#ifdef iskanji
# undef iskanji
# undef iskanji2
#endif
#ifdef EUC
#define iskanji(c) ((c) & 0x80)
#define iskanji2(c) ((c) & 0x80)
#endif /* EUC */
#ifdef SJIS
#define iskanji(c) (((c) >= 0x80 && (c) <= 0x9F) ||\
((c) >= 0xE0 && (c) <= 0xFE))
#define iskanji2(c) (((c) >= 0x30 && (c) <= 0x7E) ||\
((c) >= 0x80 && (c) <= 0xFE))
#endif /* SJIS */
#endif /* UNIX */
#ifdef ERR
#undef ERR
#endif
#ifdef FALSE
#undef FALSE
#endif
#ifdef TRUE
#undef TRUE
#endif
#define ERR (-1)
#define FALSE 0
#define TRUE 1
#define HONBUN_MAX_LINE 1000
#define MENU_CHK_LINE 30
#define BLOCK_SIZE 2048
#define INDEX_MAX 127
#ifdef UNIX
#define COLS_MAX 256
#define LINE_MAX 128
#else
#define COLS_MAX 160
#define LINE_MAX 64
#endif
#ifdef UNIX
#define FAR
#define MALLOC malloc
#define FREE free
#define FAR_MEMCPY memcpy
#define NEAR_MEMCPY memcpy
#define FAR_STRCPY strcpy
#define NEAR_STRCPY strcpy
#endif /* UNIX */
#ifdef MSDOS
#define FAR far
# ifdef MSC
# define MALLOC _fmalloc
# define FREE _ffree
# else
# define MALLOC farmalloc
# define FREE farfree
# endif
#endif /* MSDOS */
#define DEF_COLS_MAX 80
#define DEF_LINE_MAX 24
#define MENU_MAX 128
#define BETU_MAX 10
#define KEY_NULL (-1)
#define KEY_KANA 0
#define KEY_HYOKI 1
#define KEY_ALPHA 2
#define KEY_KANJI 3
#define KEY_NUMBER 4
#define CH_BOLD_ON 1
#define CH_BOLD_OFF 2
#define CH_ITALIC_ON 3
#define CH_ITALIC_OFF 4
#define DIC_FILE_MODE 0
#define DIC_DEVICE_MODE 1
#define zentohan zen2han
#define hantozen han2zen
#define IDX_MAX 15
#define IDX_KANA (index_tab[0].ip)
#define IDX_ALPHA (index_tab[1].ip)
#define IDX_KANJI (index_tab[2].ip)
#define IDX_HYOKI (index_tab[3].ip)
#define IDX_KKANA (index_tab[4].ip)
#define IDX_KHYOKI (index_tab[5].ip)
#define IDX_KALPHA (index_tab[6].ip)
#define IDX_TANGO (index_tab[7].ip)
#define IDX_CROSS (index_tab[8].ip)
#define IDX_ZKANA (index_tab[9].ip)
#define IDX_ZHYOKI (index_tab[10].ip)
#define IDX_ZALPHA (index_tab[11].ip)
#define IDX_NUMBER (index_tab[12].ip)
#define IDX_MENU (index_tab[13].ip)
#define IDX_COPR (index_tab[14].ip)
typedef unsigned char uchar;
typedef unsigned short ushort;
typedef unsigned int uint;
typedef unsigned long ulong;
typedef struct {
uchar id;
uchar type[3];
ulong start_block;
ulong block_max;
} INDEX;
typedef struct {
uchar id;
INDEX *ip;
} INDTAB;
typedef struct {
ulong block;
ushort offset;
} POINT;
typedef struct _MULPTR {
struct _MULPTR *next;
int bs, mx;
char mul_ttl[1];
} MULPTR;
typedef struct _MULTI {
struct _MULTI *next;
struct _MULPTR *mul_list;
} MULTI;
typedef struct _CAT {
struct _CAT *next;
char *ttl;
int no;
int gaz, gah;
} CATALOG;
typedef struct _DM {
struct _DM *next;
int mode;
char *file;
char *ttl;
int no;
int gaz, gah;
} MENU;
typedef struct _MENUPTR {
struct _MENUPTR *next;
int sx, sy;
int bx, by;
POINT pos;
} MENUPTR;
/*****************************************************
Data Defs
/*****************************************************/
/* main.c */
extern char *program_name;
extern int all_index_disp;
extern int src_index_disp;
extern int lines_max;
extern int cols_max;
extern int towns_flg;
extern char *dict_file_name;
extern FILE *dev_fp;
extern FILE *ext_out_fp;
extern char ext_out_file[128];
extern char *dev_unit_name;
#ifndef STDFILE
extern int dev_unit_no;
#endif
extern char *select_dic_str;
extern int now_dic_mode;
extern int now_dev_id;
extern MENU *dic_menu;
extern MENU *now_dic_menu;
extern int dic_count;
extern int pause_flg;
extern int prompt_flg;
extern int zenkou_flag;
extern int cutof_flag;
extern int gaiji_flag;
extern int color_flag;
extern int bitmap_flag;
extern int extdisp_flag;
extern int extinput_flag;
extern int copr_disp_flg;
extern int menu_disp_flg;
extern int tex_out_flag;
/* dic.c */
extern MULTI *multi_top;
extern int index_tab_base;
extern int index_tab_max;
extern INDEX *index_ptr;
extern int index_max;
extern int index_total;
extern INDEX index_buf[INDEX_MAX];
extern INDTAB index_tab[];
extern POINT title;
extern POINT honbun;
/* dicget.c */
extern int menu_max;
extern int betu_max;
extern MENUPTR *menu_top;
extern MENUPTR *betu_top;
extern MENUPTR menu_tab[MENU_MAX];
extern MENUPTR betu_tab[BETU_MAX];
/* cdio.c */
extern ulong vtoc_start_block;
extern ulong vtoc_end_block;
extern int vtoc_file_max;
extern char file_name[48];
extern ulong file_start_block;
extern ulong file_end_block;
extern uchar dic_buf[BLOCK_SIZE];
extern int comp_dic_mode;
/* gaiji.c */
extern int dicin_gaiji_flag;
extern ulong zen_gaiji_start_block;
extern ulong zen_gaiji_end_block;
extern ulong han_gaiji_start_block;
extern ulong han_gaiji_end_block;
extern char *gaiji_map_file;
/*****************************************************
Func Defs
/*****************************************************/
/* lib.c */
int toshort(uchar *p);
long tolong(uchar *p);
int iszero(uchar *p, int len);
int htoi(char *p);
int sjistojis(int cd);
int jistosjis(int cd);
#ifdef EUC
int jistoeuc(int ch);
#endif
int hantozen(int code);
int zentohan(int ch);
void str_cnv(uchar *buf, uchar *str, int len);
void put_jis(uchar *str, int len);
uchar *str_jis(uchar *buf, uchar *str);
uchar *str_word(uchar *buf, uchar *str);
char *strlow(char *str);
char *skipspc(char *str);
char *skipword(char *str);
int strcut(int max, char *av[], char *str);
#ifdef LSIC
char *strdup(char *str);
#endif
char *gobi_conv();
int gobi_init(uchar *str);
/* cdio.c */
int CD_mode_set(int mode);
int CD_read_sect(ulong sect, int count, char *buff);
int CD_read_time(int min, int sec, int blk, int count, char *buff);
int CD_file_init();
int CD_file_open(int no);
int IO_block_read(ulong block);
int IO_seek(ulong block, ushort offset);
int IO_getc();
int IO_read(char *buf, int size);
int Cache_init();
int Cache_flush(int id);
char *id_to_name(int id);
int name_to_id(char *name);
/* gaiji.c */
void Gaiji_tab_init();
void Gaiji_init(int zen, int han);
void Gaiji_close();
uchar *Gaiji_convert(uint *extc);
int Gaiji_config(char *file);
int Gaiji_maping(int code, char *str);
int Gaiji_display(ushort extc);
void Gaiji_zenkaku_bitmap();
void Gaiji_hankaku_bitmap();
/* scrn.c */
int dic_display(ulong block, ushort offset);
void pager(POINT *tab, int max, int fg);
int more(POINT *tab, int max);
/* dic.c */
int init_serch(char *str);
int dic_serch();
void index_tab_init(int bs, int mx);
int dic_open();
/* dicget.c */
int cd_get_data();
char *cd_gets(char *buf, int max, int line);
int dic_seek(ulong block, ushort offset);
/* diclib.c */
char *idx_name(INDEX *ip);
int dic_kensaku(uchar *str);
void dic_print(int mx);
void dic_index_print();
void dic_index_list();
void multi_index_print(MULPTR *mp);
void multi_dic_print(MULTI *mul);
int multi_select(int no);
/* catalog.c */
CATALOG *catalog_load(char *file);
void catalog_free(CATALOG *cp);
/* cmds.c */
int command(char *cmd);
#ifdef HISTORY
/* his.c */
char *input(char *buf, int max);
#endif
#ifdef MKDIC
int compress(int flag, char *file);
#endif
/* main.c */
int main_device_open(int mode, char *file);
int main_dic_open(MENU *mp);
int main_menu_set(int mode, char *file,
char *ttl, int no, int gah, int gaz);
int main_catalog_set(char *file, int no);
int main_dic_list();
int main_dic_select(int no, char *str);
/* select.c */
int device_config(char *file);