Просмотр полной версии : Партнер 01.01 контроллер дисковода
kapitan-u
28.03.2015, 06:21
Готова реплика контроллера дисковода для Партнера!
http://zx-pk.ru/attachment.php?attachmentid=51639&stc=1&d=1427512560
http://zx-pk.ru/attachment.php?attachmentid=51640&stc=1&d=1427512560
Несколько упрощена и улучшена схемотехник: нету ГФ24, канал чтения-записи выполнен по более понятной и простой схеме без АГ3. В качестве бонуса на финальной плате будет выведет коннектор видео с раздельными синхросигналами. Пока прилагаю PDF схему, полный PCAD комплект выложу после переразводки платы.
kapitan-u
28.03.2015, 06:46
Прилагаю ПЗУ и образы дисков.
ПЗУ было найдено на этом форуме в формате RKP. Я прилагаю чистый BIN файл.
Так же на этом форуме было найдено два образа в формате MTC Medincom Floppy Disk Analyser 6.1
С ними пришлось серьезно поработать, чтобы получить чистые DSK образы. Был сделан Perl скрипт, который из FDA BIN+RPT делает DSK.
В DSK лежит:
80 Tracks, 2 Sides, 5 sectors per track, 1024 bytes per sector
из них можно сделать дискеты в формате IBM MFM или использовать с HxC эмулятором, profile для него прилагаю.
Следует заметить, что полезная информация содержится только на стороне 0. Партнер CP/M умеет только односторонние дискеты. Видимо дискеты форматировали на чем то другом и потом на Партнере. FDA образы содержат данные со стороны 1, которые перенесены в DSK, но они бесполезные. Сам контроллер умеет FM и MFM и две стороны.
Схемотехника контроллера и ПЗУ сделаны правильно и могут работать в любом слоте, PnP! :-) но CP/M заточена только под слот №2. В Партнере должен быть монитор В.03
После установки в слот №2, даем в мониторе команду Е2 и загружается CP/M !
На дисках разные версии CP/M :
D1:
28K CP/M VERS 2.2 21.09.89
Заточена на один дисковод.
содержит системные программы, FORMAT и т.п.
D2:
28K CP/M VERS 2.2 14.10.90
Заточена на два дисковода
сожержит игры
Важно, что программы на дисках совместимы только с той версией ОС, которая на их диске!
В принципе все работает. FORMAT, SYSGEN и т.п.
Игры работают, но есть проблемы со знакогенератором. Видимо нужна переключалка.
Очень хотелось бы найти больше дисков к Партнеру и нормальную 64К CP/M
Kakos_nonos
28.03.2015, 16:18
А модуля мцпг у вас нет случаем? Или реплики
kapitan-u
28.03.2015, 16:59
А модуля мцпг у вас нет случаем? Или реплики
Нет, но надо бы сделать :-) По идее должно быть проще, там не надо с образами дисков возиться.
kapitan-u
28.03.2015, 17:26
P-CAD файлы для повторения. Отличия от прототипа минимальны. Самое главное: слот коннектор монтируется на отратное стороне !!!
Очень хотелось бы найти больше дисков к Партнеру и нормальную 64К CP/M
Встречал упоминание только 50K CP/M. В принципе как раз 0000-C7FF для CP/M и C800-D7FF для экрана и замены монитора под новые адреса.
Вопрос знатокам. А DMA тоже использует страницу выбранную для процессора? Нельзя ли экран перенести в недоступную в стандартном режиме память?
kapitan-u
03.04.2015, 03:57
По ходу дела дизассемблировал монитор почти полностью. Может кому пригодится. Формат IDA64
HardWareMan
03.04.2015, 06:21
По ходу дела дизассемблировал монитор почти полностью. Может кому пригодится. Формат IDA64
Что значит - дизассемблировал? Это что-ли, называется дизассемблирование?
http://savepic.net/6601351.png
Так могут все сделать. Если делитесь работой, до доведите ее хотя-бы до логического конца. Вот мой далеко не законченный проект по дизассемблированию ПСПЗУ Специалиста:
http://savepic.net/6594183.png
И пара советов:
1. Так как в РКшке и производных никогда не было Z80, не используйте его для дизассемблирования. i8085 подойдет. По хорошему следует написать модуль i8080 для иды но меня ломает.
2. Пытайтесь понять смысл подпрограмм и описывайте их комментариями. Известные вызовы так же следует подписать (например - документированный в журнале список вызовов монитора).
Я вроде выкладывал, но для примера и обучения положу свой труд здесь.
Что значит - дизассемблировал? Это что-ли, называется дизассемблирование?
Так могут все сделать. Если делитесь работой, до доведите ее хотя-бы до логического конца. Вот мой далеко не законченный проект по дизассемблированию ПСПЗУ Специалиста:
Как то сильно категорично по моему. У каждого на этом форуме свой уровень знаний, умений, возможностей из этого же не вытекает что не нужно делится информацией.
HardWareMan, а сп/м под специалист с партнера перенести?
контроллер дисковода под специалист есть у vinxru ( исторический), но он скрылся вконтакте и где отрыл такой непонятно
не про мх , а про обычный, со вторым монитором
сорри за офтоп, пока помню
Cpm у vinxru уже задышал
36к
Что значит - дизассемблировал? Это что-ли, называется дизассемблирование?
Что за странная привычка наезжать на ровном мест!?!?!?!?
"дайте мне тему а повод для наезда мы найдем" ....
ROM:C84B
ROM:C84B lxi h, 0CF52h
ROM:C84E call Mon_Print_String_J
ROM:C851 call sub_CD49
ROM:C854 call sub_CF43
ROM:C857 call sub_CCE1
ROM:C85A cpi 44h ; 'D' ; Команда DUMP
ROM:C85C jz loc_CE2F
ROM:C85F cpi 4Dh ; 'M' ; Команда MEMORY
ROM:C861 jz loc_CDA5
ROM:C864 cpi 4Ch ; 'L' ; Команда LIST
ROM:C866 jz loc_CCAD
ROM:C869 cpi 4Bh ; 'K' ; Команда CHECKSUM
ROM:C86B jz loc_CC7A
ROM:C86E cpi 54h ; 'T' ; Команда TRANSFER
ROM:C870 jz loc_CC3B
ROM:C873 cpi 1Fh ; Команда CLS
ROM:C875 jz Mon_Warm_Start
идеальный дизасм, да ?
ROM:C444 BIOS_Start_J: ; CODE XREF: ROM:C00Bj
ROM:C444 lxi h, 0C473h
ROM:C447 lxi d, 0C494h
ROM:C44A lxi b, 8FDFh
ROM:C44D call BIOS_Copy_HL2BC
ROM:C450 call BIOS_Print_String
ROM:C453 call BIOS_Load_Block
почему тогда не
ROM:C444 BIOS_Start_J: ; CODE XREF: ROM:C00Bj
ROM:C444 lxi h, BIOS_Constants
ROM:C447 lxi d, BIOS_Text
ROM:C44A lxi b, word_8FDF
ROM:C44D call BIOS_Copy_HL2BC
тем более что метки есть осталось сделать один шаг, нажать одну кнопку ....
ROM:C85A cpi 44h ; 'D' ; Команда DUMP
ROM:C85C jz loc_CE2F
ROM:C85F cpi 4Dh ; 'M' ; Команда MEMORY
ROM:C861 jz loc_CDA5
ROM:C864 cpi 4Ch ; 'L' ; Команда LIST
ROM:C866 jz loc_CCAD
а не
ROM:C85A cpi 'D' ; Команда DUMP
ROM:C85C jz loc_CE2F
ROM:C85F cpi 'M' ; Команда MEMORY
ROM:C861 jz loc_CDA5
ROM:C864 cpi 'L' ; Команда LIST
ROM:C866 jz loc_CCAD
ROM:C869 cpi 'K' ; Команда CHECKSUM
ROM:C86B jz loc_CC7A
etc
etc
etc
И пара советов:
1. Так как в РКшке и производных никогда не было Z80, не используйте его для дизассемблирования. i8085 подойдет. По хорошему следует написать модуль i8080 для иды но меня ломает.
Опять наезд ровном месте
я на Корвете в те времена писал в мнемонике z80
(благо m80 прекрасно это понимает)
мне он тогда казался ГОРАЗДО понятнее чем i8080
все мои дизасмы - в z80, плохого ничего в этом не вижу
а тем более при наличии IDA базы
переключить в 8085 можно просто на лету
и зачем?!?!? нужен i8080 модуль,
чем он отличается от 8085 кроме пары команды дополнительных ?
и еще, у меня в куча моих дизасмов -
в которых разобраны ТОЛЬКО конкретный куски который были мне интересны ....
HardWareMan
04.04.2015, 07:25
Что за странная привычка наезжать на ровном мест!?!?!?!?
"дайте мне тему а повод для наезда мы найдем" ....
Никаких наездов, только конструктивная критика.
идеальный дизасм, да ?
etc
etc
etc
Нет, ибо:
Вот мой далеко не законченный проект по дизассемблированию ПСПЗУ Специалиста:
Опять наезд ровном месте
я на Корвете в те времена писал в мнемонике z80
(благо m80 прекрасно это понимает)
мне он тогда казался ГОРАЗДО понятнее чем i8080
все мои дизасмы - в z80, плохого ничего в этом не вижу
а тем более при наличии IDA базы
переключить в 8085 можно просто на лету
А вот мне, напрример, не нравятся монотонные мнемоники Z80 и я люблю понятное и логичное разнообразие мнемоник i8080. И дело тут не в личных предпочтениях. Когда вышел РК, он был построен на ВМ80, который клон i8080. И документы все были на ВМ80 и мнемоники и, как вы любите говорить, etc, etc, etc. Посему, я категорически призываю делать дизасмы в родном для родного процессора формате. И, вопреки твоему заявлению, нужно не только сменить процессор, но и запустить повторный анализ. К тому же, дизасм на неродном процессоре может паразитно распознать код там, где его нет.
и еще, у меня в куча моих дизасмов -
в которых разобраны ТОЛЬКО конкретный куски который были мне интересны ....
Интересные тебе куски сугубо твое личное дело. Если честно, меня задело не оформление твоего дизасма, а наличие кучи не распознанного кода, причем сразу в начале, а ведь для этого "осталось сделать один шаг, нажать одну кнопку", знакомо? Ты не обязан расписывать весь код понятными комментариями, но выкладывая дизасм в паблик будь ласка распознай весь код и отдели его от данных. Вот так, прямо в голом виде. Я обычно так и делаю. А уже потом начинаю анализ и подписывание кода.
HardWareMan, а сп/м под специалист с партнера перенести?
контроллер дисковода под специалист есть у vinxru ( исторический), но он скрылся вконтакте и где отрыл такой непонятно
не про мх , а про обычный, со вторым монитором
сорри за офтоп, пока помню
А разве на Специалист-МХе не было какого-то CP/M? Или принципиально с партнера?
kapitan-u
04.04.2015, 17:56
Ребята, давайте жить дружно. В начале ПЗУ Партнера лежит ассемблер+редактор. Меня интересовал монитор. Он разобран до такого состояния, что если у кого есть вопросы, то это сохранит кучу времени. Мой интерес был работа с модулями в слотах расширения.
Никаких наездов, только конструктивная критика.
это на "конструктивную критику" похоже мало.
это почти по классике "чем отличаются общение на форумах в разных странах"
И, вопреки твоему заявлению, нужно не только сменить процессор, но и запустить повторный анализ. К тому же, дизасм на неродном процессоре может паразитно распознать код там, где его нет.
зачем ?
если дизасм уже готов, то зачем делать анализ (да и вообще пользы от него)
переключение просто переключает формат, и не более.
Если честно, меня задело не оформление твоего дизасма, а наличие кучи не распознанного кода, причем сразу в начале, а ведь для этого "осталось сделать один шаг, нажать одну кнопку", знакомо? Ты не обязан расписывать весь код понятными комментариями, но выкладывая дизасм в паблик будь ласка распознай весь код и отдели его от данных. Вот так, прямо в голом виде. Я обычно так и делаю. А уже потом начинаю анализ и подписывание кода.
еще один пример ...
Вы даже не обращаете внимание кто что пишет, просто наезд
к сожалению не конструктивный.
на всякий случай укажу, не я постил оригинальный пост .....
по моему фраза
"Что значит - дизассемблировал? Это что-ли, называется дизассемблирование?"
в отвтет на "По ходу дела дизассемблировал монитор почти полностью. Может кому пригодится."
врядли подходит под определение "конструктивной критики"
зы, мы тут конечно жутко оффтопим.
HardWareMan
05.04.2015, 06:57
зачем ?
если дизасм уже готов, то зачем делать анализ (да и вообще пользы от него)
переключение просто переключает формат, и не более.
Не мне тебе объяснять разницу между Z80 и i8080. Причем, даже в основной странице опкодов Z80. Простое переключение не изменит ничего - нужно запускать повторный анализ (ну да, нажать одну только лишь кнопочку).
еще один пример ...
Вы даже не обращаете внимание кто что пишет, просто наезд
к сожалению не конструктивный.
на всякий случай укажу, не я постил оригинальный пост .....
Тут я оплошал, признаю. Ну и по эжтому поводу публично прошу прощения. Но я повторюсь: это не наезд. Разве требования к качеству документации считается наездом для тех, кто ее готовит? Или правила этого форума тоже наезд на пользователей?
по моему фраза
"Что значит - дизассемблировал? Это что-ли, называется дизассемблирование?"
в отвтет на "По ходу дела дизассемблировал монитор почти полностью. Может кому пригодится."
врядли подходит под определение "конструктивной критики"
Файл называется монитор. В сообщении был указан монитор. А ида показывает почти 60% белых пятен. Вот я и указал. Позже выяснилось, что в этом ПЗУ не только монитор. Для меня это было не очевидно.
зы, мы тут конечно жутко оффтопим.
Согласен, закроем тему конструктивной критики?
Black Cat / Era CG
10.03.2017, 14:02
В DSK лежит:
80 Tracks, 2 Sides, 5 sectors per track, 1024 bytes per sector
из них можно сделать дискеты в формате IBM MFM или использовать с HxC эмулятором, profile для него прилагаю.
Следует заметить, что полезная информация содержится только на стороне 0. Партнер CP/M умеет только односторонние дискеты.
Ради интересу исключительно, удалил из dsk-образов лишнее, дабы попробовать открыть их в своей утиле.
Как выяснилось благодаря b2m, 2 диск все-таки 2-сторонний
Открыл:
http://savepic.ru/13187095.png
CP/M формат там (если кому интересно) такой
Касается только 1 диска:
2 системных трека,
64 записи в директории,
размер блока - 2048 байт,
экстента - 32768.
Сами обрезанные образа (1 образ) и настройки для открытия прилагаю.
60051
а как файлы вытащить? если не ошибаюсь это цветные (мцпг) игры для партнера. причем раньше они мне в виде образов не встречались!
Black Cat / Era CG
10.03.2017, 14:26
а как файлы вытащить?
Щас повытаскиваю. Ваще утила (ссылка на тему у меня в подписи) для этого примерно и нужна. Но с ней еще разбираться надо будет.
Попробую на досуге сконвертировать их в rkp. Раньше только с диска пробовал запускать, руки не доходили с форматом дискеты разобраться...
если я не ошибаюсь это рязанская коллекция игр для мцпг. моих , увы - нет. но почти со всеми авторами игр на этой дискете я был знаком !!!
з.ы. понаглею... а еще дискет - нет? ;)))
Эти диски с сайта Михаила Голованова http://arendatr.chat.ru/
Увы, больше никто нигде другие диски не находил :(
Black Cat / Era CG
10.03.2017, 14:59
А нннет. Чета не работает как надо моя утилитка. Я так понял нужен 2 диск - игры именно там. А именно он чего-то не хочет пока правильно работать. Но я его все равно победю.
А нннет. Чета не работает как надо моя утилитка. Я так понял нужен 2 диск - игры именно там. А именно он чего-то не хочет пока правильно работать. Но я его все равно победю.
Было бы замечательно ))
Black Cat / Era CG
10.03.2017, 15:22
Ага. Там не просто системы разные у них еще формат немного разный...
- - - Добавлено - - -
Те параметры, что я указал относятся только к первому диску. Его пофайловое содержимое на всякий случай вот: 60049
- - - Добавлено - - -
Я пока со вторым разберусь. Там усложняется задача тем, что нет текстовых файлов. Сложно оценить корректность.
но почти со всеми авторами игр на этой дискете я был знаком !!!
Там в одной из игр (HAKKER) сверху несколько фамилий. Так вот с Еришко и Бикмухаметовым я работал в Башпромбанке. Где Рязань, и где Уфа!
Представь моё удивление, когда я запустил эту игру!!! :)
Black Cat / Era CG
10.03.2017, 16:55
А как, если что проверить их на корректность? Где и чем?
Я пока со вторым разберусь. Там усложняется задача тем, что нет текстовых файлов. Сложно оценить корректность.
Если речь о дисках с моего сайта (а других вроде и не существует), то диск 1 односторонний (хотя сдамплены обе стороны), диск 2 - двухсторонний.
Вот DPB этих дисков (они по смещению 462h в данном случае):
DISK1: 28 00 04 0F 01 C2 00 3F 00 80 00 10 00 02 00
DISK2: 50 00 05 1F 00 C2 00 7F 00 80 00 10 00 02 00
Как видно, у второго диска 80 записей на дорожке, т.е. обе стороны объеденены в одну логическую дорожку. Ну и у второго диска размер кластера (блока) вдвое больше.
- - - Добавлено - - -
Я так понял нужен 2 диск - игры именно там. А именно он чего-то не хочет пока правильно работать.
Я даже догадываюсь - почему :) У него нестандартный DPB: несмотря на то, что количество блоков меньше 256 (т.е. номер блока в ALF однобайтный), а количество записей в блоке 32, маска экстента равна нулю, хотя для полного использования места в ALF можно было сделать 03.
- - - Добавлено - - -
Блин, у него ещё и размер checksum вектора неправильный, должно быть 20 00, а не 10 00.
Black Cat / Era CG
10.03.2017, 18:25
Я даже догадываюсь - почему У него нестандартный DPB: несмотря на то, что количество блоков меньше 256 (т.е. номер блока в ALF однобайтный), а количество записей в блоке 32, маска экстента равна нулю, хотя для полного использования места в ALF можно было сделать 03.
К этому нас родина не готовила...
:)
А это нормальная ситуация?:)
00005220: 00 53 54 52 49 4B 45 52|20 42 49 50 01 00 00 00 | .STRIKER BIP....
00005230: 00 00 00 00 00 00 00 00|00 00 00 00 00 00 00 00 | ................
Это зачем?
- - - Добавлено - - -
Надо поправить сообщение и удалить из вложения лишний файл, дабы не вводить никого в заблуждение.
А это нормальная ситуация?
Чёрт его знает, с таким DPB может и нормальная. Хотя это не единственный файл размером 16Кб, может он был чуть больше, но потом как-то обрезали до 16Кб.
Black Cat / Era CG
10.03.2017, 18:41
Ну файлы я теперь легко руками повыдергиваю. Но теперь интересно заставить утилиту с такими образами работать:)
Сложно угадывать, где у этих СР/М-овских дисков DPB находится. А в данном случае, ещё и односторонний диск с двух сторон снят. Вот и думай - подряд дорожки идут, или через одну :)
Black Cat / Era CG
10.03.2017, 23:18
А в данном случае, ещё и односторонний диск с двух сторон снят.
Ну с 1-сторонним-то как раз все быстро получилось. Кроме того, что он односторонний, а снят с 2 сторон, у него все вполне предсказуемо.
- - - Добавлено - - -
В общем вот 60052 обещанный 2 диск пофайлово.
- - - Добавлено - - -
DISK2: 50 00 05 1F 00 C2 00 7F 00 80 00 10 00 02 00
Вопчемта, если открыть диск с параметрами:
28 00 05 1F 03 C2 00 7F 00 80 00 20 00 04 00
то даже получается похоже на правду. Не везет только большим файлам (из более чем 1 экстента).
Такой вот хак:)
В общем, надо будет переделать мне в утилите пару мест...
- - - Добавлено - - -
О! Как оказалось переделывать немного:
1) Переделать вычисление размера системных дорожек через spt (щас через физические дорожки считаю),
2) Разрешить задание размера экстента (Щас вычисляется из размера блока...).
А так показывает нормально (если жескто задать exm=0), даже большие файлы теперь нормально отображаются...
Вопчемта, если открыть диск с параметрами
Это для одностороннего дисковода со 160 дорожками по 5 секторов. В реальности - 2 стороны и 80 дорожек. Но на самом деле - всё равно, как БИОС будет учитывать сторону: либо количество секторов на дорожке удвоено, либо количество дорожек удвоено. Биос Партнёра работает с удвоенным количеством секторов. Таким образом можно работать и с односторонним дисководом (если указать первый байт DPB 28, то номер стороны будет всегда вычислен как ноль), либо с двухсторонним.
Black Cat / Era CG
10.03.2017, 23:33
Это для одностороннего дисковода со 160 дорожками по 5 секторов. В реальности - 2 стороны и 80 дорожек. Но на самом деле - всё равно, как БИОС будет учитывать сторону: либо количество секторов на дорожке удвоено, либо количество дорожек удвоено. Биос Партнёра работает с удвоенным количеством секторов. Таким образом можно работать и с односторонним дисководом (если указать первый байт DPB 28, то номер стороны будет всегда вычислен как ноль), либо с двухсторонним.
Да понятно. Это просто грязный хак на скорую руку, чтобы попытаться открыть образ в моей же утилите, не забираясь внутрь ее. Это скорее мысли вслух.
У меня просто сейчас смещение до директории считается так: off*sec*(80<<len)
А надо считать так: off*spt*80
Отсюда и необходимость костылей.
electroscat
14.03.2021, 16:11
Доброго времени ! А можно герберы платы контроллера ГМД, или лучше проект в P-CAD или Sprint-Layout 6.0 ?
Нашел проект в P-CAD....
Подскажите, а многие реализовали?
Есть фото готового устройства?
Нашлись ли еще какие нибудь образы?
Были ли попытки доработать драйвер флоповода в CP/M?
Если имеются исходники CP/M с Вектора 06С, на сколько сложно их заставить работать на Партнере, ну или на крайний случай, коммандно дизассемблировать код CP/M Партнера и заменить в нем драйфер флоповода на код из Вектора?
Кому интересно коммандно заняться этим процессом?
Подумалось, а ведь мой биос https://zx-pk.ru/threads/33053-rk86-cp-m-2-2-bios-i-80-znakov-v-stroke.html?p=1108802&viewfull=1#post1108802
можно легко адаптировать к Партнеру, коль скоро реплика контроллера дисковода для него уже есть. Вряд ли можно найти CP/M биос для Партнера в исходниках! По сути, у меня там вся CP/M генерируется и настраивается на любые адреса. А ДМА там есть и работает, нужно всего лишь поменять базовые адреса контроллеров, инициализацию видеорежима и учесть разный (скорее всего) формат регистра контроллера.
Stanislav1972
12.06.2021, 17:21
Возможно кому-то пригодится. Попался мне в руки неисправный Партнер вероятно из учебного класса с кастомной прошивкой. Прочитал обе ПЗУ и сохранил в файлы. В коде виден текст ПАРТНЕР-01.01/ОС 54К и 52K CP/M VERS 2.2.
Возможно кому-то пригодится. Попался мне в руки неисправный Партнер вероятно из учебного класса с кастомной прошивкой. Прочитал обе ПЗУ и сохранил в файлы. В коде виден текст ПАРТНЕР-01.01/ОС 54К и 52K CP/M VERS 2.2.
Пропустил в свое время это сообщение :( Файлы ПЗУ сохранились?
Пропустил в свое время это сообщение Файлы ПЗУ сохранились?
Присоединяюсь!!! Люди, може у кого оно есть???
Kakos_nonos, реплика уже есть.
Powered by vBulletin® Version 4.2.5 Copyright © 2025 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot