summaryrefslogtreecommitdiffstatshomepage
path: root/src/lib/formats/ti99_dsk.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/formats/ti99_dsk.h')
-rw-r--r--src/lib/formats/ti99_dsk.h30
1 files changed, 15 insertions, 15 deletions
diff --git a/src/lib/formats/ti99_dsk.h b/src/lib/formats/ti99_dsk.h
index d596f4bb17c..d67f38acaae 100644
--- a/src/lib/formats/ti99_dsk.h
+++ b/src/lib/formats/ti99_dsk.h
@@ -14,7 +14,7 @@
#define TI99_DSK_H
#include "flopimg.h"
-#include "wd177x_dsk.h"
+#include <sstream>
class ti99_floppy_format : public floppy_image_format_t
{
@@ -26,23 +26,23 @@ public:
protected:
int decode_bitstream(const uint8_t *bitstream, uint8_t *trackdata, int *sector, int cell_count, int encoding, uint8_t gapbytes, int track_size);
uint8_t get_data_from_encoding(uint16_t raw);
+ int get_sectors(const uint8_t *bitstream, int cell_count, int encoding, int track, int head, int sectors, uint8_t *sectordata, int *secnumber);
virtual int min_heads() =0;
virtual void determine_sizes(io_generic *io, int& cell_size, int& sector_count, int& heads, int& tracks) =0;
- virtual int get_track_size(int cell_size, int sector_count) =0;
- virtual void load_track(io_generic *io, uint8_t *trackdata, int head, int track, int acttrack, int sectorcount, int trackcount, int cellsize) =0;
- virtual void write_track(io_generic *io, uint8_t *trackdata, int *sector, int track, int head, int maxsect, int maxtrack, int numbytes) =0;
+ virtual int get_track_size(int sector_count) =0;
+ virtual void load_track(io_generic *io, uint8_t *sectordata, int *sector, int *secoffset, int head, int track, int sectorcount, int trackcount) =0;
+ virtual void write_track(io_generic *io, uint8_t *sectordata, int *sector, int track, int head, int sector_count, int track_count) =0;
int get_encoding(int cell_size);
- void generate_track_fm(int track, int head, int cell_size, uint8_t* trackdata, floppy_image *image);
- void generate_track_mfm(int track, int head, int cell_size, uint8_t* trackdata, floppy_image *image);
-
- bool check_for_address_marks(uint8_t* trackdata, int encoding);
+ void generate_fm_track_from_sectors(floppy_image *image, uint8_t *sectordata, int sector_count, int *sector, int *secoffset, int track, int trackid, int head);
+ void generate_mfm_track_from_sectors(floppy_image *image, uint8_t *sectordata, int sector_count, int *sector, int *secoffset, int track, int trackid, int head);
// Debugging
- void showtrack(uint8_t* trackdata, int length);
+ void dumpbytes(uint8_t* trackdata, int length);
+ std::string dumpline(uint8_t* line, int address) const;
};
/*
@@ -58,9 +58,9 @@ public:
private:
void determine_sizes(io_generic *io, int& cell_size, int& sector_count, int& heads, int& tracks) override;
- int get_track_size(int cell_size, int sector_count) override;
- void write_track(io_generic *io, uint8_t *trackdata, int *sector, int track, int head, int maxsect, int maxtrack, int numbytes) override;
- void load_track(io_generic *io, uint8_t *trackdata, int head, int track, int acttrack, int sectorcount, int trackcount, int cellsize) override;
+ int get_track_size(int sector_count) override;
+ void write_track(io_generic *io, uint8_t *sectordata, int *sector, int track, int head, int sector_count, int track_count) override;
+ void load_track(io_generic *io, uint8_t *sectordata, int *sector, int *secoffset, int head, int track, int sector_count, int track_count) override;
// This format supports single-sided images
int min_heads() override { return 1; }
@@ -97,9 +97,9 @@ public:
private:
void determine_sizes(io_generic *io, int& cell_size, int& sector_count, int& heads, int& tracks) override;
- void load_track(io_generic *io, uint8_t *trackdata, int head, int track, int acttrack, int sectorcount, int trackcount, int cellsize) override;
- void write_track(io_generic *io, uint8_t *trackdata, int *sector, int track, int head, int maxsect, int maxtrack, int numbytes) override;
- int get_track_size(int cell_size, int sector_count) override;
+ void load_track(io_generic *io, uint8_t *sectordata, int *sector, int *secoffset, int head, int track, int sectorcount, int trackcount) override;
+ void write_track(io_generic *io, uint8_t *sectordata, int *sector, int track, int head, int sector_count, int track_count) override;
+ int get_track_size(int sector_count) override;
// This format only supports double-sided images
int min_heads() override { return 2; }