/* (c) Copyright 1987 Michael Goetz									*/
/*																				*/
/*				File:		  	inskey										*/
/*				Returns:	  	void											*/
/*				Parameters:	int iokey [2] - key to write			*/
/*																				*/
/*																				*/

#include <stdio.h>

#include "advm.h"
#include "units.h"
#include "insbuf.h"


void inskey(iokey)
int iokey[2];

{
	static int pad = 0;

	k1[kptr] = iokey[0];
	k2[kptr] = iokey[1];
	krec[kptr] = record;
	kbyte[kptr++] = bptr + 1;
	if (kptr == 18)
		if (fwrite((char *)k1,1,sizeof(k1),instkeyfi) != sizeof(k1) ||
			 fwrite((char *)k2,1,sizeof(k2),instkeyfi) != sizeof(k2) ||
			 fwrite((char *)krec,1,sizeof(krec),instkeyfi) != sizeof(krec) ||
			 fwrite(kbyte,1,sizeof(kbyte),instkeyfi) != sizeof(kbyte) ||
				/* write out 0x0000 to be compatible with CPM 128 byte sectors */
			 fwrite((char *)&pad,2,1,instkeyfi) != 1)
			{
			printf ("\n\nOutput error while writing instruction keys.\n\n");
			exit(1);
			}
		else
			kptr = 0;
}

