PDA

Просмотр полной версии : Нужно описание регистров Специалист MX



Saar
31.03.2016, 06:25
Не могу найти хорошее описание всех регистров сабжа.
Везде только схемы и очень общие описания распределения памяти.

Есть ли где конкретные описания регистров с описанием битов в каждом? Управление памятью, цветом и т.д.

P.S.: инфа о портах управления памятью тут: http://zx-pk.ru/showthread.php?t=26394&p=865918&viewfull=1#post865918

HardWareMan
31.03.2016, 11:03
Там все так просто, что описания не нужны. Но всегда можно подсмотреть в моем треде про МХ2, например.

Saar
31.03.2016, 11:48
HardWareMan,
не нашел я в вашем треде ничего про регистры, если имеется в виду этот: http://zx-pk.ru/showthread.php?t=24003
Нигде нет инфы про регистр цвета (для обычного Специалиста инфа была в МК, а про MX нигде нет) и про регистры управления переключением страниц.
Это какая-то секретная инфа?

fifan
31.03.2016, 15:04
А поискать здесь (http://www.spetsialist-mx.ru/index8.html) и здесь (http://www.spetsialist-mx.ru/index18.html) и здесь (http://www.spetsialist-mx.ru/index23.html).

Есть ли где конкретные описания регистров с описанием битов в каждом? Управление памятью, цветом и т.д.
Ответ: под термином "регистр" что имеется ввиду? Для работы сабжа именно достаточна информация об распределении памяти. Нужно вдумчиво прочитать и посмотреть по схеме селектора адресов назначение выходов U0...U7 и этого вполне достаточно. Например нужно чётко представить себе назначение битов 2,1,0 при работе RAM-диска, далее я привёл ссылку на схему контроллера цвета с таблицей цветов побитно и наконец разобраться с действием при обращении к адресам FFFC/FFFD/FFFD (указано в таблице в моей ссылке).

Странно, что не зашли на указанный мой сайт. Он указывается в первых строках во всех поисковых системах при вводе "Специалист МХ".

Saar
31.03.2016, 15:18
fifan,
С чего вы взяли что я не видел ваш сайт? Весь его пролистал и ответов не нашел. Распределение памяти недостаточно чтобы точно знать за что отвечает каждый бит в указанных мной регистрах(портах).
У вас там много общераспространенной инфы о том же ВИ53, которую действительно можно найти на сотне разных сайтов. Зачем надо было это копипастить? А вот инфы конкретно о данном железе недостаточно. Ну не получается у меня по схеме вычислить все биты, и самого компа живьем не было.

Хорошо что я не начал писать эмулятор Специалиста первым. По другим компам обсуждение на данном форуме было как-то поприветливее.

HardWareMan
31.03.2016, 17:16
Пишете "Еще Один Эмулятор Специалиста"? По регистрам там вся инфа есть. Для Специалиста любой регистр это ячейка памяти - т.е. тут работает распределение памяти, которую вы не хотите изучить. Далее, написано "дополнительный порт ВВ55" - значит обращение к этим ячейкам является обращением к ВВ55. А инфу на ВВ55 берем рядом. Это так сложно?

И контрольный в голову: говорите посещали сайт (http://www.spetsialist-mx.ru/index8.html)? А как же вы тогда пропустили брошюру (http://www.spetsialist-mx.ru/Docs/RAMFOS.djvu) от создателей? Причем там рядом PDF вариант от Фифана лежит. Прочитавший ее вопросов не задает обычно.

fifan
31.03.2016, 17:24
Этой информации вполне достаточно было для написания эмулятора от b2m и компьютера на ПЛИС (http://www.spetsialist-mx.ru/index34.html). Нет на Специалисте МХ какого-то специфического распределения портов побитно, кроме мною указанного как на Спектруме. Какой ещё конкретной информации о железе не достаточно? И так всё вроде разжёвано, ну разве для лучшего понимания можно ещё привести схему селектора адресов от HardWareMan'а (http://www.spetsialist-mx.ru/schemes/AddressSelectorMXHWM.png).

Saar
31.03.2016, 18:22
А как же вы тогда пропустили брошюру от создателей?
за указание на эту брошюру спасибо. Кто бы мог предположить, что под названием ОС находится описание железа.
Посмотрю насколько ее достаточно будет.


Пишете "Еще Один Эмулятор Специалиста"?
Да. Нормальных эмуляторов Специалиста с хорошо-читаемым кодом для FPGA нет. Поэтому пишу практически с нуля. Сам Специалист уже готов и работает, поскольку там всё очевидно. А вот с МХ возникли загвоздки.

- - - Добавлено - - -


Далее, написано "дополнительный порт ВВ55" - значит обращение к этим ячейкам является обращением к ВВ55. А инфу на ВВ55 берем рядом. Это так сложно?
А разве сложно прочитать мои посты и понять что я не спрашивал инфу про порты ВВ55? Не надо мне приписывать того что я не писал.
Я писал про порты специфичные железу Специалиста, а не ВВ55 или ВИ53.

Ладно, я гляжу дискуссия конструктивная не складывается. Всем спасибо. Разберусь как нибудь.

HardWareMan
31.03.2016, 21:01
У Специалиста МХ специфичного железа нет. Вас задел регистр цвета? Ну это просто номер цвета чернил и бумаги при выводе ЧБ картинки в экран. Не более. Других "регистров" нет. Переключение страниц в базовом варианте (128К) является сам факт записи в $FFFC..$FFFF, поэтому РАМФОС туда пишет мусор и ему пофигу.

ВВ55 была абстрактным примером.

Saar
01.04.2016, 07:50
Переключение страниц в базовом варианте (128К) является сам факт записи в $FFFC..$FFFF, поэтому РАМФОС туда пишет мусор и ему пофигу.
то есть, если я буду переключать страницы ОЗУ согласно битам 0..2, то RAMFOS не будет работать?
Смутила еще довольно странная терминология "открытие страниц" и "закрытие страниц". Правильно ли я понимаю, что если записать любое число в FFFC то просто включится отображение 0 страницы ОЗУ?

- - - Добавлено - - -

HardWareMan,
еще по поводу звука непонятно:
Там с выхода второй ВВ55 PA0 идет резистор на выход 2 ВИ53. Мне сложно по схеме сказать кто кого пересилит - резистор или внутреннее сопротивление ВИ53.
По сему два варианта вижу:
1) при PA0=1 вход ЛЕ1 переходит в состояние 1 и запрещает вывод звука с ВИ53. При PA0=0, соответственно разрешается вывод звука с ВИ53.
2) при PA0=0 выход 2 ВИ53 притягивается к земле и запрещается вывод звука со 2 канала. 0 канал всегда разрешен для вывода.
какой правильный?

- - - Добавлено - - -

Кстати, описание битов цвета для оригинального Специалиста на сайте fifan неправильное. Там должно быть с инверсией в порту и R с G местами перепутаны (см. MК 1990/8).

HardWareMan
01.04.2016, 08:29
Факт записи переключает активное ОЗУ (основное или дополнительное) или ПЗУ (при этом не трогается область FFC0-FFFF). Данные на ШД (номер страницы) в исходной схеме не реализован и соответственно не учитывается. Но он может учитываться в доработках, вроде МХ2. И я уже не помню, кто из системного софта использует корректно: RAMFOS или NC. Vinxru раскидывал оба, на гите где-то было вроде.

По звуку ты не правильно смотришь. Выход с таймера всегда низкоомен. И через сопро он в порт заведен для возможности использования таймера программами. А сопротивление нужно чтобы порт не попалить, если ты его на выход настроишь ненароком или специально.

Saar
01.04.2016, 14:10
Странно, что даже в описании RAMFOS.djvu написано что D7=0 а битами D0..D2 выбираются страницы ОЗУ. А на практике это не так. Если я выделяю больше одной дополнительной страницы ОЗУ, то ПЗУ не видит каталог встроенных приложений.
Получается, что даже стандартная ПЗУ не следует описанию?
Кстати, в схеме fifan SpetsialistMX.pdf все 3 бита заведены в ОЗУ через регистр. То есть должно поддерживаться 8 страниц.

- - - Добавлено - - -

на куске схемы на сайте fifan, где показан селектор адресов для MX, тоже странности. Почему-то выбор страницы ПЗУ сбрасывает только один из триггеров страницы ОЗУ, тот что на D1. Соответственно бит D0 страницы ОЗУ остается неизменным. Как это понимать?
Я уже не говорю, что этот кусок схемы ничего общего со схемой SpetsialistMX.pdf не имеет.

HardWareMan
01.04.2016, 16:01
Такова особенность схемы. Счетчик режима 2х битный, что намекает на 4 состояния. Но используется только 3: 0, 1 и 2. 3 невозможно так как оно сбрасывается в 2 в оригинальной схеме и я его использовал в МХ2 под стандарт.

Saar
01.04.2016, 17:41
Блин мозги уже кипят. Вроде частично работает, но где-то ошибка.
Получается расклад такой:

- При записи в FFFD младшие 3 бита указывают на страницу ОЗУ, подключаемую в адреса 0000-FFBF. Страница ПЗУ автоматически отключается, если была подключена.
- При записи любого числа в FFFE подключается страница ПЗУ в адреса 0000-BFFF, в адреса C000-FFBF подключается базовое ОЗУ.
- Порт FFFF работает идентично порту FFFE в силу специфики дешифратора адреса.
- При записи в FFFC любого числа сбрасываются данные о страницах ПЗУ и ОЗУ. В адреса 0000-FFBF подключается базовое ОЗУ.
- В адресах FFC0-FFDF всегда подключено базовое ОЗУ.
- Базовое ОЗУ не является частью расширенного страничного ОЗУ. Страница 0 - это НЕ базовое ОЗУ а отдельная страница.

Я правильно расписал поведение диспетчера памяти? Ничего не упустил?

HardWareMan
01.04.2016, 17:54
Есть основная страница ОЗУ, 60КБ в которых присутствует экран. А есть одна (но до 8ми) страниц доп ОЗУ банками по 60КБ. Не следует путать. В остальном - верно.

Saar
01.04.2016, 18:11
Да я и не путал как бы. Ясен пень, что видеопамять только в странице 0 находится.
Проблема была в инверсном представлении кода страницы. Причем ни в одной доке про это не сказано.

HardWareMan
01.04.2016, 20:03
Что есть "инверсное представление"? И нету 0 страницы. Есть основная (базовая) память, часть которой экран. И есть страничная дополнительная.

Saar
02.04.2016, 06:55
Что есть "инверсное представление"?
биты 2,1,0 в порту FFFD должны быть проинвертированы чтобы получить номер страницы. То есть 7 - это нулевая страница. 6 - это первая страница и т.д..
В принципе, было бы всё равно какое там представление, если бы не 0 страница, которая кодируется номером 7, и по-видимому где-то используется в RAMFOS вместо сброса через порт FFFC.


И нету 0 страницы. Есть основная (базовая) память, часть которой экран. И есть страничная дополнительная.
как это нет? разве 0 страница - это не базовая? вот и тут: http://www.spetsialist-mx.ru/index18.html
нарисована 0 страница как основная память, в которой экран находится.


Кстати, а порт цвета в MX на самом деле доступен в 4 адресах, судя по дешифрации?

- - - Добавлено - - -


доп ОЗУ банками по 60КБ.
а почему по 60? вроде же 64к без 64 байт в конце.

- - - Добавлено - - -

Еще хотел бы узнать как происходит обмен данными с FDC.
Там вроде используется ПДП сигнал, но я не понял как данные из ВГ93 пересылаются в память. Контроллера ПДП же нет..

- - - Добавлено - - -

Хм... а действительно ведь базовые 64кб не входят в 512кб расширенной памяти. Нулевая страница не является базовой памятью как я думал и как изображено на сайте Fifan. Пипец сколько я уже неточностей там нашел.

Получается, что общий объем ОЗУ 576кб. Инвертировать биты страниц не надо.
Понятно теперь откуда этот изврат с "открытием" и "закрытием" страниц.

- - - Добавлено - - -

Обновил инфу о работе диспетчера памяти. Возможно, кому-то эта инфа будет полезной, ибо больше НИГДЕ это не расписано.

HardWareMan
02.04.2016, 11:40
Я рад, что ты разобрался с памятью. То, что там намалевано у Фифана на сайте, к сожалению, имеет неточности и вольные изложения. Интересно, откуда он взял ту картинку?

Кстати, а порт цвета в MX на самом деле доступен в 4 адресах, судя по дешифрации?
Так точно. Но документирован только один, возможно планировалось какое-то расширение - не знаю.

а почему по 60? вроде же 64к без 64 байт в конце.
И это верно. Я просто утрированно округлил. 60к это в Орионе, тут 63,9к.

Еще хотел бы узнать как происходит обмен данными с FDC.
Там вроде используется ПДП сигнал, но я не понял как данные из ВГ93 пересылаются в память. Контроллера ПДП же нет..
Программно, процессором. Используется торможение процессора сигналом RDY.

Хм... а действительно ведь базовые 64кб не входят в 512кб расширенной памяти. Нулевая страница не является базовой памятью как я думал и как изображено на сайте Fifan. Пипец сколько я уже неточностей там нашел.
Получается, что общий объем ОЗУ 576кб. Инвертировать биты страниц не надо.
Понятно теперь откуда этот изврат с "открытием" и "закрытием" страниц.
В базовом варианте ровно 128К. + 16К обязательного ПЗУ для RAMFOS. Дополнительные 32К ПЗУ можно добавить под программы пользователя. При этом, экран не доступен при включении ПЗУ, но есть джампер, урезающая ПЗУ до 32К для тестирования памяти.

Обновил инфу о работе диспетчера памяти. Возможно, кому-то эта инфа будет полезной, ибо больше НИГДЕ это не расписано.
Это и так все очевидно.

Saar
02.04.2016, 18:47
На сайте fifan'а есть разные прошивки.
Прошивка MXOS.rom весит 64кб. При этом написано что это для прошивки ПЗУ MX. Разве максимальный размер ПЗУ не 48кб??

fifan
02.04.2016, 20:19
Если мне не изменяет память данная прошивка это специфический клон Специалиста МХ с полностью передаланным ПО, автор прошивки - Vinxru. Это Соmmander, переделанный и исправленный, в частности появился цвет. Я даже сомневаюсь что он заработает на МХ, т.к. автор его делал и испытывал на МХ2.

http://spetsialist-mx.ru/images/commander.png http://spetsialist-mx.ru/images/MXOS.PNG

Если необходимо стандартное ПЗУ Специалиста, то - это файл specimx.rom (http://spetsialist-mx.ru/Soft/Specimx.rar). Чтоб как-то разобраться в клонах и встроенных прошивках Специалиста предлагаю скачать и запустить эмулятор от b2m (http://bashkiria-2m.narod.ru/files/emu.rar). В нём можно лицезреть указанные программы, если запустить эмуллятор с конфигурациями SpecialistMX и SpecialistMX (Commаnder) для обычного МХ и с Commander'ом соответственно.

Commander или лучше сказать что особая оболочка для МХ писалась одним из авторов из Омска (фамилию не помню) и представляет самой альтернативу RAMFOS. В частности это ПО поддерживало ещё и рамдиск объёмом 64 кБайт, который можно было подключить к дополнительной ВВ55. Запустить привычную RAMFOS можно из самого Commander'а запуском одноименного файла. Каждая из 8 страниц RAM-диска подключается соответственно выбором букв A...H. По словам Vinxru данное ПО не поддерживало ВИ53 и контроллера дисковода.

Saar
03.04.2016, 15:25
Пытаюсь прикрутить FDC.
Столкнулся с проблемой: первая команда которая выдается в ВГ93 при нажатии на F6 - это 0x90 (чтение сектора).
А где же команда Restore (0x00) при начале работы с дисководом? До этого прикручивал ВГ93 к Вектор 06Ц - там всё четко - restore перед первым обращением к диску.
Я что-то упустил? Может у Специалиста как-то по-другому сброс происходит? Почему-то перед обращением сначала выставляется SIDE 1 в FFF2, а потом SIDE0 - после чего подается команда чтения сектора. Зачем это?

- - - Добавлено - - -

Еще непонятно какой всё таки размер сектора у дисков Специалиста. Читаю в одном месте - написано 1024 байт на сектор.
Смотрю исходник прошивки дисковой части - там почему-то считают сектора по 256 байт.
Где правда?

Saar
04.04.2016, 15:24
у эмулятора SPMX есть несколько вариантов ПЗУ размерами 4-8кб.
Как их правильно загрузить?
Попытался просто вместо стандартного ПЗУ MX поместить в страницу ПЗУ - не запускается.

- - - Добавлено - - -

В коммандере из набора MXOS.rar стрелки вверх и вниз не работают. Влево, вправо работают. Причем если нажать F8 для выбора диска, то стрелки вверх и вниз работают. А в панели нет. Пикает на нажатие, но курсор не двигается. В чем секрет?

- - - Добавлено - - -

с дополнительными ПЗУ разобрался в части как их запускать.
Но вот я запустил монитор Magiс Ж2. А как в нем загрузить игру с диска?
На сайте fifan выложен образ диска для этого монитора. Он в корне даже есть ввиде COM файла. Ну а как игры-то загрузить, будучи в нем?

fifan
04.04.2016, 15:39
Команды restore нет, сразу чтение секторов. Длина сектора - 1024 байт и буфер под него 1024 байт и где это чтение 256 байт я не видел. Что там в MXDOS на счёт переключения сторон не знаю, не вникал. Я делал свою программу по чтению области FAT дискеты - работает (не могу найти исходников, если нужно - поищу, выложу). Не знаю на счёт ошибок в MXDOS, а вот в RAMFOSе Vinxru нашёл важную ошибку - запись левого числа в номер страницы RAM-диска.

Saar
04.04.2016, 17:48
fifan,
Я с диском вроде разобрался. По крайней мере сейчас у меня работает загрузка прог с образа флоппи.
А что с Коммандером в MX? почему кнопки верх/вниз в панели не работают? В других прогах (да и в самом коммандере при выборе диска) работают.

fifan
05.04.2016, 13:05
В Коммандере присутствует неразбериха с курсорными клавишами. Не знаю по какой причине. В эмуляторе вроде автор изменил, в реале я прошивку Коммандера не ставил, не юзал. :v2_dizzy_tired2: Кстати повод прошить новую флеш ПЗУ и поставить в свой Специалист SRAM.

Нашёл кто автор Коммандера - Константин Юденцов - прекрасная работа! Жаль что его нет в живых...

fifan
06.04.2016, 17:36
Разбирался с Коммандером. Соорудил прошивку для флеш ПЗУ. Вспомнил как создать свой FAT - помогли описания от Vinxru (http://spetsialist-mx.ru/Soft/MXOS.rar) и HardWareMan'а. Кстати клавиши действительно кодировки от Стандартного Специалиста, хорошо что в эмуляторе от b2m исправлено.

CityAceE
08.04.2016, 06:15
http://spetsialist-mx.ru/images/MXOS.PNG


А что это за система цветности на скриншоте? На сколько я знаю, на Специалисте один байт (8 горизонтальных точек) мог быть окрашен только в чёрный + ещё один из восьми цветов. То есть чёрный обязателен, если нет сплошной заливки. Где можно почитать про такую систему? Есть ли какие-то программы, кроме данного коммандера, которые её поддерживают?

Saar
08.04.2016, 10:45
CityAceE,
это скрин со Specialist MX. У него 4 старших бита это цвет чернил, а младшие 4 бита цвета - бумага. Поэтому фон может быть не только черным.
http://www.spetsialist-mx.ru/index23.html


fifan,
Так а что с курсорными кнопками? Они же не менялись в MX - но почему-то не работают.
Вы можете довести до ума Коммандер чтобы и курсорные кнопки работали, и Fn были как у MX?

- - - Добавлено - - -

fifan,
А вы уверены что коричневый цвет присутствует в палитре? Для коричневого цвета нужны все три RGB компоненты с разными амплитудами. Примерно такой расклад: R = 3, G = 2, B = 1. В текущей схеме включения цвета у MX только 2 уровня яркости у каждой компоненты, что недостаточно для коричневого цвета.

- - - Добавлено - - -

вот так у меня выглядят цвета:
56752
коричневый там никак не получается.
Не, можно конечно сравнивать с кодом коричневого цвета и выставлять уровень RGB соответствующий реальному коричневому цвету. Но это я в FPGA могу сделать, а в оригинальном железе это было невозможно.

fifan
08.04.2016, 11:22
Кнопки в МХ поменял Vinxru в исправленной версии Коммандера MXOS (https://github.com/vinxru/MXOS) (его скриншот и был представлен). Там же и добавлен цвет, он отсутствовал в Коммандере изначально.

Коричневый не получится, так псевдо тёмножёлтый.

В представленной ссылке на исходники MXOS есть раскладка всех подпрограмм, почти совпадающей со всеми Мониторами. Есть мепинг во время работы MXOS. А вот формат дискиптора файла в FAT лучше расписал HardWareMan когда-то.

HardWareMan
08.04.2016, 12:05
CityAceE,
Так а что с курсорными кнопками? Они же не менялись в MX - но почему-то не работают.
Вы можете довести до ума Коммандер чтобы и курсорные кнопки работали, и Fn были как у MX?
Хоть раскладка и одинаковая у STD и MX/MX2, но метод опроса матрицы принципиально разный. Если эмулятор не корректно производит операции сдвига (особенно через флаг С), реализована не полная версия ВВ55 то на МХе будут проблемы с клавиатурой. В том числе и в RAMFOSе, хотя самый извращенный (но оптимальный и логичный) опрос именно в NC (не знаю, трогал ли его vinxru).

CityAceE
08.04.2016, 12:25
это скрин со Specialist MX. У него 4 старших бита это цвет чернил, а младшие 4 бита цвета - бумага. Поэтому фон может быть не только черным.
Так кроме этого коммандера есть какой-то софт, который поддерживает все эти цвета?

Saar
08.04.2016, 12:55
Так кроме этого коммандера есть какой-то софт, который поддерживает все эти цвета?
Все проги, написанные для MX используют это, поскольку это единственный формат цвета на нем. Много игр, адаптированные для MX используют не черный фон (на мой взгляд, именно чтобы показать отличие от оригинального Специалиста, а не то чтобы это было необходимо).

- - - Добавлено - - -

HardWareMan,
Сомнений в процессоре нет. Реализация ВВ55 у меня своя, но не уверен что 100% соответствует оригиналу. Не могли бы рассказать об этом "самом извращенном" методе более подробно, чтобы я смог проверить? Очень странно, что все остальные кнопки работают кроме курсорных вверх и вниз. Что в них особенного? Про влево и вправо сложно сказать, поскольку курсор прыгает либо в начало либо в конец списка по причине небольшого количества файлов.

- - - Добавлено - - -

fifan,
на гитхабе вроде для MX2.
я использовал MXOS.rom сборку из http://www.spetsialist-mx.ru/Soft/MXOS.rar
Это уже поправленная версия раз у нее тоже коммандер в цвете?

- - - Добавлено - - -

Кстати, если кому интересно, то мой проект так же опенсорс и доступен тут:
https://github.com/sorgelig/Specialist_MIST

fifan
08.04.2016, 14:06
Я наверное, соберу информацию о Коммандере/MXOS и выложу в отдельную тему. Данное ПО будоражит всех, кто когда-либо сталкивается с ним. Автор молодец - создал отличную от RAMFOS оболочку, жаль что никто кроме Vinxru не продолжил его замысел.

- - - Добавлено - - -


Так кроме этого коммандера есть какой-то софт, который поддерживает все эти цвета?

Трудно сказать, видел только в играх большое разнообразие цветов. В RAMFOS/MX-DOS принято два цвета: синий и голубой. В своих программах кроме двух-трёх цветов не использую. Хотя вот так выглядит тоже красиво. Но данное ПО не доведено ещё до конца.

56753

Saar
08.04.2016, 14:21
Так, с кнопками "up" и "down" разобрался. У меня в ВВ55 было сделано так, что если порт включен на ввод, то выводная версия порта выдавала 0 на выход. Но, судя по алгоритму опроса, должны быть 1.
В принципе, я изначально делал что порты ВВ55 будучи сконфигурированными на ввод, должны подтягивать входа на 1. Но смутило описание одного из метода сканирования клавы Специалиста, когда все порты включены на ввод и нажатие кнопок приводит к появлению 0 в строке и в колонке одновременно. То есть что-то должно тянуть на 0. По схеме резисторы клавы тянут на 1. Так что же заставляет появляться 0 на пересечении когда все порты включены на ввод? Я логично предположил, что входы ВВ55 должны тянуть на 0, когда в режиме ввода. HardWareMan - думаю вы можете ответить на этот вопрос.
А действительно на реальном железе есть такой метод опроса, позволяющий сразу увидеть 0 в колонке и строке когда все порты на ввод работают?

HardWareMan
08.04.2016, 14:49
Нету. Но именно NC использует для "IsKeyPressed" на выдачу, а [A] и [Cl] на ввод. и тогда если хоть одна кнопка нажата, то на [A] и/или [Cl] уже не будет FF. Далее, особенность ВВ55 в том, что если была запись в РУС, то происходят 2 ситуации:
1. [D7] = 0: побитное управление портом [C]. Теми пинами, что настроены на вывод (вводные остаются без эффекта). При этом, младшие 4 бита адресуют бит [D3-D1] и его состояние [D0].
2. [D7] = 1: смена режима ВВ55. При этом, главная особенность, о которой забывают самые маленькие дети это то, что [b]если порт настраивается на вывод, он обнуляется (начинает выводить 00). Этим пользуется NC и схема НП в Экспрессе.

- - - Добавлено - - -

Или наоборот: один [B] проверить легче и быстрее, чем два [A] и [Cl]. Не суть. Важна особенность того, что все новонастроенные выхода ВВ55 бросает в ноль автоматически, что бы там не было сохранено.

Saar
08.04.2016, 14:52
если порт настраивается на вывод, он обнуляется (начинает выводить 00). Этим пользуется NC и схема НП в Экспрессе.
про это я в курсе :) Еще на Векторе отладил это дело. Как и побитный вывод в порт С.

А про метод одновременного опроса столбцов и строк клавы я прочитал тут:
http://emu80.org/dev/dev_s.html
"Порты A, младшая половина C и B программируются на ввод. Нажатая клавиша определяется по положению нулей в обоих портах. Нажатая клавиша располагается на пересечении положения нулей."
Думал, что автор "библейского" эмулятора не будет писать недостоверную инфу...

HardWareMan
08.04.2016, 14:56
Да вот этот код:
http://savepic.ru/9303619.png
Настраиваем ППА клавиатуры, маскируем в порте [B] шифт и мафон и выходим если ничего нет. Иначе - вычисляем сканкод.

- - - Добавлено - - -


А про метод одновременного опроса столбцов и строк клавы я прочитал тут:
http://emu80.org/dev/dev_s.html
"Порты A, младшая половина C и B программируются на ввод. Нажатая клавиша определяется по положению нулей в обоих портах. Нажатая клавиша располагается на пересечении положения нулей."
Думал, что автор "библейского" эмулятора не будет писать недостоверную инфу...
И на старуху бывает порнуха. Особенность клавиатуры Спеца в том, что там все линии подтянуты 10к к +. И если нет внешнего 0 то ничего не получится. Даже наводки от пальца не будет. Это, кстати, позволяло нам вынести на кружке у одного МХа клавку на метровом шлейфе-проводе.

Saar
08.04.2016, 15:15
Ну теперь про клаву всё понятно. Именно описание на emu80 сбило мне все "карты". В остальном всё правильно было. Поменял на то как у меня было изначально в ВВ55 на Векторе.

- - - Добавлено - - -

HardWareMan,
у меня спотыкалось в другом месте.
вот тут:


0236+ C311 CD C1 C1 loc_C311: call setKeybMode83
0237+ C314 3E F7 mvi a, 0F7h
0238+ C316 32 E0 FF sta IO_KEYB_A
0239+ C319 3A E1 FF lda IO_KEYB_B
0240+ C31C 2F cma
0241+ C31D 0F rrc
0242+ C31E 0F rrc
0243+ C31F 0F rrc
0244+ C320 CD 54 C2 call setKeybMode82

Во флаге C оказывалась 1, поскольку одновременно с кнопками вверх/вниз опрашивалась кнопка "ПВ".

- - - Добавлено - - -

Подскажите кто-нибудь по spmx.rom с github vinxru: Там заполнение его почти под завязку 64кб. А ведь для MX максимальный размер - 48кб. Что делать с ним? Или это должно грузиться в RAMDISK (у которого размер как раз 64кб)?
Еще в Коммандере мне не удалось открыть дисковод. Все буквы указывают на рамдиски. Как в коммандере прочитать реальный флоппи диск?

HardWareMan
08.04.2016, 16:57
Легко: написать драйвер, например на букву Н. ;)

Saar
08.04.2016, 17:38
HardWareMan,
То есть штатной поддержки дисковода нет. Весьма странная система. Сделали машину, а двигатель не поставили ;)


написать драйвер, например на букву Н.
Почему же его никто не написал до сих пор? Типа, никому поддержка дисков не нужна?
Кстати, а NC будет понимать формат дисков через такой драйвер? Мне почему-то кажется что через такой драйвер блочного доступа будут приниматься только диски формата MXOS. Диски MX-DOS наверняка не примутся.

fifan
08.04.2016, 20:45
Скажем сразу что формата MXOS не существует, а вот написать драйвер можно, если напрячься немного. В DOS-MX (так правильно, я опечатался, а ты подхватил) дискиптор файла состоит из 32 байт, в Коммандере - FAT - 16. Да это и не важно, главное какие входные/выходные регистры должны быть в функции получения файлов, переделать процедуры печати файлов и загрузки/запуска файлов. Вот примеры дескрипторов - вверху Коммандера, внизу DOS-MX.

56758

Saar
08.04.2016, 21:20
К сожалению, у меня нет ни времени на изучение операционных систем Специалиста, ни стимула. Был (и есть) стимул написать эмулятор и немного познакомится с экосистемой Специалиста.
Думаю, для вас fifan и HardWareMan как фанатов данной системы, было бы не сложно довести до ума Коммандер, добавив в него поддержку дискет. Понятно, что он делался в давние времена из расчета что мало кто может позволить себе дисковод, но сегодня с развитием новоделов и эмуляторов, поддержка его более важна чем никому не нужный магнитофон.
Думаю, вряд ли кто-то кроме вас это сделает.

fifan
08.04.2016, 21:46
Было желание у Vinxru он доработал Коммандер, а вот писать драйвер флопика для Коммандера я пас. У меня есть SpetsCommander с поддержкой SD карты. А какие перспективы у Коммандера? Его недостатки:
1. ограниченное количество файлов для вывода на экран,
2. всего 6 букв в имени файла и только заглавными буквами,
3. для вывода других имён файлов DOS-MX и SD карты необходимо расширять поля вывода,
4. невозможность отображения каталогов и т.д. и т.п.

Pyk
14.04.2016, 13:45
Прошу прощения за то, что ввел в заблуждение. Не помню уже, откуда я более лет 15 назад взял информацию о методе опроса, когда оба порта программируются на ввод, но реально этот метод так и не был никогда реализован в Emu80. Видимо, нет в природе софта, который бы его использовал (и самого метода тоже) ;)