1
0
mirror of https://github.com/gryf/uc1541.git synced 2026-02-21 00:35:45 +01:00

Moving offset calculation out of base class

This commit is contained in:
2019-09-20 16:04:33 +02:00
parent eb57773166
commit f8da7bf58e

54
uc1541
View File

@@ -224,30 +224,11 @@ class Disk(object):
num & 2 and 1, num & 2 and 1,
num & 1), 2), '???') num & 1), 2), '???')
def _get_d64_offset(self, track, sector): def _get_offset(self, track, sector):
""" """
Return offset (in bytes) for specified track and sector. Return offset (in bytes) for specified track and sector.
""" """
return 0
offset = 0
truncate_track = 0
if track > 17:
offset = 17 * 21 * 256
truncate_track = 17
if track > 24:
offset += 6 * 19 * 256
truncate_track = 24
if track > 30:
offset += 5 * 18 * 256
truncate_track = 30
track = track - truncate_track
offset += track * sector * 256
return offset
def _harvest_entries(self): def _harvest_entries(self):
""" """
@@ -293,6 +274,37 @@ class D64(Disk):
Implement d64 directory reader Implement d64 directory reader
""" """
def _get_offset(self, track, sector):
"""
Return offset (in bytes) for specified track and sector.
Track Sectors/track # Tracks
----- ------------- ---------
1-17 21 17
18-24 19 7
25-30 18 6
31-40 17 10
"""
offset = 0
truncate_track = 0
if track > 17:
offset = 17 * 21 * SECLEN
truncate_track = 17
if track > 24:
offset += 7 * 19 * SECLEN
truncate_track = 24
if track > 30:
offset += 6 * 18 * SECLEN
truncate_track = 30
track = track - truncate_track
offset += track * sector * SECLEN
return offset
class D71(Disk): class D71(Disk):
""" """