По моей просьбе, обсуждение было разделено -- эта тема остаётся для Немиги в целом. Выделенное обсуждение про эмулятор Немиги: http://zx.pk.ru/showthread.php?t=20590
Вид для печати
По моей просьбе, обсуждение было разделено -- эта тема остаётся для Немиги в целом. Выделенное обсуждение про эмулятор Немиги: http://zx.pk.ru/showthread.php?t=20590
Мне удалось списаться с А. А. Петровским, в то время он возглавлял разработку Немиги.
Надеюсь, со временем удастся получить больше информацииЦитата:
Немига у нас появилась как побочный продукт. Мы занимались проектом
двухканального цифрового анализатора спектра, где нужен был ведущий
процессор, который управлял каналом реального времени, осуществлял
вторичную обработку данных данного канала, а также обеспечивал
взаимодействие с оператором через достаточно дружественный
пользовательский интерфейс (расширенная компьтерная графика, интерактивный
диалог через инвариантные функциональные клавиши и т.д.). Так как
частотный диапазон был большой от 0,06 Гц до 1 Мгц, то работа с каналом
реального времени забирала весь ресурс управляющего процессора и, чтобы
обеспечить еще итерактивный диалог с пользователем, определило вариант
построения двухпроцессорной управляющей ЭВМ, работающей под операционной
системой. Найдены были интересные решения взаимодействия двух процессоров
между собой. Ну, и наконец, МК 588 это был единственный на тот момент
процесор, который военная приемка согласовала на использование в
анализаторе. А далее горбачевская вакханалия и партийцам потребовалось
срочно белорусский школьный компьютер (МК 588 выпускался в Минске на ПО
Интеграл). Вот мы и усеченный вариант нашей управляющей ЭВМ представили в
виде Немиги.
Автор MXonPC, любезно предоставивший мне исходники для написания MDonPC пока своего согласия на публикацию MDonPC не дал (почти месяц ему уже пишу, в ответ - тишина).
Я пока страничку с инфой по Немиге сделать не успеваю, а куски, которые давал разработчикам эмуляторов под неразглашение всё-равно явно или неявно публикуются. :-(
Вот про формат диска:
Скрытый текст
Формат дорожки следующий:
Заголовок (10 байт):
1й байт - маркер начала дорожки
2й байт - номер дорожки
3й байт - кол-во секторов на дорожке (обычно 0x17 )
4й байт - неизвестно (вроде всегда 00)
5-6 байты - номер логического сектора (слово), с ко-
торого начинается дорожка (отсчет сквоз -
ной с нулевой дорожки)
7-8 байты - статус дорожки (слово), более точных дан-
ных нет, обычно FF FF)
9-10 байты - контрольная сумма заголовка (слово)
далее идут сектора по 128 байт плюс слово контрольной
суммы для каждого сектора
Особо нужно отметить что число секторов переменно: если
дорожка имеет физические дефекты, не позволяющие разместить
на ней все 17 секторов, то число секторов уменьшается. При
этом изменяется число секторов в заголовке дорожки. Чтобы
при поиске блока информации драйвер не ошибался в расчетах
номера дорожки используется особый сектор, расположенный
первым на младшей дорожке, в котором каждый байт соответ-
ствует дорожке по номеру и содержит число секторов на этой
дорожке.
Драйвер MD использует каждую физическую сторону диска как
отдельный логический диск. Так для младшего привода су-
ществуют MD0 и MD1.
[свернуть]
Важно отметить, что читаемый формат дорожки отличается от записываемого.
Запись дорожки начинается по сигналу INDEX. В этот момент на дорожку начинают писаться нулевые байты ( минимальное количество, предположительно == 8, максимальное - любое ) и лишь затем пишется "синхробайт" 0363 - по которому контроллер при чтении определяет начало байта и начинает чтение. Вот почему при чтении первым читается байт 0363, хотя при записи перед ним пишутся нулевые байты.
Что MX что MD не оперируют физически секторами, минимальная порция чтения/записи - дорожка. Нет никаких программных и, тем более, аппаратных возможностей распознать начало N-ного сектора.
---------- Post added at 23:39 ---------- Previous post was at 23:30 ----------
Это и так логически понятно:
1) дорожка пишется целиком, соответственно операция форматирования никак не отличается от операции записи (не считая данных).
2) раз бывают неформатированные дискеты, то мы запись/форматирование никак не можем привязать к какому-либо маркеру, кроме аппаратного индекса.
3) не MX не MD не имеют схем определения синхросбоя, поэтому мы не можем писать дорожку с произвольного места.
Кстати, я бы все-таки не называл маркер синхробайтом: синхробайтами являются как раз те самые ведущие нули, так как по ним кнгмд синхронизирует читалку (выставляет окно чтения относительно входного битового потока, чтобы выборка данных производилась именно в момент их поступления, а не в момент поступления битов синхронизации и тем более не между битами), и только после этого может искать маркер 0363.
Сегодня лично был у Александра Александровича Петровского. Инфомации есть очень много, софт есть, всё есть, живая Немига есть.... Будем ковырять, перегонять, всё делать, но только после сессии. Подробности позже.