Ejemplo n.º 1
0
filetype detect_type(FILE *infile) {
    if (ist64(infile))
        return t64;
    if (isp00(infile))
        return p00;
    if (isprg(infile))
        return prg;
    return not_a_valid_file;
}
Ejemplo n.º 2
0
int get_entry_info(int count, FILE *infile, struct program_block_info *info, unsigned int* offset) {
    unsigned char byte;
    int power;

    if (!ist64(infile))
        return 0;
    if ((count < 1) || (count > get_total_entries(infile)))
        return 0;
    if (fseek(infile, 32 + 32 * count, SEEK_SET) != 0)
        return 0;
    if (fread(&byte, 1, 1, infile) < 1)
        return 0;
    if (byte != 1)
        return 0;
    if (fread(&byte, 1, 1, infile) < 1)
        return 0;
    if (byte == 0)
        return 0;
    if (fread(&byte, 1, 1, infile) < 1)
        return 0;
    info->start = byte;
    if (fread(&byte, 1, 1, infile) < 1)
        return 0;
    info->start += byte * 256;
    if (fread(&byte, 1, 1, infile) < 1)
        return 0;
    info->end = byte;
    if (fread(&byte, 1, 1, infile) < 1)
        return 0;
    info->end += byte * 256;
    if (fseek(infile, 2, SEEK_CUR) != 0)
        return 0;
    *offset = 0;
    for (power = 0; power <= 3; power++) {
        if (fread(&byte, 1, 1, infile) < 1)
            return 0;
        *offset += byte << 8 * power;
    }
    if (fseek(infile, 4, SEEK_CUR) != 0)
        return 0;
    if (fread(info->name, 16, 1, infile) < 1)
        return 0;
    info->name[16] = 0;
    return 1;
}
Ejemplo n.º 3
0
filetype detect_type(int ingresso){
  if (ist64(ingresso)) return t64;
  if (isp00(ingresso)) return p00;
  if (isprg(ingresso)) return prg;
  return not_a_valid_file;
}