>> why on EARTH would you be using assembly to write to a floppy
Fun is a good enough reason for me
Code:
#include <iostream>
using namespace std;
#define NUM_SIDES 2
#define TRACKS_PER_SIDE 80
#define SECTORS_PER_TRACK 18
#define SECTORS_PER_SIDE (TRACKS_PER_SIDE * SECTORS_PER_TRACK)
size_t LogicalFloppySector(size_t side, size_t track, size_t track_sec)
{
// do some range checking on params here
// params are 1 based values - calculations need 0 based values
side--;
track--;
track_sec--;
return (side * SECTORS_PER_SIDE) + // get to right side
(track * SECTORS_PER_TRACK) + // get to right track
track_sec; // get to right sector on track
}//LogicalFloppySector
int main()
{
size_t side, track, track_sec;
for (side = 1; side <= NUM_SIDES; side++)
for (track = 1; track <= TRACKS_PER_SIDE; track++)
for (track_sec = 1; track_sec <= SECTORS_PER_TRACK; track_sec++)
cout << LogicalFloppySector(side, track, track_sec) << ", ";
return 0;
}//main
Output: 0, 1, ... , 2879
Google("reading floppy disk sector win32")
Reading/Writing Disk Sectors (Absolute Disk Read/Write)
gg