/*
 * This program gets the CCP off of a MDK-Format Double Density
 * disk, and puts it into the declared filename.
 *
 * The CCP is located in sectors 9-16 (inclusive) of track-1.
 *
 * Sectors are 0.5K each.
 *
 * Written 9/1986 by Michael D. Kersenbrock

 */

#include "c:stdio.h"

FILE *Outfile;
char Buffer[5000];

struct block {
	char funct;
	char areg;
	int  bcreg;
	int  dereg;
	int  hlreg;
} Biospb;

main(argc,argv)
int argc;
char *argv[];
{
	register int sector;

	if (argc != 2) {
		Usage();
		exit(1);
	}

	if ((Outfile=fopen(argv[1],"w")) == NULL ) {
		fprintf(stderr,"\nCan't open file: %s\n",argv[1]);
		Usage();
		exit(2);
	}
	fclose(Outfile);

	for (sector = 9 ; sector <= 16 ; sector++) {
		/*
		 *  Set track number
		 */
		bioscall(10,1,0);

		/*
		 * Set sector number
		 */
		bioscall(11,sector,0);

		/*
		 * Set dma bank to 1
		 */
		bioscall(28,0,1);

		/*
		 * Set dma address
		 */
		bioscall(12,&Buffer[(sector-9)*512],0);

		/*
		 * Read sector
		 */
		bioscall(13,0x8000,0);
	}

	Outfile=fopen(argv[1],"w");

	for (sector = 0 ; sector < 4096 ; sector++) {
		putc(Buffer[sector],Outfile); 
	}
	fclose(Outfile);
}



bioscall(number,bc,a)
int number;
int bc;
int a;
{
	Biospb.funct = number;
	Biospb.bcreg = bc;
	Biospb.areg = a;
	return(bdos(0x32,&Biospb));
}



Usage()
{
	fprintf(stderr,"\nUsage: getccp <filename-where-to-put-it>\n");
}
,argv)
int argc;
char *argv[];
{
	register int sector;

	if (a