nedoPC.org

Electronics hobbyists community established in 2002
Atom Feed | View unanswered posts | View active topics It is currently 28 Mar 2024 02:14



Reply to topic  [ 67 posts ]  Go to page 1, 2, 3, 4, 5  Next
РК-86 в Proteus 
Author Message
Doomed

Joined: 12 Feb 2016 13:39
Posts: 463
Reply with quote
Продолжая испытывать модель вм80 процессора решил собрать в протеусе РК-86, он будет нужен для проверки работы сигнала захвата шины внешним устройством(ПДП).
Правда в протеусе нет i8275 и i8257( есть только i8237, однако, монитор патчить командами инициализации нет желания, проще 8257 написать... :ebiggrin: ), но была же схема РК без вг75, а если в качестве ОЗУ SRAM использовать, то и вт57 можно исключить...
Все вроде как и получилось, проглашение РК-86 я на экране увидел. Возникло желание на клавивтуре понажимать кнопочки... а тут обломс...8255, ну, которая к580вв55, в протеусе кривая однако, понимает настройку только все порты на вывод и все... Но разве это может меня остановить :esmile: нет модели- значит будет! - пара часов работы, и i8255.dll (хотя и усеченный, только mode 0, функционал) работает.
вот что получилось:
Attachment:
wx_vc_rk86.png
wx_vc_rk86.png [ 130.22 KiB | Viewed 21913 times ]

во вложении этот проект


Attachments:
rk86.zip [309.41 KiB]
Downloaded 859 times
16 Nov 2016 02:42
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
PVV wrote:

Я смотрю - на нескольких листах проект делали? Или это просто краешек с клавиатурой видно?

_________________
iLavr


16 Nov 2016 05:00
Profile
Doomed

Joined: 12 Feb 2016 13:39
Posts: 463
Reply with quote
Lavr wrote:
Я смотрю - на нескольких листах проект делали? Или это просто краешек с клавиатурой видно?

Нет, лист один. Эта картинка делает акцент на клавиатуру. Для этого эмулируемого ПК быстродействие таково, что можно с клавиатуры набирать команды и смотреть их выполнение(~2c нужно удерживать кнопку для ее детектирования на один символ). Это позволяет проводить аппаратную отладку различных схем и их программного взаимодействия... например подключить ROM диск с нужной программой, ее загрузить и выполнить...
такая вот картинка:
Attachment:
wn_rk.png
wn_rk.png [ 101.24 KiB | Viewed 21899 times ]

на мой взгляд мало информативна, а схема в архиве в формате pdf есть.


16 Nov 2016 13:08
Profile
God

Joined: 02 Jan 2006 02:28
Posts: 1390
Location: Abakan
Reply with quote
PVV wrote:
Для этого эмулируемого ПК быстродействие таково, что можно с клавиатуры набирать команды и смотреть их выполнение(~2c нужно удерживать кнопку для ее детектирования на один символ)
Есть мнение, что под нативной вендой будет быстрее работать. Сам периодически vbox запускаю, и заметил, что быстродействие программ там не на высоте.


16 Nov 2016 20:48
Profile
Doomed

Joined: 12 Feb 2016 13:39
Posts: 463
Reply with quote
Довел таки я эту схему до конца. Сделал dllки для i8257и i8275 в том функционале(и не более!) чем это используется при запуске РК-86.
Нашел еще мелкие ошибки в x80.dll. Вот что получилось в итоге:
Attachment:
rk-86_vg75.png
rk-86_vg75.png [ 94.83 KiB | Viewed 21832 times ]

вот где красота минимализма! :-?
во вложении этот проект
и исходник i8275.dll с комментариями, там много еще чего можно добавить...


Attachments:
i8275.zip [41.55 KiB]
Downloaded 746 times
rk86_8.pdsprj.zip [440.2 KiB]
Downloaded 782 times
06 Dec 2016 03:45
Profile
Doomed

Joined: 12 Feb 2016 13:39
Posts: 463
Reply with quote
Интересно мне стало запустить на этом РК что-то из игрушек, и нарисовал ROM диск, а он работать не хочет... начал разбираться, а там в i8255.dll ошибочка вкралась :)... поправил. Запустил игрушку Lode Runner, она при старте меняет параметры ВГ75, и опять, что-то не так... разобрался и, вот результат:
Attachment:
rk86_LodRun.png
rk86_LodRun.png [ 142.9 KiB | Viewed 21781 times ]

все вроде хорошо, а что б еще сделать? -
собрать vga выход, благо схемка такой доработки и откорректированный монитор имеются:
Attachment:
rk-86_vga_klad.png
rk-86_vga_klad.png [ 70.22 KiB | Viewed 21781 times ]


PS: rom диск я использовал на 64КБ, а не журнальный на 32.
файлы по этому проекту во вложении


Attachments:
rk86_9rom_vga.zip [652.82 KiB]
Downloaded 765 times
12 Dec 2016 04:13
Profile
Doomed

Joined: 12 Feb 2016 13:39
Posts: 463
Reply with quote
и исходники 8275, 8255, 8257, display_vga, как есть...



добавил исправленную 8255.dll, - по умолчанию в выходных защелках портов 0, а не 1.


Attachments:
i8255.zip [25.07 KiB]
Downloaded 707 times
C_src.zip [14.48 KiB]
Downloaded 700 times


Last edited by PVV on 10 Jan 2017 03:31, edited 1 time in total.

12 Dec 2016 04:16
Profile
Doomed

Joined: 12 Feb 2016 13:39
Posts: 463
Reply with quote
ROM диск это, конечно, хорошо, но пользоваться им крайне не удобно, другое дело FDD или SD. SD! в теме про 'Специалиста' уже это было, а в теме эмулятора fdd для него был код, позволяющий читать и писать на SD... таким образом можно добавить тот контроллер SD к этому РК, и получить весьма удобный способ как чтения, так, с некоторыми ограничениями, и записи файлов.
Доработав дешифратор адресного пространства, для получения CS по 4К, а на по 8К как это было изначально, можно получить 4 дополнительных CS по 4К каждый без ущерба для всего имеющегося набора ПО для РК на данный момент. На один из CS можно 'повесить' выборку SD, а на другой, опционально, дополнительное ОЗУ(надо ~2К для работы с FAT). (ОЗУ можно сделать хоть статику, или, если используемая в РК память РУ5, то открыть /CASом эти куски памяти в ней. Но это вторым этапом можно сделать, сейчас я в основной памяти 2К выделяю.) Код поддержки файловой системы на SD я доработал, чтобы была возможность не только запускать RKR файлы(<имя файла(.RKR можно не писать)>), просматривать список файлов(DIR) и перемещаться по каталогам(CD <имя каталога>), но и прочитать необходимое количество байт нужного файла в определенное место памяти(R <имя файла>,<адрес в памяти куда сложить данные>,<сколько байт прочитать>), и точно так же записать в файл с указанного адреса нужное число байт(W <имя файла>,<адрес в памяти откуда взять данные>,<сколько байт записать>). Новые файлы не создаются, запись возможна только в созданный файл, и размер файла при записи не изменяется. Я попытался уложить этот код в 2К, и приклеить к основному монитору, вот что получилось-
Attachment:
rk-86_SD1.png
rk-86_SD1.png [ 106.63 KiB | Viewed 21674 times ]

... и SD читается на РК...
а еще этот контроллер легко прикручивается к эмулятору b2m...
Столкнулся с таким моментом- RKR файлы имеют в своем заголовке информацию о старте(2 байта) и длине(2 байта) как и в RKS, но, в отличии от RKS файлов 'Специалиста' байты в словах развернуты, первый старший, второй младший байт, как так? Я этот момент не исправлял, а правил RKR файлы под формат RKS.
во вложении эта схема и исходники sd_dos+конфигурационный файл для b2m.


Attachments:
rk86_9_SD.pdsprj.pdf [209.86 KiB]
Downloaded 754 times
dos_rk_v2.zip [68.42 KiB]
Downloaded 781 times
24 Dec 2016 04:46
Profile
Doomed

Joined: 12 Feb 2016 13:39
Posts: 463
Reply with quote
Дальше больше, а почему бы не совместить ROM диск и SD, вот таким образом? -
Attachment:
rk-86ROM_SD.png
rk-86ROM_SD.png [ 105.77 KiB | Viewed 21674 times ]

из ROM диска читаем sd_dos в 'дырки в памяти выше 32К' и работаем с SD...
получится почти как у vinxru...
однако такой вариант не будет работать в эмуляторе b2m, но сам по себе будет универсальным решением для всего семейства РК-подобных машин у которых предусмотрена работа с ROM диском через ВВ55.


24 Dec 2016 04:53
Profile
Doomed

Joined: 12 Feb 2016 13:39
Posts: 463
Reply with quote
Путем нехитрых манипуляций реализовал совместную работу SD карты и ROM диска -
Attachment:
rk-86_SD3.png
rk-86_SD3.png [ 106.5 KiB | Viewed 21646 times ]

эта схема не требует ни единого изменения и доработки в самом РК,
схема подключается на вторую ВВ55, изначально предусмотренную для работы с внешним диском,
ROM диск читается штатными средствами оригинального монитора, и, так же, штатными средствами, запускается rk_dos для SD карты.
Я собрал SD_dos для размещения в памяти с 0х6000, а с 0х6800 до 0х6FFF память для работы с секторами SD. Понятно, что код можно пересобрать под любое размещение в ОЗУ, в том числе, и в 'дырки' выше 32К, если они открыты, тогда не будет ни каких конфликтов с программами использующими ОЗУ в адресах 0х6000 по 0х6FFF.
На паре не использованных инверторов и кварце 4Мгц собирается генератор, еще пара инверторов будет в запасе( для, например, программатора на этой же плате), две ИЕ5 заменить на одну ИЕ19, и с ПЗУ получится 14 корпусов. Кроме того, в данной схеме и программе не используется чтение регистра состояния, так что можно две КП11 заменить на любой 8и битный буфер с Z состоянием по выходу, получится еще на корпус меньше. Получится полностью автономный модуль для работы с SD.
Единственное НО, тк я старался уложиться в 2К, то из кода дефайном убрана поддержка FAT16, только FAT12, однако это уже диск на 32Мб. Если нужен FAT16, то можно открыть дефайном его код, а FAT12 закрыть, тогда в 2К все поместится, или же открыть все, но тогда код получается ~2.2К, и ПЗУ нужно ставить большего размера.


Attachments:
rk_dos_v3.zip [531.87 KiB]
Downloaded 736 times
27 Dec 2016 06:07
Profile
Doomed

Joined: 12 Feb 2016 13:39
Posts: 463
Reply with quote
Понравилась мне идея с подключением SD к порту ВВ55 совместно с ROM диском, и я решил на новогодних каникулах проверить эту идею 'в железе', а то теория так и останется теорией без проверки её на практике :). РК-86, новодел, у меня есть. Подтолкнуло меня еще к этому ещё и желание собрать программатор для УФППЗУ, тк РФки у меня еще остались, а вот программатора уже нет. Начал прорабатывать схему в протеусе, что и как можно упростить, ни каких подводных камней не увидел, все отрабатывало как и было задумано. Переключение скорости не имеет смысла, тк в таком варианте подключения период обращения укладывается при тактовой на карте ~300Кгц, соотв. 4Мгц/8=500Кгц - будет достаточно и для инициализации (инициализация должна быть до 400Кгц, но реально и при 4Мгц работает) и для основной работы. Набросал примерное размещение мс на макетке, и сделал несущую плату универсального ROM диска, SD интерфейса и программатора УФППЗУ. Держателя для SD карт у меня под рукой не нашлось, но а зачем он нужен то?- Почти все microSD карточки идут в комплекте с переходником под стандартную SD карту, - это же готовый держатель для карт! к контактам переходника подпаиваются луженые провода, формуются и готово!
Attachment:
IMG_2205.JPG
IMG_2205.JPG [ 750.88 KiB | Viewed 21510 times ]

Все спаял,
Attachment:
IMG_2212.JPG
IMG_2212.JPG [ 914.79 KiB | Viewed 21510 times ]

подключил, ROM диск читается, а вот с SD все плохо... иногда карта определяется, и даже 1 раз удалось загрузить коротенькую программку с неё, но в целом не работает... Стал разбираться. Добавил в код sd_dos тестовый вывод, что читается из карты, на нажатие кнопки 'X' реализовал отправку байта в порт, что бы проверить весь тракт прохождения байта - если убрать карту и закоротить MOSI и MISO на держателе, то можно увидеть, что в порт пишется и что читается. На одиночных запросах все ок, НО ведь не работает!? Конденсаторы по питанию я не жалею (их не видно - чипы 0805). В это время fifan начал запускать SD интерфейс на 'СпециалистеМХ2', и я решил кое какие идеи из этой схемы проверить на работающей у меня плате SD для 'Специалиста', собрал локальный тактовый генератор на 4Мгц, поставил ИЕ19 вместо ИЕ5 на делитель полной и пониженной скорости тактирования карты и на узел формирования сдвига байта и - не работает! Как так??? подключаю тактирование от специалистовского генератора - все ок, перекидываю на локальный - нет!?!? Начал в протеусе задавать разные частоты тактирования ВМ80 и SD интерфейса и тут, тоже, SD перестала работать! Как оказалось, проблема заключается в не синхронном поступлении сигнала записи в SD порт по отношению к тактовой на ИР9, иногда данные портятся, а иногда все нормально - при тактировании от одного источника синхронность обеспечивалась автоматически, и этой проблемы я не видел и не задумался... В варианте для РК все решается просто, хоть и добавлением еще одной мс, - D-триггера. Сигнал WR, формируемый программно на ВВ55, имеет длительность гораздо выше тактовой карты, и эта схема работает в широких пределах частот, а вот для схемы SD 'Специалиста' это не так, но это я буду рассказывать в 'специалистовской' теме... отвлекся, однако...
Быстренько напаиваю на свою платку ТМ2, все подключаю и - все работает как швейцарские часы :). Так что практика хоть и вносит свои коррективы в теорию, но и теория имеет право на жизнь! :)
Схема получилось, возможно, и не очень простая, но не сложнее любой схемы контроллера FDD, а удобство в использовании гораздо выше. Ограничения, имеющиеся в текущей реализации sd_dos легко решаются использованием внешних, запускаемых с самой SD карты программ. Кто мешает сделать программу, создающую файл на файловой системе требуемого размера, программу переименования, копирования, удаления, если эти действия нужны именно на РК, а не использовать этот уже готовый функционал на наших 'больших' ПК. Ведь мы именно ищем способы переноса файлов между нашими 'поделками' и PC, а запись в файл без изменения его размера в sd_dos есть.
фото моей 'поделки'...

PS фото делал при плохом освещении, ночь за окном, по тому качество не очень :(


Attachments:
IMG_2218.JPG
IMG_2218.JPG [ 1.23 MiB | Viewed 21510 times ]
24 Jan 2017 14:30
Profile
Doomed

Joined: 12 Feb 2016 13:39
Posts: 463
Reply with quote
во вложении схема универсальной платки ROM_SD_PROGR и исходники.

Следующим этапом будет написание программы программатора для ПЗУшек.


Attachments:
sd_dos_v5.zip [626.18 KiB]
Downloaded 712 times
24 Jan 2017 14:33
Profile
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22409
Location: Silicon Valley
Reply with quote
А это что за новодел такой?

P.S. Вот прямо все на ассемблере написано? :o
Откуда дровишки?

_________________
:dj: https://mastodon.social/@Shaos


24 Jan 2017 17:16
Profile WWW
Doomed

Joined: 12 Feb 2016 13:39
Posts: 463
Reply with quote
Shaos wrote:
А это что за новодел такой?

Изначально собирал как RK86_SRAM на своей плате, на борту DC-DC 5v->12v, -5v формируется как у 'Специалист Экспресс'( из 12v->-5v), и добавлены элементы для поддержки VGA выхода. После добавлена платка с DRAM с мс от SIMM модуля, вместо SRAM.
Shaos wrote:
P.S. Вот прямо все на ассемблере написано? :o
Откуда дровишки?

asm - да, а вот чьи дровишки изначально я не знаю, найдены на просторах сети, мои лишь небольшие правки в части поддержки записи, я вот , выше, писал.


24 Jan 2017 22:37
Profile
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22409
Location: Silicon Valley
Reply with quote
Надо будет поизучать на досуге

_________________
:dj: https://mastodon.social/@Shaos


24 Jan 2017 22:56
Profile WWW
Display posts from previous:  Sort by  
Reply to topic   [ 67 posts ]  Go to page 1, 2, 3, 4, 5  Next

Who is online

Users browsing this forum: No registered users and 12 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group
Designed by ST Software.