MCPcopy Create free account
hub / github.com/davidgiven/fluxengine / printMap

Method printMap

lib/imagewriter/imagewriter.cc:102–179  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

100}
101
102void ImageWriter::printMap(const Image& image)
103{
104 Geometry geometry = image.getGeometry();
105
106 int badSectors = 0;
107 int missingSectors = 0;
108 int totalSectors = 0;
109
110 std::cout << " Tracks -> ";
111 for (unsigned i = 10; i < geometry.numCylinders; i += 10)
112 std::cout << fmt::format("{:<10d}", i / 10);
113 std::cout << std::endl;
114 std::cout << "H.SS ";
115 for (unsigned i = 0; i < geometry.numCylinders; i++)
116 std::cout << std::to_string(i % 10);
117 std::cout << std::endl;
118
119 for (int side = 0; side < geometry.numHeads; side++)
120 {
121 int maxSector = geometry.firstSector + geometry.numSectors - 1;
122 for (int sectorId = 0; sectorId <= maxSector; sectorId++)
123 {
124 if (sectorId < geometry.firstSector)
125 continue;
126
127 std::cout << fmt::format("{}.{:2} ", side, sectorId);
128 for (int track = 0; track < geometry.numCylinders; track++)
129 {
130 const auto& sector = image.get(track, side, sectorId);
131 if (!sector)
132 {
133 std::cout << 'X';
134 missingSectors++;
135 }
136 else
137 {
138 switch (sector->status)
139 {
140 case Sector::OK:
141 std::cout << '.';
142 break;
143
144 case Sector::BAD_CHECKSUM:
145 std::cout << 'B';
146 badSectors++;
147 break;
148
149 case Sector::CONFLICT:
150 std::cout << 'C';
151 badSectors++;
152 break;
153
154 default:
155 std::cout << (int)sector->status;
156 break;
157 }
158 }
159 totalSectors++;

Callers 1

readDiskCommandFunction · 0.80

Calls 2

to_stringFunction · 0.85
getMethod · 0.45

Tested by

no test coverage detected