DataMuseum.dk

Presents historical artifacts from the history of:

Commodore CBM-900

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about Commodore CBM-900

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - download

⟦cc8dafb9e⟧ TextFile

    Length: 853 (0x355)
    Types: TextFile
    Notes: UNIX file
    Names: »bang.c«

Derivation

└─⟦f27320a65⟧ Bits:30001972 Commodore 900 hard disk image with partial source code
    └─⟦2d53db1df⟧ UNIX V7 Filesystem
        └─ ⟦this⟧ »frankh/lib/bang.c« 

TextFile

/*
 * C900 disk exerciser.		July 3, 1985
 */

#include	<flib.h>

bang( dev, sblk, eblk, count)
char 	*dev;
unsigned long sblk,eblk;
int	count;
{
register int i, fdi, fdo, err;
register long blk;


/*	printf("btst: bang: %s %U %U %u \n", dev, sblk, eblk, count); */ 

	err = 0;
	if ((fdi = open(dev, 0)) < 0)
		panic("can't open input device\n");
	if ((fdo = open(dev, 1)) < 0)
		panic("can't open output device\n");

	printf("btst: testing:\t%s\n", dev);
	
	for (i = 0; i < count; ++i) {
		blk = xrand(sblk, eblk);   /* generate random block number */
		bwrite(fdo, blk, pattern); /* write the block with pattern */
		clr( buf);		/* clear buffer	*/
		bread(fdi, blk, buf);	/* read it back	*/
		if (check(buf, sblk))	/* see if ok	*/
			++err;
	}
	printf("btst: device:\t%s\terrors this pass:\t%u\n", dev, err);

	close(fdi);
	close(fdo);
	return(err);
}