static void read_current_track(c1551_t *c1551) { c1551->track_len = G64_BUFFER_SIZE; c1551->buffer_pos = 0; c1551->bit_pos = 7; c1551->bit_count = 0; /* read track data */ floppy_drive_read_track_data_info_buffer(c1551->image, 0, c1551->track_buffer, &c1551->track_len); /* extract track length */ c1551->track_len = floppy_drive_get_current_track_size(c1551->image, 0); }
inline void c2040_device::read_current_track(int unit) { m_unit[unit].m_track_len = G64_BUFFER_SIZE; m_unit[unit].m_buffer_pos = 0; m_unit[unit].m_bit_pos = 7; m_bit_count = 0; // read track data floppy_drive_read_track_data_info_buffer(m_unit[unit].m_image, m_side, m_unit[unit].m_track_buffer, &m_unit[unit].m_track_len); // extract track length m_unit[unit].m_track_len = floppy_drive_get_current_track_size(m_unit[unit].m_image, m_side); }
inline void c64h156_device::read_current_track() { int track_length = G64_BUFFER_SIZE; // read track data floppy_drive_read_track_data_info_buffer(m_floppy, m_side, m_track_buffer, &track_length); // extract track length m_track_len = floppy_drive_get_current_track_size(m_floppy, m_side); // set bit pointer to track start m_buffer_pos = 0; m_bit_pos = 7; m_bit_count = 0; m_zero_count = 0; if (m_track_len) { memcpy(m_speed_buffer, m_track_buffer + m_track_len, G64_SPEED_BLOCK_SIZE); update_cycles_until_next_bit(); } }