//返回1成功,返回0失败 uint8_t read_rom(void) { uint8_t i, j, rt = 0; ow_rst(); send_cmd(CMD_READ_ROM); for(i = 0; i < 8; i ++) { rt = read_dat((rom_buf + i)); if (rt == 0) { //读取失败返回0 for (j = 0; j < 8; j ++) { rom_buf[j] = 0; } return 0; } } //读取成功返回1 return 1; }
//返回1成功,返回0失败 uint8_t read_mem(void) { uint8_t i, j, rt = 0; // ow_rst(); // send_cmd(CMD_SKIP_ROM); send_cmd(CMD_READ_MEM); send_cmd(0x00); send_cmd(0x00); for(i = 0; i < 133; i ++) { rt = read_dat((mem_buf + i)); if (rt == 0) { //读失败则返回0 for (j = 0; j < 133; j ++) { mem_buf[j] = 0; } return 0; } } //成功返回1 return 1; }
int main(int argc, char *argv[]) { uint8_t *dat = NULL; uint32_t sz, ocnt, area; int alt, idx = 0, i, type = 0; const quest_dat_hdr_t *ptrs[2][18] = { { 0 } }; const quest_dat_hdr_t *hdr; /* Parse the command line... */ parse_command_line(argc, argv); /* See if we got a .qst file a .dat file. */ type = is_qst(filename, version); if(type == 1) { dat = read_qst(filename, &sz, version); } else if(!type) { dat = read_dat(filename, &sz, compressed); } if(!dat) { printf("Confused by earlier errors, bailing out.\n"); return -1; } parse_quest_objects(dat, sz, &ocnt, ptrs); printf("Found %d objects\n", (int)ocnt); for(i = 0; i < 18; ++i) { if((hdr = ptrs[1][i])) { /* XXXX: Ugly! */ sz = LE32(hdr->size); area = LE32(hdr->area); alt = 0; if((episode == 3 && area > 5) || (episode == 2 && area > 15)) alt = 1; if(parse_map((map_enemy_t *)(hdr->data), sz / sizeof(map_enemy_t), episode, alt, &idx, (int)area)) { printf("Cannot parse map!\n"); return -4; } } } return 0; }
int main(int argc, char **argv) { ac = argc; avp = argv; reset_element_information(); if (argc < 2) { moldyn_usage(); } moldyn_init_graphics(&argc, argv, argv[1]); read_dat(); if (autoscale) { analyze(); } read_cycle(); range = fabs(zmax) + fabs(zmin); if (range < fabs(xmax) + fabs(xmin)) range = fabs(xmax) + fabs(xmin); if (range < fabs(ymax) + fabs(ymin)) range = fabs(ymax) + fabs(ymin); magnification = pow(1.2, (double) magstep); zeye = -2.0 * range * magnification; moldyn_update_graphics(); if (povray <= 0) { start_mainloop(); } else { makePov(MOLDYN_EXPORT_TO_PNG); } return 0; }