private void ButtonDirect_Click(object sender, RoutedEventArgs e) { using (var lck = new LockForm()) { _navi.Navigate(pageDirectCommand); } }
private void ButtonImage_Click(object sender, RoutedEventArgs e) { using (var lck = new LockForm()) { _navi.Navigate(pageImage); } }
private async void ButtonPortOpen_Click(object sender, RoutedEventArgs e) { using (var lck = new LockForm()) { portOpen(); var r = await confirmation(); if (r == ResultStatusMarker.Confirmation) { AppendLog("Communication confirmed. Ready.\r\n"); setEnables(true); var r2 = await getN88Version(); if (!r2) { AppendLog($"Version {statementReaultString}\r\n"); setVersionState("N88-BASIC Version " + statementReaultString + " READY"); } } else { AppendLog($"Communication Failed.[{ Util.GetErrorString(r) }] Please verify your environment. Closing Port\r\n"); portClose(); setEnables(false); } } }
private async void ButtonNext_Click(object sender, RoutedEventArgs e) { using (var lockf = new LockForm()) { setAllXX(); var diskinfo = await Util.GetDiskInf(Util.GetSelectedDrive()); int.TryParse(TextBoxTrack.Text, out int track); int.TryParse(TextBoxSector.Text, out int sector); sector++; if (sector > diskinfo.SectorsInTrack) { sector = 1; track++; if (track > diskinfo.MaxTrackNo) { track = 0; var surfaceno = ComboBoxSurface.SelectedIndex; surfaceno++; if (surfaceno > diskinfo.Surfaces) { surfaceno = 0; } ComboBoxSurface.SelectedIndex = surfaceno; } } TextBoxTrack.Text = track.ToString(); TextBoxSector.Text = sector.ToString(); await readCommon(diskinfo); } }
private async void AutoSave_Click(object sender, RoutedEventArgs e) { const string data = @"10 rem auto start program for Remove PC-8801 client 20 console 0,25,1,1 30 cls 1 40 print ""TERM MODE"" 50 color 2:print ""SHIFT+STOP"";:color 7:print "" to quit TERM mode."" 60 term ""N81NNF"",,8192 "; using (var diable = new LockForm()) { if (await Util.SendCommandAsyncAndErrorHandle("open \"" + Util.GetSelectedDrive() + ":rem88\" for output as #1 ")) { return; } var reader = new StringReader(data); for (; ;) { var s = reader.ReadLine(); if (s == null) { break; } if (await Util.SendCommandAsyncAndErrorHandle("print #1,\"" + s.Replace("\"", "\"+chr$(34)+\"") + "\"")) { return; } } if (await Util.SendCommandAsyncAndErrorHandle("close #1")) { return; } } }
private void ButtonPortClose_Click(object sender, RoutedEventArgs e) { using (var lck = new LockForm()) { portClose(); setEnables(false); } }
private async void ButtonRead_Click(object sender, RoutedEventArgs e) { using (var lockf = new LockForm()) { setAllXX(); var diskinfo = await Util.GetDiskInf(Util.GetSelectedDrive()); await readCommon(diskinfo); } }
private async void ButtonFiles_Click(object sender, RoutedEventArgs e) { using (var lck = new LockForm()) { if (port == null) { return; } await SendCommandAsync($"files {getTargetDrive()}"); } }
private void ButtonCopy_Click(object sender, RoutedEventArgs e) { using (var lck = new LockForm()) { if (info == null) { return; } var sb = new StringBuilder(); foreach (var item in info.GetType().GetFields()) { sb.AppendFormat("{0}={1}\r\n", item.Name, item.GetValue(info)); } Clipboard.Clear(); Clipboard.SetText(sb.ToString()); } }
private async Task update() { using (var lck = new LockForm()) { ListBoxDiskInfos.Items.Clear(); var driveNo = Util.GetSelectedDrive(); info = await Util.GetDiskInf(driveNo); if (info == null) { return; } foreach (var item in info.GetType().GetFields()) { var v = item.GetValue(info); var s = item.Name + "=" + v.ToString(); ListBoxDiskInfos.Items.Add(s); } } }
private async void ImageRead_Click(object sender, RoutedEventArgs e) { try { using (var lockf = new LockForm()) { string filename; if (Properties.Settings.Default.ImageAutoFileName) { filename = System.IO.Path.Combine(TextBoxDirectory.Text, DateTimeOffset.Now.ToString("yyyyMMddHHmmss") + ".d88"); } else { var dialog = new SaveFileDialog(); dialog.InitialDirectory = TextBoxDirectory.Text; dialog.Title = "Save Image"; dialog.Filter = "D88 Disk Image File(*.d88)|*.d88|All Files(*.*)|*.*"; if (dialog.ShowDialog() != true) { return; } filename = dialog.FileName; } var diskinfo = await Util.GetDiskInf(Util.GetSelectedDrive()); var format = Util.GetDiskFormatOverride(); ProgressBarDefault.Maximum = (diskinfo.Surfaces + 1) * (diskinfo.MaxTrackNo + 1) * diskinfo.SectorsInTrack; ProgressBarDefault.Value = 0; const int bytesInSector = 256; const int bytesInSectorN = 1; // 128=0, 256=1, 512=2, 1024=3, 2048=4 const int headerOffset = 0x2b0; using (var outputRawStream = File.OpenWrite(filename)) { using (var outputStream = new BinaryWriter(outputRawStream)) { // Write D88 Header var nameInFile = TextBoxNameInFile.Text; if (string.IsNullOrWhiteSpace(nameInFile)) { nameInFile = DateTimeOffset.Now.ToString("yyyyMMddHHmmss"); } var bytes = Encoding.Default.GetBytes(nameInFile); for (int i = 0; i < 16; i++) { if (bytes.Length > i) { outputStream.Write(bytes[i]); } else { outputStream.Write((byte)0); } } // ASCIZ terminater outputStream.Write((byte)0); // RESERVE 9 bytes for (int i = 0; i < 9; i++) { outputStream.Write((byte)0); } // write protect (Ignore) outputStream.Write((byte)0); // type of disk byte typeOfDisk = 0; // 2D if (diskinfo.MaxTrackNo == 80) { typeOfDisk = 0x10; //2DD } else if (diskinfo.SectorsInTrack == 26) { typeOfDisk = 0x20; //2HD } outputStream.Write(typeOfDisk); // size of disk (uint) uint sizeOfDisk = 0x2b0 + (uint)((diskinfo.Surfaces + 1) * (diskinfo.MaxTrackNo + 1) * diskinfo.SectorsInTrack * (0x10 + bytesInSector)); outputStream.Write(sizeOfDisk); // Track Table (164 Tracks) int bytesInTrack = diskinfo.SectorsInTrack * (0x10 + bytesInSector); for (int i = 0; i < 164; i++) { uint offset = 0; int surfaceNo = i / (diskinfo.MaxTrackNo + 1); if (surfaceNo <= diskinfo.Surfaces) { offset = (uint)(headerOffset + i * bytesInTrack); } outputStream.Write(offset); } for (int track = 0; track < diskinfo.MaxTrackNo + 1; track++) { for (int surface = 0; surface < diskinfo.Surfaces + 1; surface++) { //sectors in track for (int sector = 1; sector < diskinfo.SectorsInTrack + 1; sector++) { ProgressBarDefault.Value++; setStatus(diskinfo.DriveNo, format, surface, track, sector); var array = await Util.SectorRead(diskinfo.DriveNo, surface, track, sector); if (array == null) { return; } outputStream.Write((byte)track); outputStream.Write((byte)surface); outputStream.Write((byte)sector); outputStream.Write((byte)bytesInSectorN); outputStream.Write((ushort)diskinfo.SectorsInTrack); outputStream.Write((byte)0x00); // 0=DS, 0x40=SS outputStream.Write((byte)0x00); // 0=NORMAL, 0x10=DELETED DATA outputStream.Write((byte)0x00); // 0=NORMAL END, RETURNED BY DISK BIOS for (int i = 0; i < 5; i++) { outputStream.Write((byte)0x00); // RESERVE } outputStream.Write((ushort)array.Length); outputStream.Write(array, 0, array.Length); } } } } } SystemSounds.Beep.Play(); MessageBox.Show("Done Successfully: " + filename); } } finally { setStatus(""); ProgressBarDefault.Value = 0; } }