/*																				*/
/*																				*/
/*				File:		  	opendb.c										*/
/*				Returns:	  	void											*/
/*				Parameters:	none											*/
/*																				*/
/*																				*/

#include <stdlib.h>
#include <sys\types.h>
#include <sys\timeb.h>
#include <stdio.h>
#include <process.h>

#include "advm.h"
#include "huff.h"
#include "memory.h"
#include "words.h"
#include "values.h"
#include "keyi.h"
/* since keyi and keyt define the same psuedonyms, disable them and use
   fully qualified references. */
#undef knum
#undef kbase
#include "keyt.h"
#undef knum
#undef kbase
#include "keys.h"
#include "getmem.h"

#include "getkey.h"


void opendb ()

	{
	char dummy;
	FILE *file;
	static char *file1 = "advi.dat";
	static char *file2 = "advt.dat";
	static char *file4 = "compress.dat";
	struct timeb rseed;

	ftime(&rseed);
	srand((unsigned)rseed.time ^ (unsigned)rseed.millitm);
	if (!(file = fopen(file4,"rb")) ||
		(fread(chars, sizeof(chars), 1, file) != 1) ||
		(fread(index, sizeof(index), 1, file) != 1) ||
		(fread(len, sizeof(len), 1, file) != 1) ||
		(fread(&dummy, sizeof(dummy), 1, file) != 1) ||
		(fread(&dummy, sizeof(dummy), 1, file) != 1) ||
		(fread(tree, 1, sizeof(tree), file) != sizeof(tree)) ||
		fclose(file))
			{
			printf("Glitch - can't read file %s.\n",file4);
			exit(1);
			}
	getmem();
	if (!(dbi = fopen(file1, "rb")))
			{
			printf("Glitch - can't read file %s.\n",file1);
			exit(1);
			}
	trace("get keys from advi\n");
	getkey(&dbikey, "advi.ptr", &membot, memtop, &keyi.x_knum, &keyi.x_kbase);
	if (!(dbt = fopen(file2, "rb")))
			{
			printf("Glitch - can't read file %s.\n",file2);
			exit(1);
			}
	trace("get keys from advt\n");
	getkey(&dbtkey, "advt.ptr", &membot, memtop, &keyt.x_knum, &keyt.x_kbase);
	}
