28 using System.Collections.Generic;
 
   32 using System.Threading.Tasks;
 
   34 using System.Windows.Controls;
 
   36 using System.Windows.Documents;
 
   37 using System.Windows.Input;
 
   38 using System.Windows.Media;
 
   39 using System.Windows.Media.Imaging;
 
   40 using System.Windows.Shapes;
 
   52             InitializeComponent();
 
   63             displayBuffer.FontFamily = 
new FontFamily(
"Consolas");
 
   64             displayBuffer.FontSize = 16;
 
   65             displayBuffer.FontStyle = FontStyles.Normal;
 
   66             displayBuffer.FontWeight = FontWeights.Normal;
 
   70             displayBuffer.AppendText(String.Format(
"Track {0:D2}.{1} has {2} sectors\n", track, side, t.
sectorCount));
 
   72                 displayBuffer.AppendText(String.Format(
"Sector {0}", t.
sectors[sect].
id.
number));
 
   73                 displayBuffer.AppendText(String.Format(
" T={0} H={1} N={2} S={3} CRC={4:X4}",
 
   77                     displayBuffer.AppendText(String.Format(
" has {0} bytes\n", t.
sectors[sect].
sectorData.Count()));
 
   80                         "Good CRC" : 
"Bad CRC", (t.
sectors[sect].
fuzzyData != null) ? 
"Has Fuzzy bytes" : 
""));
 
   83                         displayBuffer.AppendText(String.Format(
"\nFuzzy bytes for sector {0}\n", t.
sectors[sect].
fuzzyData.Count()));
 
   87                         displayBuffer.AppendText(String.Format(
"\nTiming values for sector {0}\n", t.
sectors[sect].
timmingData.Count()));
 
   96                     displayBuffer.AppendText(
" *** Sector has no data ***\n");
 
   97                 displayBuffer.AppendText(
"\n");
 
  111             if (floppy == null) 
return;
 
  113             displayBuffer.FontFamily = 
new FontFamily(
"Consolas");
 
  114             displayBuffer.FontSize = 16;
 
  115             displayBuffer.FontStyle = FontStyles.Normal;
 
  116             displayBuffer.FontWeight = FontWeights.Normal;
 
  118             displayBuffer.AppendText(String.Format(
"Track {0:D2}.{1} {2} bytes with {3} sectors\n",
 
  123                 displayBuffer.AppendText(
"Track has no Track Image Data Record");
 
  131         public void drawBuffer(byte[] buffer, 
string message = null) {
 
  132             displayBuffer.FontFamily = 
new FontFamily(
"Consolas");
 
  133             displayBuffer.FontSize = 16;
 
  134             displayBuffer.FontStyle = FontStyles.Normal;
 
  135             displayBuffer.FontWeight = FontWeights.Normal;
 
  137                 displayBuffer.AppendText(message);
 
  139             for (
int i = 0; i < buffer.Count(); i += 16) {
 
  140                 displayBuffer.AppendText(String.Format(
"{0:D5}  ", i));
 
  143                 for (
int j = 0; j < 16; j++) {
 
  144                     if ((i + j) < buffer.Count()) {
 
  145                         displayBuffer.AppendText(String.Format(
"{0:X2} ", buffer[i + j]));
 
  146                         char ch = Convert.ToChar(buffer[i + j]);
 
  147                         ascii += Char.IsControl(ch) ? 
"." : ch.ToString();
 
  150                         displayBuffer.AppendText(String.Format(
"   "));
 
  152                 displayBuffer.AppendText(ascii);
 
  153                 displayBuffer.AppendText(String.Format(
"\n"));
 
Track[,] tracks
Array of Tracks
ushort crc
CRC Value from address field
BufferWindow()
Create a new BufferWindow object. 
byte track
Track number from address field
uint sectorCount
Number of sectors for this track
ushort bitPosition
position in the track of the sector address field in bits
byte size
Size value from address field
byte[] trackData
buffer for the track data if necessary
Contains information about one Track
void displaySectorBuffer(Floppy floppy, int track, int side)
Draw the content of the buffer 
Interaction logic for TrackBuffer.xaml 
Contains information about a complete Floppy disk
IDField id
Address field content
const byte CRC_ERR
CRC Error (in Data if RNF=0 else in ID)
Pasti File Sector Descriptor
byte number
Sector number from address field
uint byteCount
Number of bytes in the track
Sector[] sectors
Array of Sectors
byte[] sectorData
buffer for the sector data
void displayTrackBuffer(Floppy floppy, int track, int side)
Display the content of the Track Information in a textbox 
ushort[] timmingData
buffer for timing bytes if necessary
void drawBuffer(byte[] buffer, string message=null)
Display the content of TrackBuffer buffer in the displayBuffer TextBox 
byte side
Head number from address field
byte[] fuzzyData
buffer for fuzzy mask bytes if necessary
byte fdcFlags
Status returned by the FDC