PDA

Просмотр полной версии : Специалист М - апгрейд до МХ2



SpaceEngineer
15.12.2021, 16:10
Это проект по переделке Специалиста-M на оригинальной заводской плате в Специалист-MX/MX2. Цель - сделать максимально красиво, с помощью печатных плат и минимума МГТФ. Потом, может быть, переразведу плату Специалиста-M, чтобы предусмотреть на ней все новые коммуникации.
https://disk.yandex.ru/i/fsOm9qQF89JNqg

Сразу оговорюсь, чтобы никто не обвинял в плагиате - схемы подсмотрены у Специалиста-MX, MX2 и Сябра. (C) HardwareMan, Fifan, vinxru, SYR-ALEX. Но это и логично, я же хочу сделать совместимый аппаратно MX2. Главное отличие - динамическая память. Еще одно условие - аутентичность, т.е. мелкая логика в DIP корпусах, без микроконтроллеров и ПЛИС. Но оставлена возможность подключить адаптеры PS/2 клавиатуры и SD карты, и дисковод 3,5" (для 5,25" надо отдельно заводить питание 12 В).

Рабочее название проекта - "Специалист-MMX" (типа M -> MX). Предлагайте варианты. Текущая стадия - две макетки изготовленные и отлаженные платы ревизии 0 и немного МГТФ с обратной стороны платы Специалиста-M:
https://drive.google.com/file/d/1QG0ZQxs1gxKduNpSG65TezwKpTbVzIZJ/view?usp=sharing
https://drive.google.com/file/d/1Q-PYn8jRoqX8a_Q_cFQRWt5bYap0LID1/view?usp=sharing
https://drive.google.com/drive/folders/1PYy2Eyech_MVOBItqZ68mclCDncHZwSJ (много фоток)
https://disk.yandex.ru/i/6spX9-VoKqo48w (стадия макетки)

Всего получилось шесть дополнительных плат, плюс две опциональные (расширение памяти до 512 кб и ром/флеш диск). Это из-за выбранного форм-фактора - корпус 300х200х75 из Чип-и-Дипа, потому что хочется получить законченное изделие, а не россыпь плат на столе. Все разъёмы (клавиатура, видео, магнитофон, питание) выведены на заднюю стенку, питание - от любого сетевого адаптера на 5В (с током не менее 2А). На плате Специалиста-M делается всего три разреза печатных дорожек, устанавливается разъём для платы памяти, и напаивается пара десятков проводов МГТФ по низу.

1) Кросс-плата. Это плата, куда впаивается "папа" большого системного разъёма Специалиста-М (СНП-34-90В-8). Большинство контактов с него выводятся на два слота расширения, установленных с той же стороны платы. Т.е. платы расширения (контроллер дисковода и пр.) втыкаются параллельно материнской плате. От них разведено несколько дополнительных дорожек, подключенных к земляным пинам на материнке. Это сделано для возможности расширения - можно легко отрезать их от земли (на материнке) и использовать для своих целей. С другой стороны кросс-платы расположены разъём клавиатуры (D-sub 25 под LPT кабель), магнитофона и питания, пищалка и регулятор громкости для неё. На плате собраны преобразователи напряжений +5В -> +12В и -5В для питания мат. платы, установлен таймер ВИ53 и "порт программатора" ВВ55, к которому подключен разъём ром/флеш диска. Для совместимости его распиновка совпадает с платой MX2 и флеш-диском HardwareMan'а (http://spetsialist-mx.zx-pk.ru/index30.html), но на него ещё выведен сигнал сброса, чтобы можно было подключить контроллер SD карты vinxru (http://spetsialist-mx.zx-pk.ru/index4.html) на Атмеге. А на разъём клавиатуры заведено питание и сигнал выборки /U7, чтобы можно было подключить контроллер PS/2 клавиатуры vinxru (http://spetsialist-mx.zx-pk.ru/index4.html) (в этом случае он будет торчать сзади корпуса, но его можно целиком смонтировать внутри разъема D-sub 25). Ещё на кросс-плате предусмотрен разъём для питания дисковода или других внутренних потребителей.
Сначала хотел установить на кросс-плату буферы на шины. С буферизацией ША вопросов нет, а вот с ШД сложно. На материнской плате есть оперативка, ВВ55 и ПЗУ, которые тоже могут занимать шину, при этом буфер на кросс-плате должен отключаться. Неудобно получается, схема компьютера разделена на две части, с буферами где-то посередине... В общем, думаю, для буферизации шин проще сделать отдельную платку, вставляемую с панельку процессора.
Кросс-плата может использоваться и с чистым Специалистом-М без переделок, правда, тогда надо предусмотреть способ затыкания таймера (придётся прошить команды его инициализации в ПЗУ загрузчика, или просто не припаивать его).
Схема и чертёж платы (3D модели некоторых разъёмов и других компонентов отсутствуют):
Схема (https://disk.yandex.ru/i/5yoKV4Jm2mwHGA)
Герберы (https://disk.yandex.ru/d/Y8JCJBnO_Zbc7Q)
Вид платы (https://disk.yandex.ru/i/dgzLjiq-DFXVwA)
Вид платы в 3D (https://disk.yandex.ru/i/CMJb8xne9IqO4g)
Вид платы в 3D снизу (https://disk.yandex.ru/i/vk19coPiuFPVqA)

2) Плата селектора адресов MX/MX2. Изначально планировалось "селектор адресов" впихнуть на кросс-плату, но места не хватило. Поэтому пришлось располагать его на отдельной плате. К счастью, схема селектора адресов на 90% использует те сигналы, что есть на разъёмах расширения, так что она выполнена в виде платы, вставляемый в один и этих разъёмов. Свободным остаётся всего один разъём, но у Специалиста не наблюдается избытка периферии, только контроллер дисковода и SD-карты по варианту HardWareMan'а (http://spetsialist-mx.zx-pk.ru/index32.html). При наличии более габаритного корпуса, кросс-плату можно увеличить и добавить ещё слотов. На плате селектора адресов кроме кучи мелкой логики установлено ПЗУ с прошивкой (предлагаю его называть именно ПЗУ, а не ROM-диск, чтобы избежать путаницы с тем ROM-диском, который подключается через ВВ55). Получается что-то вроде "маппера" Сябра. И это, кстати, плюс - заменив эту плату, можно получить компьютер другой конфигурации, в том числе и стандартный Специалист. На плате предусмотрено много джамперов для настройки конфигурации (сброс в MX или STD режим, включение ПЗУ на мат. плате, ограничение рам-диска одной страницей, выбор прошивки при наличии большого ПЗУ, ужимание занимаемых регистром цвета адресов до 1 байта). Схема и чертёж платы (разъём будет угловой, я просто не нашел угловую 3D модель):
Схема (https://disk.yandex.ru/i/Se_OD_pR8hC9Iw)
Герберы (https://disk.yandex.ru/d/XfX0ABiVJcNukw)
Вид платы (https://disk.yandex.ru/i/6L3Na7rnoTqBsQ)
Вид платы в 3D (https://disk.yandex.ru/i/CgoXWP9vo_kMSQ)

3) Плата памяти и контроллера цвета. Из-за того, что память в Специалисте-М динамическая с отдельными шинами адреса и данных, её нельзя подключить через кросс-плату. Поэтому дополнительную память под рам-диск и контроллер цвета логичнее сделать отдельным модулем, подключаемым к материнской плате через новый разъём. При этом можно заметно сократить количество контактов и МГТФ-а, если втыкать плату в том числе в штатные панельки от РУ5 (экономятся 8+8+3 контактов), но тогда основная память переезжает на эту плату. Кстати, Специалист-М прекрасно работает при замкнутых входах и выходах данных ИМС памяти, я это использую. Зачем авторы оригинальной платы разводили все 16 дорожек?... Реализована схема правильной регенерации РУ7 и 41256 (в оригинальной схеме Афанасьева на адресные входы A7 и A8 не подаются сигналы со счётчиков, а это нужно для регенерации).
Ещё 8 контактов экономятся на шине данных к регистру цвета - он сидит на шине данных памяти, "за" шинными формирователями ОЗУ (АП16). Это потребовало небольшого изменения в схеме маппера - надо разрешить работу АП16 при записи в регистр цвета по сигналу /U1. Поддерживается стандартный 8-цветный режим от клавиатурного ВВ55 при переключении в STD режим по принципу MX2 и Сябра (на 4-цветный забил пока).
Всего требуется 24 дополнительных контакта, плюс сколько-то на питание. Я разбил их на два разъема (две линейки штырьков), для удобства трассировки и сокращения длины проводов. RGB видеовыход полностью формируется на этой плате, и тянуть его обратно на материнку, а с неё на кросс-плату, я посчитал излишним. Поэтому разъём видеовыхода на задней панели компьютера подключается шлейфом. Какой именно разъём будет, я пока не решил. Можно VGA (хотя формат сигнала - совсем не VGA), можно SCART, можно композит (через преобразователь), тогда для них надо будет сделать ещё одну маленькую платку, заведя на неё питание с кросс-платы или с платы памяти (на ней есть фильтрованное питание для видеоусилителей RGB). Это добавляет гибкости.
Схема (https://disk.yandex.ru/i/OUp6frMzf88lfA)
Герберы (https://disk.yandex.ru/d/BSBD7xZ5sdfhKQ) [ревизия 1]
Вид платы (https://disk.yandex.ru/i/kk-1d5Wh6XBlRQ)
Вид платы в 3D (https://disk.yandex.ru/i/beshW2cKfJOfBg)
Вид платы в 3D снизу (https://disk.yandex.ru/i/FBp5BXs0pGQB3g)

4) Платы модулей памяти. На плате памяти не хватило места для четырёх линеек РУшек (РУ5/4164 для основной памяти, РУ6/4116 для цветовой памяти, и две линейки РУ7/41256 для рам-диска 512 кб). Вместо этого там установлены четыре слота SL-26, в которые вставляются "модули памяти", выполненные на одинаковых платах. Получилось удобно, один дизайн платы, вставляешь разные РУшки или импортные аналоги - получаешь модуль на 16, 64 или 256 кб. В минимальном варианте Специалиста-МХ можно обойтись тремя модулями (64 кб основная память, 64 кб рам-диск и 16 кб цвет, т.к. ч/б видеовыход исключен. Хотя можно вернуть его на кросс-плату - но надо ли?) В распиновке слотов предусмотрена защита от дурака - если вставить модуль наоборот, ничего не сгорит, просто он не будет работать (питание подводится симметрично, ША и ШД подключаются к самим себе, только разряды оказываются перепутаны, а входы /RAS и /WE оказываются подвешены).
Для RAM-диска можно использовать РУ5, обновлённые рамфос и коммандер от vinxru правильно определяют объём установленной памяти. Для контроллера цвета, если нет РУ6, можно использовать модуль на РУ5. Но РУ5 в контроллере цвета почему-то работает нестабильно, исправляется это введением задержки сигнала /RAS. Поэтому на плату памяти на всякий случай добавлены джамперы рядом с каждым слотом, "для настройки таймингов".
Схема, чертёж и фото заказанных и собранных плат:
Схема (https://disk.yandex.ru/i/J-LLFP3uf09z5g)
Герберы (https://disk.yandex.ru/d/f0oXqXS0y6zdGA)
Вид платы (https://disk.yandex.ru/i/mZi94M6oMlLj7w)
Вид платы в 3D (https://disk.yandex.ru/i/kIQ-pGpc8PNTLQ)
Собранная плата (https://disk.yandex.ru/i/3IKLRbd7S-RIAA)

5) ROM/flash диск 2 Мб по схеме HardwareMan'а, с небольшой оптимизацией. Вставляется в разъём на кросс-плате рядом с ВВ55. У меня в планах написать драйвер с поддержкой записи в него (если установить флеш память типа AT29C040A). Разъём можно вынести на переднюю панель компьютера с помощью плоского кабеля от дисковода. Тогда можно будет делать горячую замену "флешек". Опыт орионщиков подсказывает, что ничего при этом не горит. Для надежности, можно удлинить пины земли и питания (прогрев паяльником и протолкнув заподлицо с платой), чтобы они подключались первыми. Вместо флеш-диска можно подключить контроллер SD карты vinxru. Схема и чертёж платы (разъём будет угловой):
Схема (https://disk.yandex.ru/i/syMph4gYX1Fv8A)
Герберы (https://disk.yandex.ru/d/6WtPSGy3TVQEvA)
Вид платы (https://disk.yandex.ru/i/9XTlvVMumm44mw)
Вид платы в 3D (https://disk.yandex.ru/i/mAPeTZe2Sa9QNg)

Схема Специалиста-М с изменениями для подключения новых плат. Задействованы все свободные пины на системном разъёме. Ещё несколько надо освободить, отрезав от земли, для поддержки переключения в 8-цветный режим, и для контроллера дисковода (сигнал HOLD процессора, такт 4 и 8 МГц). Один свободный самый крайний пин я выделил на усиление линии +5В на мат. плате, т.к. на моей плате с той стороны напряжение проседает на 0,2 В. Замечу, что распиновка системного разъёма на моей плате немного отличается от платы Mick'a (https://zx-pk.ru/threads/9661-spetsialist-varianty.html?p=1123101&viewfull=1#post1123101) - парой самых последних контактов. Можно добавить джамперы для совместимости.
Схема (https://disk.yandex.ru/i/UEhoZ7jls1SZeg)

SpaceEngineer
20.12.2021, 11:12
Схема контроллера цвета не рабочая, на "полках" есть сигнал. Переделываю.
Случайно воткнул модуль памяти неправильно... Ничего не сгорело. Тест пройден :)

CityAceE
20.12.2021, 14:26
Цветному Специалисту жизненно необходимо умение узнавать цвет текущего байта. Где-то тут писали, что цена вопроса - пара дополнительных микросхем. Да, программ поддерживающих это дело нет. Но, если предположить, что новые программы будут всё-таки будут выходить, то стоит такую доработку предусмотреть. Эту доработку, и обязательно таймер по любому стандарту, чтобы синхронизировать скорость.

HardWareMan
20.12.2021, 15:21
Цветному Специалисту жизненно необходимо умение узнавать цвет текущего байта. Где-то тут писали, что цена вопроса - пара дополнительных микросхем. Да, программ поддерживающих это дело нет. Но, если предположить, что новые программы будут всё-таки будут выходить, то стоит такую доработку предусмотреть. Эту доработку, и обязательно таймер по любому стандарту, чтобы синхронизировать скорость.
Регистр цвета у МХа есть. Нужно только сделать схему загрузки в него цветового атрибута байта при чтения процессором из экранной области.

SpaceEngineer
20.12.2021, 16:05
Цветному Специалисту жизненно необходимо умение узнавать цвет текущего байта. Где-то тут писали, что цена вопроса - пара дополнительных микросхем. Да, программ поддерживающих это дело нет. Но, если предположить, что новые программы будут всё-таки будут выходить, то стоит такую доработку предусмотреть.

Можно легко сделать цветовую память доступной на чтение - надо поставить еще один ИРхх, подключенный входами к ШД памяти, а выходами к ШД процессора. Тогда в него будет копироваться байт из цветовой памяти, когда процессор читает байт из видеопамяти. Т.е. алгоритм копирования цветной графики будет следующий:

- считать байт графики из видеопамяти
- считать байт из регистра цвета (читается из нового ИРхх)
- тут же записать его обратно в регистр цвета (работает первый ИРхх)
- записать байт графики в видеопамять по новому адресу

Такую штуку я делал, но копирование было медленным. Гораздо прикольнее идея, применённая в "Радуге", где для копирования цветовой графики вообще не нужно дёргать регистр цвета. Но там схема посложнее.

Кстати, кто видел оригинальную схему контроллера цвета Афанасьева? https://disk.yandex.ru/i/ZWo19j98f1YtJA
В качестве регистра цвета используется порт C клавиатурного ВВ55. Коды цветов были совместимы с 8-цветным контроллером, просто добавились цвет фона и бит яркости. Правда, как разруливался конфликт с клавиатурой, не понятно. Наверное, перед выводом любой графики ВВ55 надо было перепрограммировать, отключая клавиатуру, чтобы нажатия клавиш не портили цвет. А ещё динамик при этом щёлкать будет. Наверное, из-за этого Афанасьев отказался от такой схемы.


Эту доработку, и обязательно таймер по любому стандарту, чтобы синхронизировать скорость.
Можно использовать для измерения времени тот ВИ53, который стоит в МХе для звука. Но это не удобно, т.к. лишаемся звука. Надо добавить ещё один ВИ53, или, ещё лучше, часы ВИ1 (вроде там есть миллисекундный счетчик). К рамфосу их хорошо бы прикрутить - не надо будет дату вводить при запуске.

HardWareMan
20.12.2021, 19:21
Кстати, кто видел оригинальную схему контроллера цвета Афанасьева? https://disk.yandex.ru/i/ZWo19j98f1YtJA
В качестве регистра цвета используется порт C клавиатурного ВВ55. Коды цветов были совместимы с 8-цветным контроллером, просто добавились цвет фона и бит яркости. Правда, как разруливался конфликт с клавиатурой, не понятно. Наверное, перед выводом любой графики ВВ55 надо было перепрограммировать, отключая клавиатуру, чтобы нажатия клавиш не портили цвет. А ещё динамик при этом щёлкать будет. Наверное, из-за этого Афанасьев отказался от такой схемы.
5 и 8 цветные вполне себе шумят на магнитофонном выходе + схему НП тоже пришлось костылировать.

ivagor
20.12.2021, 20:09
В схеме Афанасьева, насколько я понял, управление возможностью записи в озу цвета с использованием EI/DI.

SpaceEngineer
21.12.2021, 11:20
В схеме Афанасьева, насколько я понял, управление возможностью записи в озу цвета с использованием EI/DI.

Ааа, так вот зачем в коде Test_MX перед выводом звука стоит DI... Артефакт от старой схемы цвета.

- - - Updated - - -

Спец работает. Осталось побороть артефакты в виде помех на экране при работе процессора, и разобраться со стабильной регенерацией ОЗУ 41256.

https://disk.yandex.ru/i/S1Ptoxcct0s1tA
https://disk.yandex.ru/i/D5rpK0OY0B4cNw

Заказывать платы буду в Резоните в 1 экземпляре. Но если найдутся желающие...

fifan
21.12.2021, 20:16
Кстати в строке "Последняя разработка схемы ПК" на странице (http://spetsialist-mx.zx-pk.ru/index8.html) представлен архив схем некого Специалиста МХ, но авторство Афанасьев себе не приписывает. Для чего рисовали эти схемы и был ли в железе данный комп мне неизвестно. Ещё я нарисовал эти схемы на одном листе (http://spetsialist-mx.zx-pk.ru/schemes/SpetsialistMX.pdf) (не помню вариант 1 или 2).


Кстати, кто видел оригинальную схему контроллера цвета Афанасьева? https://disk.yandex.ru/i/ZWo19j98f1YtJA
В качестве регистра цвета используется порт C клавиатурного ВВ55. Коды цветов были совместимы с 8-цветным контроллером, просто добавились цвет фона и бит яркости. Правда, как разруливался конфликт с клавиатурой, не понятно. Наверное, перед выводом любой графики ВВ55 надо было перепрограммировать, отключая клавиатуру, чтобы нажатия клавиш не портили цвет. А ещё динамик при этом щёлкать будет. Наверное, из-за этого Афанасьев отказался от такой схемы.
Я спрашивал на счёт этой схемы у Афанасьева и он сказал, что это самый первый вариант контролера цвета для МХ. Потом от неё действительно отказались.


часы ВИ1 (вроде там есть миллисекундный счетчик). К рамфосу их хорошо бы прикрутить - не надо будет дату вводить при запуске.
У меня такая мысль была. Я хотел подключить эту схему к выборке /U2 (резервный порт).

SpaceEngineer
22.12.2021, 00:10
Кстати в строке "Последняя разработка схемы ПК" на странице представлен архив схем некого Специалиста МХ, но авторство Афанасьев себе не приписывает. Для чего рисовали эти схемы и был ли в железе данный комп мне неизвестно. Ещё я нарисовал эти схемы на одном листе (не помню вариант 1 или 2).
Я с ней периодически сверяюсь, но, думаю, она не рабочая. В ней вся память сидит на общей шине данных, даже цветовая банка (РУ6). А это значит, что автор как-то смог разнести во времени два обращения видеоконтроллера к ОЗУ за один цикл видео (для чтения байта графики и байта цвета по одной шине). Да и цикл процессора тоже, ведь запись в экранную область должна одновременно записать байт из регистра цвета должен в цветовую банку. Схема формирования выборки /CAS цветовой банки довольно хитрая (сигнал /VC, DD16.1), но я не вижу, где там автор нашел временное окно, чтобы вклиниться с этим сигналом. Ведь формирование выборки основной памяти (сигнал /V, DD31.3) сделано как в оригинале у Афанасьева, времянки там стандартные (скважность /CAS = 1/2 из-за видеоадаптера, если проц не обращается; иначе обращение проца вставляется между обращениями видео без всяких окон).

Кстати, на вашей схеме есть ошибки в УГО некоторых микросхем. Навскидку, у ИР27 (в схеме видео) вывод 1 это не /OE (output enable), а /EW (enable write) (http://vicgain.sdot.ru/spmikro/smikr5.htm). А у ИР35 земля и питание это 10 и 20, а не 8 и 16.


Я спрашивал на счёт этой схемы у Афанасьева и он сказал, что это самый первый вариант контролера цвета дл МХ. Потом от неё действительно отказались.

Кстати у Афанасьева в поздней схеме селектора адресов неправильно формируется выборка цветовой банки (VЦ на его схеме, дешифратор D6 вывод 10). Если процессор не обращается к экранной области, сигнал VЦ вообще отсутствует, а в циклах видеоконтроллера он тоже не формируется. У меня на макетке так и оказалось - белый экран со "снегом", когда проц обращается к видеопамяти. В ранней версии схемы (той, что от руки нарисована) в обход дешифратора сделана схема на ЛА3, аналогичная схеме выборки экранной банки РУ3 в оригинальном Специалисте. Эта схема формирует /CAS для циклов обращения видеоадаптера.
Интересно, почему этот момент был упущен, и повторял ли кто-то вообще такую схему цветового контроллера?


У меня такая мысль была. Я хотел подключить эту схему к выборке /U2 (резервный порт).
Хм, у меня на кросс-плате ещё есть место, можно попробовать воткнуть часы. Схему с минимальной обвязкой надо сочинить. Часам вроде всего 1 байт адресного пространства нужен. Можно отнять его у регистра цвета, тому всё равно тоже только 1 байт положен.

HardWareMan
22.12.2021, 06:47
Я с ней периодически сверяюсь, но, думаю, она не рабочая. В ней вся память сидит на общей шине данных, даже цветовая банка (РУ6). А это значит, что автор как-то смог разнести во времени два обращения видеоконтроллера к ОЗУ за один цикл видео (для чтения байта графики и байта цвета по одной шине). Да и цикл процессора тоже, ведь запись в экранную область должна одновременно записать байт из регистра цвета должен в цветовую банку. Схема формирования выборки /CAS цветовой банки довольно хитрая (сигнал /VC, DD16.1), но я не вижу, где там автор нашел временное окно, чтобы вклиниться с этим сигналом. Ведь формирование выборки основной памяти (сигнал /V, DD31.3) сделано как в оригинале у Афанасьева, времянки там стандартные (скважность /CAS = 1/2 из-за видеоадаптера, если проц не обращается; иначе обращение проца вставляется между обращениями видео без всяких окон).
Очень интересно. Похоже, что он сделал двойной CAS при общем RAS. Это возможно и скорости от ОЗУ не требуется. Надо сунуть синхрогену с картинки scheme1var1.png и scheme1var2.png в симулятор. Я вижу, что RAS вообще по сути от 8МГц стреляет, а это 8МГц.

fifan
22.12.2021, 08:04
Кстати, на вашей схеме есть ошибки в УГО некоторых микросхем. Навскидку, у ИР27 (в схеме видео) вывод 1 это не /OE (output enable), а /EW (enable write) (http://vicgain.sdot.ru/spmikro/smikr5.htm). А у ИР35 земля и питание это 10 и 20, а не 8 и 16.
Понял, исправлю, хотя эта схема никуда не пойдёт.

SpaceEngineer
22.12.2021, 21:14
Походу рам-диск глючит из-за неправильной регенерации ОЗУ. Держит данные пару минут, потом дохнет. В Специалисте-М счётчиками перебираются только 7 разрядов, а MN41256A-08, возможно, требует 8 (никак не могу найти даташит на них). А К565РУ7 требует все 9 разрядов! (В "датшите" (http://www.155la3.ru/datafiles/k565ru7.pdf) есть такая строка: Регенерация осуществляется за 512 циклов). Похоже, и тут схема Афанасьева ошибочна.

Serg6845
22.12.2021, 21:34
Походу рам-диск глючит из-за неправильной регенерации ОЗУ. Держит данные пару минут, потом дохнет. В Специалисте-М счётчиками перебираются только 7 разрядов, а MN41256A-08, возможно, требует 8 (никак не могу найти даташит на них).

не "возможно", а абсолютно точно. даташит ищется по первой ссылке в гугле, правда он на японском.


А К565РУ7 требует все 9 разрядов! (В "датшите" (http://www.155la3.ru/datafiles/k565ru7.pdf) есть такая строка: Регенерация осуществляется за 512 циклов).

да, поэтому когда апгрейдил свой ленинград - поставил 41256, иначе пришлось бы кучу дорожек резать.

SpaceEngineer
22.12.2021, 22:10
Где, где даташит? Если вы про это, то там только какая-то таблица с микросхемами. Есть только упоминание refresh cycle 256, и всё.
https://www.datasheets360.com/part/detail/mn41256a-08/1397892249336617894/

- - - Updated - - -

Кстати, fifan, ваш тест памяти не отлавливает проблему с регенерацией, показывает все страницы "исправными". Даже отсутствующие :) Вероятно, он слишком шустрый - процессор, перебирая 64 кб в пределах страницы МХ-а, осуществляет эдакую "программную регенерацию".

Serg6845
22.12.2021, 22:24
Где, где даташит? Если вы про это, то там только какая-то таблица с микросхемами. Есть только упоминание refresh cycle 256, и всё.
https://www.datasheets360.com/part/detail/mn41256a-08/1397892249336617894/


нет, не это. хотя упоминания про 256 циклов достаточно чтобы понять что надо 8 адресов ;)

на выбор (https://www.datasheetarchive.com/MN41256-datasheet.html)

p.s. насколько я знаю - у всех 41256 регенерация по 8 адресам.



Кстати, fifan, ваш тест памяти не отлавливает проблему с регенерацией, показывает все страницы "исправными". Даже отсутствующие :) Вероятно, он слишком шустрый - процессор, перебирая 64 кб в пределах страницы МХ-а, осуществляет эдакую "программную регенерацию".

для регенерации нужен специяльный тест. помню как отлавливал РУ5, у которой глючила одна ячейка если в нее не писать примерно 10-15 минут...

fifan
23.12.2021, 06:25
Схему регенерации РУ7 касательно А8 можно взять отсюда (http://spetsialist-mx.zx-pk.ru/index18.html).

SpaceEngineer
23.12.2021, 16:03
Там довольно инвазивное изменение, надо резать 4 дорожки на плате. Или поставить 5 новых мультиплексоров чисто для рам-диска. Попробую другую идею. Где взять правильный тест рам-диска на динамической памяти?

SpaceEngineer
24.12.2021, 01:48
Вот так всё работает. Пришлось кучу дополнительных проводов тянуть от материнки, зато ничего резать не надо.

https://disk.yandex.ru/d/HC1MsTlyX9QlFQ

Регенерация 41256 сделана свободной половинкой КП2 (другая коммутирует A8). Я просто продублировал вторую половинку DD35 на схеме Специалиста-М, которая коммутирует A14 и A15, только вместо лог 0 подал отсутствующий разряд адреса со счётчика. Для теста просто скопировал в коммандере все файлы с ром-диска на все 4 рам-диска (более 32 кб, чтобы убедиться, что все строки регенерируют). Прошло 15 минут, все файлы на месте, запускаются без глюков. На вторую половинку КП2 завёл ещё один разряд со счётчиков - по идее, это должно обеспечить регенерацию РУ7, но у меня их нет, чтобы проверить.

Заодно буфер для STD цвета припаял. Какие программы/игры есть цветные, чтобы потестить? Знаю только BUDI, цветные линии, MUSIC. К сожалению, Almaz-2 чёрно-белый :(

- - - Updated - - -

Просто понабивал коды STD цветов по адресу F802, всё соответствует. Правда, вместо чёрного - тёмно-серый. Но это скорее не баг, а фича: 8-цветный режим стал 9-цветным.
https://disk.yandex.ru/i/GA6uNYwzCpHVcg

SpaceEngineer
24.12.2021, 20:24
Запустил прошивку Сябра (которая SyabrMX2ROM.rar (http://spetsialist-mx.zx-pk.ru/index35.html)). Где взять описание директив Монитора-4? Знаю, что по X запускается рамфос, а есть директивы для запуска чего-нибудь из ром-диска STD? Там все 32 кб чем-то заняты.

fifan
25.12.2021, 07:40
а есть директивы для запуска чего-нибудь из ром-диска STD? Там все 32 кб чем-то заняты.
Здесь (https://zx-pk.ru/threads/12316-novyj-spetsialist-pk-na-diskretakh.html?p=634030&viewfull=1#post634030) я приводил.

SpaceEngineer
25.12.2021, 15:04
Спасибо. Все буквы перебрал, а собаку попробовать не додумался :)

- - - Updated - - -

В общем, всё работает, осталось аккуратно обновить схемы и платы. Из изменений архитектуры сделаю управление страницами ПЗУ регистром страниц RAM-диска (включаемое джамперами), джампер для установки триггера режима по сбросу в режим 2 (стандартный MX), и, возможно, разделю /U1 (регистр цвета) на 4 адреса (есть свободный дешифратор). Стоит ли? Не будут ли MX программы глючить? На освободившиеся три адреса можно будет повесить часы и ещё что-нибудь.

SpaceEngineer
28.12.2021, 19:33
Интересный эффект: если вытащить память из модуля цветности, изображение целиком окрашивается в тот цвет, который последним был записан в регистр цвета (и в STD, и в MX).

SpaceEngineer
29.12.2021, 17:46
Обновил схемы и платы в первом посте.

РУ5 в контроллере цвета почему-то работают нестабильно. Если ввести задержку (или усиление?) сигнала /RAS на одном элементе ЛИ1, всё становится нормально. Но с задержкой РУ6 отказываются работать. Интересно, почему так?

https://disk.yandex.ru/i/Oo4WXciKSYi55A

SpaceEngineer
18.01.2022, 22:49
Платы приехали, паяю.

fifan
19.01.2022, 18:57
Платы приехали, паяю.
Наблюдаем.

SpaceEngineer
19.01.2022, 20:54
Половину спаял (кроссплату и "маппер"), все работает. Пока только один косяк - разъем питания неправильно нарисовал, пришлось его враскорячку впаять:)
https://disk.yandex.ru/i/ljm6kvqmH3LSKA

SpaceEngineer
21.01.2022, 00:39
Ещё косячок обнаружился - у таймера шина данных перевёрнута :) Какого фига в справочниках она вверх тормашками изображена? По не внимательности неправильно компонент нарисовал. Придётся дорожки резать.
Пока сделал программный костыль - переворачиваю байт перед записью в регистры таймера. Звук в рамфосе появился.
Таймер должен сильно греться? 2 МГц это конечно близко к пределу для него, но всё же... Он горячий как К589ИР12!

Ещё один баг на схеме - надо включить резистор 1 кОм параллельно зуммеру. Но при этом регулировка громкости будет сильно нелинейная. Убрал транзистор, стало чуть тише, но зато линейно.
Но иногда в покое зуммер противно высоко свистит (когда подключен между +5 и землёй - например, при минимальной громкости, или когда на выходе ЛЕ1 постоянно лог. ноль). Слышно всё, что на шине +5 делается. А там преобразователь в +12 сидит, добавляет свиста. Попробую подобрать его обвязку, чтобы частоту преобразования увести в ультразвук. Но и в старом Специалисте, с обычным динамиком, через него тоже было слышно всякий свист.
Короче, надо искать правильную схему включения зуммера. Кто знает?

fifan
21.01.2022, 19:28
А как звук в Сябре подключен? Я там вроде свист не замечал.

SpaceEngineer
24.01.2022, 12:15
Запустил! Одна ошибка на плате контроллера цвета. Фотки попозже выложу.

SpaceEngineer
24.01.2022, 20:44
Фотки получившегося монстра:

https://drive.google.com/drive/folders/1PYy2Eyech_MVOBItqZ68mclCDncHZwSJ

https://drive.google.com/file/d/1QG0ZQxs1gxKduNpSG65TezwKpTbVzIZJ/view?usp=sharing

https://drive.google.com/file/d/1Q-PYn8jRoqX8a_Q_cFQRWt5bYap0LID1/view?usp=sharing

Вроде всё работает. Тесты проходит. Только изображение с помехами и дёргается (надо подобрать схему подачи синхросмеси на китайский VGA конвертер).

- На кросс-плате неправильно разведён разъём питания, шина данных таймера и усилитель звука. Таймер почему-то сильно греется, хотя звук выдаёт.
- На плате "маппера" нет ошибок. Комбинация из PBD-60 в качестве "слота" и IDC-60 (DS1013-60) на плате расширения держит очень крепко, даже слишком: выдёргивать надо осторожно, чтобы не погнуть пины резким движением вбок. И нужен ключ, чтобы вставить правильно, т.к. у IDC по бокам есть свободное место, из-за которого его можно вставить со сдвигом в 1 пин. В качестве ключа подойдёт двухпиновое гнездо PBS-2, впаянное на место выреза в IDC. Но лучше всё же использовать специализированные пары разъёмов.
- На плате контроллера цвета неиспользуемый вход /OE одного из ИР23 вместо земли посадил на +5 :) И транзисторы на шелкографии перевёрнуты. Джамперы "настройки таймингов" оказались не нужны, проблема была в длинных шлейфах макеток. Но вот буферизация сигнала /RAS вроде бы помогает. Всё-таки на 32 микросхемы памяти расходится. Тонкие пины для втыкания в панельки РУ5, торчащие снизу, легко гнутся. Вместе с разъёмами по краям платы держит хорошо. В новой ревизии боковой разъём надо сместить на периферию платы Специлиста-М, чтобы не портить разводку для РУ3, если у кого-то такая плата.
- К платам модулей памяти претензий нет. Разве что надо было микросхемы подальше друг от друга ставить - блокировочные конденсаторы не влезают. А слоты SL-26 уже разболтались, лучше вместо них что-то другое. Защита от вставления неправильной стороной работает, ничего не погорело:)
- Плату ром/флеш диска спаял, но ещё не испытал - надо писать драйвер. По ошибке отправил в производство предпоследнюю ревизию без блокировочных конденсаторов. Но это легко фиксится.

SpaceEngineer
25.01.2022, 03:44
Ха-ха, флеш диск работает! (На чтение пока). Написал "два" драйвера - один подключает первые 64 кб как диск G:, второй - вторые 64 кб как диск H:. В принципе, без переделки ОС, можно переключаться между страницами флеш-диска (а их 32!) с помощью небольшой программки, которая будет запрашивать номер страницы, и патчить драйвер в памяти. То же самое можно сделать, кстати, с рам-диском, чтобы не занимать им все доступные буквы накопителей.

Ну что, поделитесь коллекцией софта для коммандера? А то игры для рамфоса не запускаются.

https://drive.google.com/file/d/1QuHLXvXpAM-0fM8V-H4BwIBazQ61CO5n/view?usp=sharing
https://drive.google.com/file/d/1QxZZMAweKG6NK5WZ3BoTYlDTYdNDMKRf/view?usp=sharing

SpaceEngineer
25.01.2022, 19:17
Вот и запись сделал. Флеш диск теперь выглядит и работает как рам диск! Все прозрачно для пользователя. И скорость записи приличная, где-то 50-70% от скорости рам диска, можно ее ещё поднять. Появилась необходимость в диалоге подтверждения удаления файла, а то можно что-нибудь потереть случайно. Страницы по 64к переключаются пока отдельной программкой FPAGE.COM. Вечером запишу видео.

fifan
25.01.2022, 19:31
Ну что, поделитесь коллекцией софта для коммандера? А то игры для рамфоса не запускаются.

С тех пор когда я интересовался Коммандеромом прошло много лет. Но я не очень-то копил под него ромдиски. Здесь (http://www.xn----7sbombne2agmgm0c.xn--p1ai/Soft/ncrdy.rar).

SpaceEngineer
26.01.2022, 03:50
С тех пор когда я интересовался Коммандеромом прошло много лет. Но я не очень-то копил под него ромдиски. Здесь (http://www.xn----7sbombne2agmgm0c.xn--p1ai/Soft/ncrdy.rar).

Видел. Там половина прог не работает :(

SpaceEngineer
26.01.2022, 22:32
Записал видяшку. Осталось засунуть всё в корпус, и спаять новую клавиатуру.
Как всё-таки назвать его? Специалист-MMX было рабочим названием. Может быть, Монстро? :)


https://www.youtube.com/watch?v=TPxU1XpYOUI

HardWareMan
27.01.2022, 08:31
А результирующий софт куда-то сложил для всех или оставил чисто себе?

SpaceEngineer
27.01.2022, 12:36
Я пытаюсь подружить Коммандер и Ramfos. Драйвер использует уже слегка модифицированный биос Коммандера. Хотел сначала довести работу до конца.
Хотя да, стоит написать версию для не-модифицированного. В какую тему выложить, про флеш диск или MXOS?

SpaceEngineer
28.01.2022, 16:50
Выложил код на гитхаб.

https://github.com/UnivEngineer/Specialist-OS/tree/main

fifan
28.01.2022, 18:00
А в чём прикол несоответствия размера файлов ROM-диска rom0.bin и т.д. (512 кБайт) с размерами программ записанными в диск? Интересно что самого пустого места (сужу по байту ff) как бы мало...

HardWareMan
28.01.2022, 20:31
fifan, скорее всего выравнивание по границе страницы в 64КБ.

fifan
28.01.2022, 21:35
А какой смысл в заигрывании со сменными страницами RAM-диска под Коммандером? Просто интересно свой драйвер написать? Выбираем букву диска с B по H переписываем туда файлы с диска А (ROM-диска) и так далее. Не удобнее было средствами BIOS самого Специалиста МХ сделать линейный RAM-диск объёмом 512 кБайт с продуманным механизмом записи каталога. Соответственно панель этого диска сделать со скроллингом вывода имён файлов с объёмом и стартовым адресом. В RAMFOSе с его синими окнами более 16 файлов на каждой панели не выводились.

А вот Flash диск особенно с ПО записи на него мне понравился. Респект SpaceEngineer'у за работу!

Добавлю: Более 16 файлов выводится, но листанием по 16 файлов. Листание страниц с 1 по 4 (почему не с 0 по 7?) возможно клавишами Shift+стрелка влево/вправо. А вот полноценный скроллинг с исчезновением верхней строки смотрелся бы разумно.

SpaceEngineer
29.01.2022, 02:51
А в чём прикол несоответствия размера файлов ROM-диска rom0.bin и т.д. (512 кБайт) с размерами программ записанными в диск? Интересно что самого пустого места (сужу по байту ff) как бы мало...

Выравнивание по секторам (256) в структуре ром-диска коммандера, плюс выравнивание по 64 кб страницам.
Скрипт, создающий образ, тупо перебирает все файлы в папки и пытается всунуть в странице. Из-за этого в некоторых страницах всего по два файла, и под 30 кб пустого места. Такое бывает, если следующий за текущим файл больше оставшегося свободного места.

- - - Updated - - -


А какой смысл в заигрывании со сменными страницами RAM-диска под Коммандером? Просто интересно свой драйвер написать? Выбираем букву диска с B по H переписываем туда файлы с диска А (ROM-диска) и так далее.

Не понял, что ты имеешь в виду. (Можно на ты?)


Не удобнее было средствами BIOS самого Специалиста МХ сделать линейный RAM-диск объёмом 512 кБайт с продуманным механизмом записи каталога. Соответственно панель этого диска сделать со скроллингом вывода имён файлов с объёмом и стартовым адресом.

Средствами какого BIOS? Коммандер/MXOS понимает только диски в формате "типа FAT8", поэтому непрерывный диск на 2 мега не сделать. Рамфос же имеет непрерывную структуру диска, где файлы идут друг за другом без разрывов, и тоже только до 64 кб. Такая структура не позволяет сделать удаление/запись: при удалении файла из середины, всё, что выше, копируется в образовавшуюся дырку. Для 64к рам дисков это Ok, но для флеша это убийство... Да и стирать/писать его можно только 256-байтными блоками. Т.е. к рамфосу можно прикрутить читалку такого флеш диска, но вот писалку... Если бы посмотреть, как устроена его родная MXDOS, но я даже её саму не знаю как вытащить из odi файлов, и исходников вообще нигде не видел, даже на самих odi от Афанасьева (там, кстати, есть исходники рамфоса). Но одно ясно - MXDOS сделана она довольно костыльно, запись/чтение/выполнение файлов с дискеты идет только через рам диск.

В общем, архитектура Коммандера как нельзя лучше подходит для флеш диска. Поэтому я написал драйвер именно для него. К тому же, мне пока не понятно, как прикручивать драйверы к рамфосу. Та же MXDOS это не драйвер дисковода, а целая самостоятельная ОС, которая понимает формат рам дисков рамфоса, и, похоже, использует его БИОС.

Я почему это всё затеял, и почему спрашивал тебя про драйвер дисковода (и PVV пытаю про Sdos)? Я хочу перевести MXOS на FAT12/FAT16, чтобы сделать непрерывные диски (рам, флеш, ром системный до 256кб). Лучше сразу "в настоящем" формате FAT12/FAT16, чтобы потом легче было прикрутить драйвер дисковода и SD карты.

А следующим этапом - запуск программ от Рамфоса. Для этого надо будет реализовать его точки входа. Если не получится, то есть план B: перевести дисковые операции Рамфоса тоже на FAT12/FAT16. Тогда можно будет на компе иметь обе системы, переключаться между ними когда надо, и они обе будут видеть содержимое дисков. Есть ещё план C, более костыльный: сделать для Коммандера драйвер рам-диска в формате Рамфоса. Это будет своеобразный мост между системами.


Добавлю: Более 16 файлов выводится, но листанием по 16 файлов. Листание страниц с 1 по 4 (почему не с 0 по 7?) возможно клавишами Shift+стрелка влево/вправо. А вот полноценный скроллинг с исчезновением верхней строки смотрелся бы разумно.

А, вон оно как, спасибо за подсказку.

fifan
29.01.2022, 08:03
Мне не нравится что дисков в Коммандере аж 7 (B...H), а не один. Ещё имя файла только заглавными буквами и 6 букв. В остальном хорошая задумка была у Константина Юденцов, жаль что не доделал свой Коммандер.

Файлы в RAM-диск пишутся друг за другом с 32-байтным заголовком и самим кодовым кодом. И так все 512 кБайт можно записать. Но не понятен принцип в конце каждых 64 кБайт. Если файл не входит в текущую страницу, то он должен писаться в следующую. А как это об этом сообщается пользователю? Вот формат файла на RAM/ROM дисках:


; 3 байта - признак заголовка (#d3 #d3 #d3)
; 8 байт - имя файла
; 1 байт - пробел (#20)
; 3 байта - расширение файла
; 1 байт - признак сохранённости файла (#8c)
; 3 байта - дата создания файла
; 5 байт - признак RAM/ROM-диска (#00 #00 #00 #00 #00/#20 #20 #20 #20 #20)
; 2 байта - начальный адрес
; 2 байта - конечный адрес
; 2 байта - контрольная сумма
; ... тело файла
; 2 байта - адрес признака заголовка
Есть 5 байт в заголовке файла, которые используются не рационально, а именно туда записывается или байт #00, или #20. Для чего вот создатели RAMFOS так поступили?

Я это к чему. Я полтора года не развевал код нового MXDOS версии 4. Некоторые подпрограммы я переписал, некоторые оставил. Я застопорился именно на выводе имён файлов на границе страниц. Писал на ассемблере ASM80WIN под эмуллятором. Несколько раз ставил прошитую ПЗУ на Сябр. Работает. Вот скриншот программы. В нижнем правом углу выходит число целых страниц:остаток памяти на текущей странице. Левая панель сменная (по F3) - ROM-диск/SD карта, левая - только RAM-диск непрерывный со скроллингом вывода имён файлов. F5-копирование (пока только с ROM на RAM-диск), F4-просмотр/редактирование выбранного файла, F6-переименование файла, пробел-выделение файлов, ВК-запуск файла, забой-удаление файла (пока только с RAM-диска).

Единственное что меня разочаровывает это то что я не смогу на Сябре (пока мой единственный рабочий) посмотреть работу с SD картой. Ты же, SpaceEngineer поддерживаешь считыватель с SD карты по схеме HardWareMan'а работающий на Специалисте МХ2? Я то использую считыватель SD карты по схеме от Vinxru, который распаян на Сябре. Vinxru написал некоторую DOS и я использую её подпрограммы.

HardWareMan
29.01.2022, 09:17
Выравнивание по секторам (256) в структуре ром-диска коммандера, плюс выравнивание по 64 кб страницам.
Скрипт, создающий образ, тупо перебирает все файлы в папки и пытается всунуть в странице. Из-за этого в некоторых страницах всего по два файла, и под 30 кб пустого места. Такое бывает, если следующий за текущим файл больше оставшегося свободного места.
Т.е., сортировку ты не осилил? Есть же алгоритмы по оптимальному "забиванию" ёмкости кусками разной величины и с задаваемыми ограничениями.

SpaceEngineer
29.01.2022, 11:52
Мне не нравится что дисков в Коммандере аж 7 (B...H), а не один. Ещё имя файла только заглавными буквами и 6 букв. В остальном хорошая задумка была у Константина Юденцов, жаль что не доделал свой Коммандер.

Вот я и хочу его доделать.


Файлы в RAM-диск пишутся друг за другом с 32-байтным заголовком и самим кодовым кодом. И так все 512 кБайт можно записать. Но не понятен принцип в конце каждых 64 кБайт. Если файл не входит в текущую страницу, то он должен писаться в следующую. А как это об этом сообщается пользователю? Вот формат файла на RAM/ROM дисках:
Есть 5 байт в заголовке файла, которые используются не рационально, а именно туда записывается или байт #00, или #20. Для чего вот создатели RAMFOS так поступили?

Это ты про рамфос говоришь. Я же предлагаю избавиться от такого устройства рам-диска и перейти на FAT12. Все 64к банки Сепциалиста можно объединить в один непрерывный диск, я уже знаю как. Неполные секторы в конце 64к страниц (те, что частично перекрываются портами) можно просто пометить как "бэды" при форматировании.


Я это к чему. Я полтора года не развевал код нового MXDOS версии 4. Некоторые подпрограммы я переписал, некоторые оставил. Я застопорился именно на выводе имён файлов на границе страниц. Писал на ассемблере ASM80WIN под эмуллятором. Несколько раз ставил прошитую ПЗУ на Сябр. Работает. Вот скриншот программы. В нижнем правом углу выходит число целых страниц:остаток памяти на текущей странице. Левая панель сменная (по F3) - ROM-диск/SD карта, левая - только RAM-диск непрерывный со скроллингом вывода имён файлов. F5-копирование (пока только с ROM на RAM-диск), F4-просмотр/редактирование выбранного файла, F6-переименование файла, пробел-выделение файлов, ВК-запуск файла, F8-удаление файла (пока только с RAM-диска).

О, там есть исходники MXDOS? Или это другой дос, самописный? Я ещё забыл что ты писал некий SpetsCommander (я не смог его запустить). Это не одно и то же? Дай exe погонять))


Единственное что меня разочаровывает это то что я не смогу на Сябре (пока мой единственный рабочий) посмотреть работу с SD картой. Ты же, SpaceEngineer поддерживаешь считыватель с SD карты по схеме HardWareMan'а работающий на Специалисте МХ2? Я то использую считыватель SD карты по схеме от Vinxru, который распаян на Сябре. Vinxru написал некоторую DOS и я использую её подпрограммы.

Я заложил возможность подключения обоих вариантов контроллера без разрезов и МГТФ. Планирую спаять аппаратный SPI по схеме HWM_PVV. Ещё мне подогнали рабочую ВГ93, надо будет спаять контроллер FDD. Какую схему взять, от Сябра? Помню, ты писал, что в MX2 контроллер не работает из-за неправильной частоты клока. В моём железном Специалисте клок стандартный - 8 МГц.

- - - Updated - - -


Т.е., сортировку ты не осилил? Есть же алгоритмы по оптимальному "забиванию" ёмкости кусками разной величины и с задаваемыми ограничениями.

Да это просто тест. Я уже начал переводить Коммандер Юденцова на FAT16. Будет один непрерывный диск на 2 Мб без костылей с 64к страницами. И рам-диск тоже станет одним непрерывным.

- - - Updated - - -

Я кстати перевожу исходники vinxru на мнемоники Z80. Поудобнее они.

fifan
29.01.2022, 12:05
О, там есть исходники MXDOS? Или это другой дос, самописный? Я ещё забыл что ты писал некий SpetsCommander (я не смог его запустить). Это не одно и то же? Дай exe погонять))
Исходник MXDOS у меня есть, последняя версия называется RAMFOS 6.4. MXDOS4 - полностью рукописная программа, использует п/п от RAMFOS 6.4, свои тоже есть п/п, например вывод двойной рамки окон. SpetsCommander есть версии для двух различных SD контроллеров. Работает в режиме std и только с SD картой. Я как-то ещё поддерживал Flash-диск под МХ2. Соберу исходники и программы и передам.[/QUOTE]


надо будет спаять контроллер FDD. Какую схему взять, от Сябра? Помню, ты писал, что в MX2 контроллер не работает из-за неправильной частоты клока. В моём железном Специалисте клок стандартный - 8 МГц.
В схеме от Сябра я неправильно развёл системный разъём. Есть исправленная схема и печатка - нет времени запускать плату.


Я кстати перевожу исходники vinxru на мнемоники Z80. Поудобнее они.
Я тоже так делаю. Но HardWareMan нас не поймёт...

SpaceEngineer
29.01.2022, 21:02
Исходник MXDOS у меня есть, последняя версия называется RAMFOS 6.4. MXDOS4 - полностью рукописная программа, использует п/п от RAMFOS 6.4
Я правильно понимаю, что:
MXDOS = RAMFOS 6.4 - это программа Афанасьева?
MXDOS4 - твоя?


например вывод двойной рамки окон.
Из Коммандера, надеюсь? :) Там она просто реактивная, потому что линии рисуются графически, а не символами псевдографики.



Я тоже так делаю. Но HardWareMan нас не поймёт...
Приверженец мнемоник i8080?
Почти сделал, бинарники старые и новые полностью совпадают. Использую SjASMPlus. Этот ассемблер имеет опцию --i8080, которая заставляет его использовать только набор инструкций i8080. Осталась одна проблема: он как-то странно обрабатывает код BLOCK n (который .block n в i8080). Он его обрабатывает как DB 0,n. Т.е. вместо того, чтобы просто присвоить адреса меткам, он в сам бинарник его встраивает как массив нулей. Из-за этого DOS.SYS неправильно собирается: у него в начале кода объявлены 33 байта системных переменных, которые под начинаются с 8FDFh (с помощью BLOCK). А компилятор берёт и встраивает их в бинарник, из-за чего тот начинается с 33 нулей. Может быть, надо использовать не BLOCK, а что-то другое?

https://z00m128.github.io/sjasmplus/documentation.html#s_macros

HardWareMan
30.01.2022, 06:48
Приверженец мнемоник i8080?
Приверженец соответствия. Если пишешь для i8080/ВМ80, то будь ласка, пиши в инструкциях для MCS80. Я не против мнемоник Z80, просто оставьте их для Z80, который, кстати, есть в этом вашем Сябре. То же самое и касается i8085.

fifan
30.01.2022, 08:57
Я правильно понимаю, что:
MXDOS = RAMFOS 6.4 - это программа Афанасьева?
MXDOS4 - твоя?
MXDOS - это ОС, которая записывается на каждую дискету и переписывается при загрузке дискеты в определённую память. С этого адреса я хочу загружать свою MXDOS, назвал её версии 4.
RAMFOS - это ОС, которая сидит в ПЗУ и сразу встречает нас приглашением ввода даты. Если дисковод отсутствует, то мы можем выводить на экран только содержимое либо ROM-диска, либо RAM-диска.
Кстати в приложенном архиве я вставил RAMFOS 6.4 с исходником (http://www.xn----7sbombne2agmgm0c.xn--p1ai/Soft/ramfos_6_4.rar). Кроме этого выложил свой SpetsBrowser для любого Std Специалиста (http://www.xn----7sbombne2agmgm0c.xn--p1ai/Soft/spetsbrowser_hwm.rar) и для Специалиста МХ2 (http://www.xn----7sbombne2agmgm0c.xn--p1ai/Soft/spetsbrowser_hwm_mx2.rar) с поддержкой считывателя SD карты от HardWareMan'а. Есть и файлы для эмулятора emu.


Из Коммандера, надеюсь? :) Там она просто реактивная, потому что линии рисуются графически, а не символами псевдографики.
Самособой, но я сам сделал подпрограмму, исходники Коммандера я не копал. Этим и отличаться будет моя версия от предыдущих версий MXDOS (решил присвоить ей версию 4) от предыдущих. Но в отличие от предыдущих моя пока не поддерживает дисковод, только SD карту (пока только чтение) и RAM/ROM диски.

SpaceEngineer
30.01.2022, 13:50
Спасибо, поиграюсь.
Кстати, на цветных компьютерах, чтобы буфер загрузки на экране не был виден, можно выставить цвет фона = цвет пикселей.

- - - Updated - - -

Отвечу на неотвеченное:


Есть 5 байт в заголовке файла, которые используются не рационально, а именно туда записывается или байт #00, или #20. Для чего вот создатели RAMFOS так поступили?
Эти 5 байт используются MXDOS-ом. Так написано в руководстве пользователя Ramfos.
Зато там целый байт в имени файла отводится на ненужный пробел между именем и расширением. А так, вполне можно сделать дескриптор файла таким же, как в FAT. Формат имени 8.3 уже есть, и дата.
Вот чего нет в FAT - это адресов загрузки. В Специалисте они нужны только для исполняемых файлов (exe, com). Я думаю или писать их в конец файла, или использовать формат rks или rkx, где есть заголовок.


Я это к чему. Я полтора года не развевал код нового MXDOS версии 4. Некоторые подпрограммы я переписал, некоторые оставил. Я застопорился именно на выводе имён файлов на границе страниц. Писал на ассемблере ASM80WIN под эмуллятором. Несколько раз ставил прошитую ПЗУ на Сябр. Работает. Вот скриншот программы. В нижнем правом углу выходит число целых страниц:остаток памяти на текущей странице. Левая панель сменная (по F3) - ROM-диск/SD карта, левая - только RAM-диск непрерывный со скроллингом вывода имён файлов. F5-копирование (пока только с ROM на RAM-диск), F4-просмотр/редактирование выбранного файла, F6-переименование файла, пробел-выделение файлов, ВК-запуск файла, забой-удаление файла (пока только с RAM-диска).
А как его запустить в эмуляторе? В выложенном тобой архиве есть только сам рамфос 6.4.
SpetsBrowser запустил в эмуляторе. Почему гуляние по списку файлов такое медленное? Задержка большая стоит, или он читает FAT с SD карты?

fifan
02.02.2022, 17:10
Эти 5 байт используются MXDOS-ом. Так написано в руководстве пользователя Ramfos.
Зато там целый байт в имени файла отводится на ненужный пробел между именем и расширением.
Создатели RAMFOS не очень замарачивались. Пробел нужен тупа для того, чтобы печатать разделитель между именем и расширением файлов. А вот 5 байт я так и не нашёл где в системе используются.


А как его запустить в эмуляторе? В выложенном тобой архиве есть только сам рамфос 6.4.
Там в исходниках написан адрес запуска: 0000. Я подставил в эмулятор - работает. Далее с 1800 по 3fff находятся встроенные программы: ассемблер, дизассемблер, отладчик и редактор. И заканчивается всё пользовательским ROM-диском.


SpetsBrowser запустил в эмуляторе. Почему гуляние по списку файлов такое медленное? Задержка большая стоит, или он читает FAT с SD карты?
Не то не другое. Просто когда-то использовал встроенную подпрограмму опроса клавиш, тормозит. Переделывать не стал. Может исправлю.

fifan
11.06.2022, 16:38
Автор куда-то пропал. Но я всю информацию по харду (описание, схемы и архивы гербер-файлов для производства печатных плат) выложил на сайт (http://www.специалист-пк.рф/index12.html).

http://www.xn----7sbombne2agmgm0c.xn--p1ai/images/M_MX_1.png

SpaceEngineer
29.06.2022, 17:38
Я здесь. Просто пришлось срочно приводить дела в порядок, в связи с известными событиями.
fifan, спасибо за признание))
В схемах и герберах есть ошибки. Я их законспектировал, но пока не исправлял. Найду время - займусь.
Еще MXOS2 ждёт, когда я доделаю FAT с каталогами. Там не так много работы осталось в принципе. Сложнее - сделать поддержку запуска программ от Рамфоса.
В планах по железу - спаять контроллеры дисковода, SD карты, PS/2, и саму клавиатуру. Мешочек кнопок черри лежит уже год.

fifan
30.06.2022, 15:20
В схемах и герберах есть ошибки. Я их законспектировал, но пока не исправлял. Найду время - займусь.
Народу необходимы правильные герберы.



В планах по железу - спаять контроллеры дисковода,
После запуска моей переразведённой платы - тоже никак руки до него не дойдут.

fifan
06.08.2022, 19:44
После запуска моей переразведённой платы - тоже никак руки до него не дойдут.
Дошли руки до переразведённой платы (были мои грубые ошибки по разводке входных разъёмов) контроллера дисковода для Сябра. Схему генератора и формирователя +12 вольт уже завёл. Ткните меня, где я приводил гербер - файлы печатной платы. У меня произошла неприятность накрылся мой SSD диск со всеми схемами. Гербер - файлы некоторых моих плат остались. Я хочу сравнить печатки контроллера дисковода, найти где есть мои исправления.