fixed fifo_read