Exemple #1
0
static void ExecCmdFormatTrack()
{
	/* NOTE: simplified procedure; dma not used */
	t_nubit8 fillbyte;
	/* load parameters*/
	vfdd.head    = GetHDS(vfdc.cmd[1]);
	vfdd.sector  = 0x01;
	vfdd.nbyte   = GetBPS(vfdc.cmd[2]);
	vfdd.nsector = vfdc.cmd[3];
	vfdd.gaplen  = vfdc.cmd[4];
	fillbyte     = vfdc.cmd[5];
	vfddSetPointer;
	/* execute format track*/
	vfddFormatTrack(fillbyte);
	/* finish transaction */
	SetST0;
	SetST1;
	SetST2;
	vfdc.ret[0] = vfdc.st0;
	vfdc.ret[1] = vfdc.st1;
	vfdc.ret[2] = vfdc.st2;
	vfdc.ret[3] = 0x00;
	vfdc.ret[4] = 0x00;
	vfdc.ret[5] = 0x00;
	vfdc.ret[6] = 0x00;
	if (GetENRQ(vfdc.dor)) {
		vpicSetIRQ(0x06);
		vfdc.flagintr = 1;
	}
	SetMSRReadyRead;
}
Exemple #2
0
static void ExecCmdFormatTrack() {
    /* NOTE: simplified procedure; dma not used */
    t_nubit8 fillByte;
    /* load parameters*/
    vfdd.data.head    = GetBit(vfdc.data.cmd[1], VFDC_CMD_FormatTrack1_HD);
    vfdd.data.sector  = 0x01;
    vfdd.data.nbyte   = VFDC_GetBPS(vfdc.data.cmd[2]);
    vfdd.data.nsector = vfdc.data.cmd[3];
    vfdd.data.gpl     = vfdc.data.cmd[4];
    fillByte     = vfdc.data.cmd[5];
    vfddSetPointer;
    /* execute format track*/
    vfddFormatTrack(fillByte);
    /* finish transaction */
    SetST0;
    SetST1;
    SetST2;
    vfdc.data.ret[0] = vfdc.data.st0;
    vfdc.data.ret[1] = vfdc.data.st1;
    vfdc.data.ret[2] = vfdc.data.st2;
    vfdc.data.ret[3] = Zero8;
    vfdc.data.ret[4] = Zero8;
    vfdc.data.ret[5] = Zero8;
    vfdc.data.ret[6] = Zero8;
    if (GetBit(vfdc.data.dor, VFDC_DOR_ENRQ)) {
        vpicSetIRQ(0x06);
        vfdc.data.flagINTR = True;
    }
    SetMSRReadyRead;
}