/examples/scrfuzz/main.c
#include <stdio.h>
#include <dos.h>

extern unsigned char screen_fuzz;

struct i89_channel_parameter_block {
	void far * tbp;
};

struct i89_channel {
	unsigned char ccw;
	unsigned char busy;
	struct i89_channel_parameter_block far * ppb;
	unsigned int reserved;
};

struct screenfuzz_parameter_block {
	struct i89_channel_parameter_block cpb;
	unsigned int far * screen_mem;
};

struct screenfuzz_parameter_block fuzz_cpb = {
	{ &screen_fuzz },
	0,
};

int main(int argc, char* argv) {
	struct i89_channel far * ccb = (struct i89_channel *) MK_FP(0x0000, 0x0500);
	printf("channel 1 busy %02x\n", ccb[0].busy);
	printf("channel 2 busy %02x\n", ccb[1].busy);
	ccb[1].ccw = 0x23;
	ccb[1].ppb = &(fuzz_cpb.cpb);
	fuzz_cpb.screen_mem = (unsigned int far *) MK_FP(0xF000,0x0000);
	outportb(0x72, 0);
	printf("channel 1 busy %02x\n", ccb[0].busy);
	printf("channel 2 busy %02x\n", ccb[1].busy);
}