Feature #73 » atx.c.patch
| atx.c 2018-09-02 22:27:39.547686394 +0200 | ||
|---|---|---|
| // | ||
| //***************************************************************************** | ||
| #include <stdlib.h> | ||
| #include <util/delay.h> | ||
| #include "avrlibtypes.h" | ||
| #include "fat.h" | ||
| #include "atx_eclaire.h" | ||
| #include "atx.h" | ||
| // number of angular units in a full disk rotation | ||
| ... | ... | |
| u16 gBytesPerSector;                    // number of bytes per sector | ||
| u08 gSectorsPerTrack;                   // number of sectors in each track | ||
| struct atxTrackInfo gTrackInfo[2][40];  // pre-calculated info for each track and drive | ||
| struct atxTrackInfo gTrackInfo[NUM_ATX_DRIVES][40];  // pre-calculated info for each track and drive | ||
|                                         // support slot D1 and D2 only because of insufficient RAM! | ||
| u16 gLastAngle = 0; | ||
| u08 gCurrentHeadTrack = 1; | ||
| u16 gLastAngle; | ||
| u08 gCurrentHeadTrack; | ||
| u16 loadAtxFile(u08 drive) { | ||
|     struct atxFileHeader *fileHeader; | ||
| ... | ... | |
|     for (i=0; i < sectorCount; i++) { | ||
|         if (faccess_offset(FILE_ACCESS_READ, currentFileOffset, sizeof(struct atxSectorHeader))) { | ||
|             sectorHeader = (struct atxSectorHeader *) atari_sector_buffer; | ||
|             byteSwapAtxTrackChunk(sectorHeader); | ||
|             byteSwapAtxSectorHeader(sectorHeader); | ||
|             // if the sector number matches the one we're looking for... | ||
|             if (sectorHeader->number == tgtSectorNumber) { | ||
|                 // check if it's the next sector that the head would encounter angularly... | ||
| ... | ... | |
|         ret -= AU_FULL_ROTATION; | ||
|     } | ||
|     return ret; | ||
| } | ||
| } | ||
- « Previous
- 1
- 2
- 3
- 4
- Next »