Advertisement
Guest User

Untitled

a guest
Mar 18th, 2018
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.62 KB | None | 0 0
  1. void D64::extractFile(int number, string extracted, BYTE d64_array[])
  2. {
  3. fstream prg(extracted, ios::in | ios::out | ios::binary | ios::app);
  4.  
  5. int numberEntry = 32*(number-1);
  6. int nextBlock = getNextBlock(d64_array);
  7.  
  8. if(getType(d64_array, numberEntry) == 1)
  9. {
  10. if(nextBlock != 0)
  11. {
  12. numberEntry = ((nextBlock-1)*256) + ((number-9)*32);
  13. }
  14. }
  15.  
  16. BYTE* name = getName(d64_array, numberEntry);
  17. int track = getTrack(d64_array, numberEntry);
  18. int sect = getSector(d64_array, numberEntry);
  19. int size = getSize(d64_array, numberEntry);
  20. BYTE prgArray[(size*256)+1];
  21.  
  22. cout << "extracting " << name << " to " << extracted << endl;
  23.  
  24. if(track >= 1 && track <= 17)
  25. {
  26. int block = 0;
  27. int count = 0;
  28. int next = 0;
  29. int position = 0;
  30. int tmp = 0;
  31. int loop = 254;
  32. int endOfFile = 1;
  33. int print;
  34.  
  35. while(1)
  36. {
  37. endOfFile = (d64_array[(track1_17 * (track-1)) + (sect * sectorSize) + block]);
  38. if(endOfFile == 0)
  39. {
  40. loop = (d64_array[(track1_17 * (track-1)) + (sect * sectorSize) + 1 + block]);
  41. }
  42.  
  43. for(int i = 0; i < loop; i++)
  44. {
  45. prgArray[i+next] = d64_array[(track1_17 * (track-1)) + (sect * sectorSize) + 2 + i + block];
  46. }
  47.  
  48. if(loop != 254)
  49. {
  50. break;
  51. }
  52.  
  53. tmp = position;
  54.  
  55. position = (d64_array[(track1_17 * (track-1)) + (sect * sectorSize) + 1 + block]);
  56. block = block + ((position-tmp) * 256);
  57. cout << block << endl;
  58.  
  59. count++;
  60. next = next+254;
  61. }
  62.  
  63. print = (((size - 1) * 254) + (loop-1));
  64. for(int i = 0; i < print; i++)
  65. {
  66. prg << prgArray[i];
  67. }
  68. }
  69. else if(track >= 18 && track <= 24)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement