Чтобы не плодить однокоренные темы, напишу здесь.
Разбираюсь с поддержкой дисководов на различных Орионах-128 и Орионе-ПРО. Хочу понять как же всё таки правильно и откуда растут ноги формирования сигнала выбора стороны (/SIDE). Так получилось, что изначально я собрал на Орионе-128, как выяснилось малопопулярный, КНГМД Короткина. В нём формирование сабжевого сигнала, имхо, логичное: если я хочу выбрать сторону №0, то записываю в порт конфигурации бит "0", для выбора стороны №1 - бит "1". Этот узел никаких проблем у меня никогда не вызывал, т.к. изначально работал логично и правильно.
При попытке программировать КНГМД в Орионе-ПРО, при считывании дискеты от Ориона-128, я столкнулся с ошибкой "массив не найден". Данная ошибка говорит о том, что при операции чтения сектора в течении 20 оборотов диска не был найден целевой сектор. Признаком сектора являются: адресная метка, номер сектора и номер стороны. Причём если изначально форматировать дискету на ПРО, то секторы находятся и читаются. Сделав программный "костыль" (инверсию бита стороны), разумеется удалось работать с дискетой, записанной на КНГМД Короткина, а также с дискетой, записанной на IBM-PC. Если не делать в ПО "переворачивание бита", то дискеты будут успешно форматироваться, записываться и читаться, но будут совместимы только с данной системой, а, например, записывать образы на писи возможности не будет ((
Стал анализировать схемотехнику КНГМД. У Короткина берётся прямой выход порта ТМ8 и через буфер-инвертор выводится на дисковод, т.е. аппартно сигнал инвертируется. В ПРО, а также во всех остальных КНГМД для Ориона-128 (Ленинградский, Орион-Софт, авторский) сигнал либо берётся с инверсного выхода ТМ8 и выводится через буфер-инвертор, либо берётся с прямого выхода ТМ9 и выводится через неинвертирующий буфер, т.е. аппартано сигнал не инвертируется!
Поскольку соответствующий вход дисковода называется "/SIDE1", т.е. "выбор стороны №1", активный уровень низкий, то получается, что делать в КНГМД его прямым - не логично.
Хочу понять, почему в КНГМД формирование этого сигнала различается? И самое главное - почему в большинстве КНГМД для Ориона сделано нелогично? Есть какие-то стандарты?
add
Документальное подтверждение "кривой" организации выбора стороны в реализациях КНГМД под СР/М я таки нашёл:
И даже аппаратное введение этой "кривизны" при доработке КНГМД Короткина под СР/М есть в природе!
Но зачем так сделано? Зачем нелогичность и лишние команды инверсии?






Ответить с цитированием