function* parse() {
const utf8decoder = new TextDecoder()
const [ star0, star1, starn, stnum, mprop, nmag, nbent ] = header()
const view = new DataView(buffer.slice(28))
let offset = 0
while (offset < -starn * nbent) {
const xno = view.getFloat32(offset, littleEndian); offset += 4
const sra0 = view.getFloat64(offset, littleEndian); offset += 8
const sdec0 = view.getFloat64(offset, littleEndian); offset += 8
const is = utf8decoder.decode(new Uint8Array([view.getUint8(offset, littleEndian), view.getUint8(offset+1, littleEndian)])); offset += 2
const mag = view.getInt16(offset, littleEndian) / 100; offset += 2
const xrpm = view.getFloat32(offset, littleEndian); offset += 4
const xdpm = view.getFloat32(offset, littleEndian); offset += 4
yield { xno, sra0, sdec0, is, mag, xrpm, xdpm }
}
}