if(n
=c_due(a
)) return(n
);
if(curunit
->uwrt
) (void) nowreading(curunit
);
if(n
=c_due(a
)) return(n
);
if(!curunit
->uwrt
) (void) nowwriting(curunit
);
if(a
->ciunit
>=MXUNIT
|| a
->ciunit
<0)
err(a
->cierr
,101,"startio");
recpos
=sequential
=formatted
=0;
curunit
= &units
[a
->ciunit
];
if(curunit
->ufd
==NULL
&& fk_open(DIR,UNF
,a
->ciunit
) ) err(a
->cierr
,104,"due");
if(curunit
->ufmt
) err(a
->cierr
,102,"cdue")
if(!curunit
->useek
) err(a
->cierr
,104,"cdue")
if(curunit
->ufd
==NULL
) err(a
->cierr
,114,"cdue")
(void) fseek(cf
,(long)(a
->cirec
-1)*curunit
->url
,0);
if(curunit
->url
==1 || recpos
==curunit
->url
)
(void) fseek(cf
,(long)(curunit
->url
-recpos
),1);
if(ftell(cf
)%curunit
->url
)
err(elist
->cierr
,200,"syserr");