1
0
mirror of https://github.com/gryf/uc1541.git synced 2026-03-01 14:15:52 +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 & 1), 2), '???')
def _get_d64_offset(self, track, sector):
def _get_offset(self, track, sector):
"""
Return offset (in bytes) for specified track and sector.
"""
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
return 0
def _harvest_entries(self):
"""
@@ -293,6 +274,37 @@ class D64(Disk):
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):
"""