MCPcopy Create free account
hub / github.com/BlitterStudio/amiberry / drive_write_ext2

Function drive_write_ext2

src/disk.cpp:2854–2875  ·  view source on GitHub ↗

write raw track to disk file */

Source from the content-addressed store, hash-verified

2852
2853/* write raw track to disk file */
2854static int drive_write_ext2 (uae_u16 *bigmfmbuf, struct zfile *diskfile, trackid *ti, int tracklen)
2855{
2856 int len, i, offset;
2857
2858 offset = 0;
2859 len = (tracklen + 7) / 8;
2860 if (len > ti->len) {
2861 write_log (_T("disk raw write: image file's track %d is too small (%d < %d)!\n"), ti->track, ti->len, len);
2862 offset = (len - ti->len) / 2;
2863 len = ti->len;
2864 }
2865 diskfile_update (diskfile, ti, tracklen, TRACK_RAW);
2866 for (i = 0; i < ti->len / 2; i++) {
2867 uae_u16 *mfm = bigmfmbuf + ((i + offset) % MAXMFMBUF);
2868 uae_u16 *mfmw = bigmfmbufw + ((i + offset) % MAXMFMBUF);
2869 uae_u8 *data = (uae_u8 *) mfm;
2870 *mfmw = 256 * *data + *(data + 1);
2871 }
2872 zfile_fseek (diskfile, ti->offs, SEEK_SET);
2873 zfile_fwrite (bigmfmbufw, 1, len, diskfile);
2874 return 1;
2875}
2876
2877static void drive_write_data (drive * drv);
2878

Callers 1

drive_write_dataFunction · 0.85

Calls 4

diskfile_updateFunction · 0.85
zfile_fseekFunction · 0.85
zfile_fwriteFunction · 0.85
write_logFunction · 0.70

Tested by

no test coverage detected