@@ 110,6 110,7 @@ Type floppytype[] =
{ "5¼HD", T1200kb, 512, 15, 2, 1, 80, 0x2A, 0x50, 0, },
{ "5¼DD", T1200kb, 512, 9, 2, 2, 40, 0x2A, 0x50, 1, },
{ "5¼DD", T360kb, 512, 9, 2, 1, 40, 0x2A, 0x50, 2, },
+ { "ATT3B1", T360kb, 512, 8, 2, 1, 48, 0x2A, 0x50, 2, },
};
#define NTYPES (sizeof(floppytype)/sizeof(Type))
@@ 158,9 158,16 @@ fcalliput(Queue *q, Block *bp)
if(q->len < len)
return;
-
- pullup(q->first, len);
- bp = q->first;
+
+ /*
+ * the lock here is wrong. it should be a qlock since
+ * the pullup may block. not worth fixing.
+ */
+ lock(q);
+ bp = q->first = pullup(q->first, len);
+ if(bp == 0)
+ q->len = 0;
+ unlock(q);
need = len+bp->rptr[off]+(bp->rptr[off+1]<<8);
if(q->len < need)
return;