- if (ds&ERR) {
- if (errcnt == 0)
- printf("tape error: ds=%x, er=%x, mbasr=%x",
- htp->htds, htp->hter,
- HTMBA->mba_sr);
- htinit();
- if (errcnt == 10) {
- printf("\n");
- return(-1);
+ if (ds & HTDS_ERR) {
+ htaddr->htcs1 = HT_DCLR|HT_GO;
+ if ((er & HTER_CORCRC) == 0) {
+ printf("ht error: ds=%b, er=%b\n",
+ MASKREG(ds), HTDS_BITS,
+ MASKREG(er), HTER_BITS);
+ if (errcnt++ == 10) {
+ printf("ht: unrecovered error\n");
+ return (-1);
+ }
+ htstrategy(io, HT_SREV);
+ goto retry;