Download CPM 68K System Guide
Transcript
for ( i = STPKTSZ; i; i -= 1 )
{
*p = *q;
p += 1;
q += 2;
}
}
/************************************************************************/
/*
Handle Unsolicited Status from IPC
*/
/************************************************************************/
unsolst(stpktp)
REG BYTE *stpktp;
{
REG WORD dev;
REG WORD ready;
REG struct dskst *dsp;
dev = rcnvdsk[ (stpktp+PKTDEV)->byte ];
ready = ((stpktp+PKTSTPRM)->byte & 0x80) == 0x0;
dsp = & dskstate[dev];
if ( ( ready && !(dsp->ready) ) ||
(!ready) && (dsp->ready)
) dsp->change = 1;
dsp->ready = ready;
#if ! LOADER
if ( ! ready ) setinvld(dev); /* Disk is not ready, mark buffers */
#endif
}
#if ! LOADER
/************************************************************************/
/*
Mark all buffers for a disk as not valid
*/
/************************************************************************/
setinvld(dsk)
REG WORD dsk;
{
REG struct tbstr *tbp;
tbp = firstbuf;
while ( tbp )
{
if ( tbp->dsk == dsk ) tbp->valid = 0;
tbp = tbp->nextbuf;
}
}
#endif