diff --git a/atrcopy/ataridos.py b/atrcopy/ataridos.py index 1681def..ec2db9a 100644 --- a/atrcopy/ataridos.py +++ b/atrcopy/ataridos.py @@ -578,10 +578,22 @@ class AtariDosDiskImage(DiskImageBase): start, count = self.get_contiguous_sectors(self.first_vtoc, self.num_vtoc) segment = RawSectorsSegment(r[start:start+count], self.first_vtoc, self.num_vtoc, count, 128, 3, self.header.sector_size, name="VTOC") segment.style[:] = get_style_bits(data=True) + segment.set_comment_at(0x00, "Type code") + segment.set_comment_at(0x01, "Total number of sectors") + segment.set_comment_at(0x03, "Number of free sectors") + segment.set_comment_at(0x05, "reserved") + segment.set_comment_at(0x06, "unused") + segment.set_comment_at(0x0a, "Sector bit map") + segment.set_comment_at(0x64, "unused") segments.append(segment) if self.vtoc2 > 0: start, count = self.get_contiguous_sectors(self.vtoc2, 1) segment = RawSectorsSegment(r[start:start+count], self.vtoc2, 1, count, 128, 3, self.header.sector_size, name="VTOC2") + segment.style[:] = get_style_bits(data=True) + segment.set_comment_at(0x00, "Repeat of sectors 48-719") + segment.set_comment_at(0x44, "Sector bit map 720-1023") + segment.set_comment_at(0x7a, "Number of free sectors above 720") + segment.set_comment_at(0x7c, "unused") segments.append(segment) return segments @@ -592,6 +604,14 @@ class AtariDosDiskImage(DiskImageBase): start, count = self.get_contiguous_sectors(361, 8) segment = RawSectorsSegment(r[start:start+count], 361, 8, count, 128, 3, self.header.sector_size, name="Directory") segment.style[:] = get_style_bits(data=True) + index = 0 + for filenum in range(64): + segment.set_comment_at(index + 0x00, "FILE #%d: Flag" % filenum) + segment.set_comment_at(index + 0x01, "FILE #%d: Number of sectors in file" % filenum) + segment.set_comment_at(index + 0x03, "FILE #%d: Starting sector number" % filenum) + segment.set_comment_at(index + 0x05, "FILE #%d: Filename" % filenum) + segment.set_comment_at(index + 0x0d, "FILE #%d: Extension" % filenum) + index += 16 segments.append(segment) return segments diff --git a/atrcopy/dos33.py b/atrcopy/dos33.py index 0e48dae..482df40 100644 --- a/atrcopy/dos33.py +++ b/atrcopy/dos33.py @@ -496,6 +496,25 @@ class Dos33DiskImage(DiskImageBase): start, count = self.get_contiguous_sectors(self.header.first_vtoc, 1) segment = RawTrackSectorSegment(r[start:start+count], self.header.first_vtoc, 1, count, 0, 0, self.header.sector_size, name="VTOC") segment.style[:] = get_style_bits(data=True) + segment.set_comment_at(0x00, "unused") + segment.set_comment_at(0x01, "Track number of next catalog sector") + segment.set_comment_at(0x02, "Sector number of next catalog sector") + segment.set_comment_at(0x03, "Release number of DOS used to format") + segment.set_comment_at(0x04, "unused") + segment.set_comment_at(0x06, "Volume number") + segment.set_comment_at(0x07, "unused") + segment.set_comment_at(0x27, "Number of track/sector pairs per t/s list sector") + segment.set_comment_at(0x28, "unused") + segment.set_comment_at(0x30, "Last track that sectors allocated") + segment.set_comment_at(0x31, "Track allocation direction") + segment.set_comment_at(0x32, "unused") + segment.set_comment_at(0x34, "Tracks per disk") + segment.set_comment_at(0x35, "Sectors per track") + segment.set_comment_at(0x36, "Bytes per sector") + index = 0x38 + for track in range(35): + segment.set_comment_at(index, "Free sectors in track %d" % track) + index += 4 segments.append(segment) return segments @@ -513,6 +532,22 @@ class Dos33DiskImage(DiskImageBase): raw = self.rawdata.get_indexed(byte_order) segment = DefaultSegment(raw, name="Catalog") segment.style[:] = get_style_bits(data=True) + index = 0 + filenum = 0 + while index < len(segment): + segment.set_comment_at(index + 0x00, "unused") + segment.set_comment_at(index + 0x01, "Track number of next catalog sector") + segment.set_comment_at(index + 0x02, "Sector number of next catalog sector") + segment.set_comment_at(index + 0x03, "unused") + index += 0x0b + for i in range(7): + segment.set_comment_at(index + 0x00, "FILE #%d: Track number of next catalog sector" % filenum) + segment.set_comment_at(index + 0x01, "FILE #%d: Sector number of next catalog sector" % filenum) + segment.set_comment_at(index + 0x02, "FILE #%d: File type" % filenum) + segment.set_comment_at(index + 0x03, "FILE #%d: Filename" % filenum) + segment.set_comment_at(index + 0x21, "FILE #%d: Number of sectors in file" % filenum) + index += 0x23 + filenum += 1 segments.append(segment) return segments diff --git a/atrcopy/segments.py b/atrcopy/segments.py index cd7bbc0..992f8dd 100644 --- a/atrcopy/segments.py +++ b/atrcopy/segments.py @@ -804,11 +804,14 @@ class DefaultSegment(object): comments.append(comment) return has_comments, comments + def set_comment_at(self, index, text): + rawindex = self.get_raw_index(index) + self.rawdata.extra.comments[rawindex] = text + def set_comment(self, ranges, text): self.set_style_ranges(ranges, comment=True) for start, end in ranges: - rawindex = self.get_raw_index(start) - self.rawdata.extra.comments[rawindex] = text + self.set_comment_at(start, text) def get_comment(self, index): rawindex = self.get_raw_index(index)