void legacy_floppy_image_device::flopimg_get_id_callback(chrn_id *id, int id_index, int side) { int cylinder, sector, N; unsigned long flags; UINT32 sector_length; if (!m_floppy) return; floppy_get_indexed_sector_info(m_floppy, side, m_track, id_index, &cylinder, &side, §or, §or_length, &flags); N = compute_log2(sector_length); id->C = cylinder; id->H = side; id->R = sector; id->data_id = id_index; id->flags = flags; id->N = ((N >= 7) && (N <= 10)) ? N - 7 : 0; }
static void flopimg_get_id_callback(mess_image *image, chrn_id *id, int id_index, int side) { struct mess_flopimg *flopimg; int cylinder, sector, N; UINT32 sector_length; flopimg = get_flopimg(image); if (!flopimg || !flopimg->floppy) return; floppy_get_indexed_sector_info(flopimg->floppy, side, flopimg->track, id_index, &cylinder, &side, §or, §or_length); N = compute_log2(sector_length); id->C = cylinder; id->H = side; id->R = sector; id->data_id = id_index; id->flags = 0; id->N = ((N >= 7) && (N <= 10)) ? N - 7 : 0; }
static void flopimg_get_id_callback(device_t *image, chrn_id *id, int id_index, int side) { floppy_drive *flopimg; int cylinder, sector, N; unsigned long flags; UINT32 sector_length; flopimg = get_safe_token( image ); if (!flopimg || !flopimg->floppy) return; floppy_get_indexed_sector_info(flopimg->floppy, side, flopimg->track, id_index, &cylinder, &side, §or, §or_length, &flags); N = compute_log2(sector_length); id->C = cylinder; id->H = side; id->R = sector; id->data_id = id_index; id->flags = flags; id->N = ((N >= 7) && (N <= 10)) ? N - 7 : 0; }
static int tzx_handle_generalized(int16_t **buffer, const uint8_t *bytes, int pause, int data_size, uint32_t totp, int npp, int asp, uint32_t totd, int npd, int asd ) { int size = 0; if (totp > 0) { // printf("pilot block table %04x\n", totp); const uint8_t *symtable = bytes; const uint8_t *table2 = symtable + (2 * npp + 1)*asp; // the Pilot and sync data stream has an RLE encoding for (int i = 0; i < totp; i+=3) { uint8_t symbol = table2[i + 0]; uint16_t repetitions = table2[i + 1] + (table2[i + 2] << 8); //printf("symbol %02x repetitions %04x\n", symbol, repetitions); // does 1 mean repeat once, or that it only occurs once? for (int j = 0; j < repetitions; j++) { size += tzx_handle_symbol(buffer, symtable, symbol, npp); } } // advance to after this data bytes += ((2 * npp + 1)*asp) + totp * 3; } if (totd > 0) { // printf("data block table %04x (has %0d symbols, max symbol length is %d)\n", totd, asd, npd); const uint8_t *symtable = bytes; const uint8_t *table2 = bytes + (2 * npd + 1)*asd; int NB = ceil(compute_log2(asd)); // number of bits needed to represent each symbol uint8_t stream_bit = 0; uint32_t stream_byte = 0; for (int i = 0; i < totd; i++) { uint8_t symbol = 0; for (int j = 0; j < NB; j++) { symbol |= stream_get_bit(table2, stream_bit, stream_byte) << j; } size += tzx_handle_symbol(buffer, symtable, symbol, npd); } } /* pause */ if (pause > 0) { int start_pause_samples = millisec_to_samplecount(1); int rest_pause_samples = millisec_to_samplecount(pause - 1); tzx_output_wave(buffer, start_pause_samples); size += start_pause_samples; wave_data = WAVE_LOW; tzx_output_wave(buffer, rest_pause_samples); size += rest_pause_samples; } return size; }
reuse_time_t::reuse_time_t(unsigned int line_size, unsigned int verbose) : time_stamp(0), knob_verbose(verbose), knob_line_size(line_size) { line_size_bits = compute_log2((int)knob_line_size); }