ПК-01 ЛЬВОВ

форум о ПК-01,02 "Львов"
Текущее время: 04 мар 2021, 19:01

Forum Games WEB Tape Loader Twitter RSS

Часовой пояс: UTC+03:00




Начать новую тему  Ответить на тему  [ 40 сообщений ]  На страницу Пред. 1 2 3 След.
Автор Сообщение
 Заголовок сообщения: Re: ПК-I (прототип ПК-01 "Львов")
СообщениеДобавлено: 22 окт 2012, 10:29 
Не в сети
Аватара пользователя

Зарегистрирован: 11 авг 2008, 17:05
Сообщения: 1405
Откуда: Украина
Цитата:
Если со стороны требований к конфигурации:
Чтобы запустился монитор из rom03 достаточно одной вещи - возможности отключения ПЗУ по адресам 0000-3FFF и замены его на ОЗУ (при включенном экране, а именно такой режим, как я понимаю, при старте).
Стоп! Но ведь у "Львова" ПЗУ расположено по адресам 0xC000 - 0xFFFF! А rom03 предполагает, что по 0x0000 - 0x3FFF?

_________________
Carthago delenda est, Carthaginem delendam esse


Вернуться к началу
 Заголовок сообщения: Re: ПК-I (прототип ПК-01 "Львов")
СообщениеДобавлено: 22 окт 2012, 11:08 
Не в сети

Зарегистрирован: 23 авг 2012, 12:28
Сообщения: 123
Цитата:
Стоп! Но ведь у "Львова" ПЗУ расположено по адресам 0xC000 - 0xFFFF! А rom03 предполагает, что по 0x0000 - 0x3FFFF?
Как я понимаю, для того, чтобы нормально стартовать, на ПК-01 сделали так, что при включенном экране (т.к. в порте C2 при старте скорее всего 00) по адресам 0000-3FFF включено ПЗУ. Оттуда выполняется jmp в неотключаемую копию ПЗУ C000-FFFF, и фрагмент
E00D mvi a, 2
E00F out 0C2h
включает "стандартную" конфигурацию. Потом временное включение ВОЗУ (а заодно и ПЗУ) выполняется по необходимости. А в rom03 предполагается, что при включенном экране по адресам 0000-3FFF ОЗУ.
Неужели я сильно ошибаюсь и при включенном ВОЗУ по адресам 0000-3FFF в стандартном ПК-01 не ПЗУ? Думаю это уже давно проверено и где-нибудь описано.

P.S. Вобще-то модификация для запуска rom03 может быть и чуть другой - достаточно разрешить запись в основное ОЗУ по адресам 0000-3FFF при включенном экране. А читается пусть из ПЗУ. Возможно так сделано и на оригинальном ПК-01, тогда для rom03 даже и не нужно ничего модифицировать. В emu тогда достаточно добавить в разделе mm : MemMap {
строку
map[0][0000-3FFF].wo=mem1[0000]
и заменить имя образа в строке rom="Lvov\rom01.bin"


Вернуться к началу
 Заголовок сообщения: Re: ПК-I (прототип ПК-01 "Львов")
СообщениеДобавлено: 22 окт 2012, 11:44 
Не в сети
Аватара пользователя

Зарегистрирован: 11 авг 2008, 17:05
Сообщения: 1405
Откуда: Украина
Цитата:
Как я понимаю, для того, чтобы нормально стартовать, на ПК-01 сделали так, что при включенном экране (т.к. в порте C2 при старте скорее всего 00) по адресам 0000-3FFF включено ПЗУ. Оттуда выполняется jmp в неотключаемую копию ПЗУ C000-FFFF, и фрагмент
E00D mvi a, 2
E00F out 0C2h
включает "стандартную" конфигурацию. Потом временное включение ВОЗУ (а заодно и ПЗУ) выполняется по необходимости. А в rom03 предполагается, что при включенном экране по адресам 0000-3FFF ОЗУ.
Неужели я сильно ошибаюсь и при включенном ВОЗУ по адресам 0000-3FFF в стандартном ПК-01 не ПЗУ? Думаю это уже давно проверено и где-нибудь описано.

P.S. Вобще-то модификация для запуска rom03 может быть и чуть другой - достаточно разрешить запись в основное ОЗУ по адресам 0000-3FFF при включенном экране. А читается пусть из ПЗУ. Возможно так сделано и на оригинальном ПК-01, тогда для rom03 даже и не нужно ничего модифицировать
Как я понимаю, все выглядело несколько иначе. Вот реплика, где мы об этом упоминали. В стандартном ПК-01 при включенном ВОЗУ обращение к ячейке 0x000 приводило на самом деле к обращению к ячейке 0x8000. После включения ОЗУ забито нулями, так что после небольшой пробежки по NOP'ам ЦП благополучно добирался до ПЗУ. Более толково про этот процесс надо расспросить sadfsdfsdaf, он такой, он все знает. :D
Цитата:
А в rom03 предполагается, что при включенном экране по адресам 0000-3FFF ОЗУ.
Меня этот момент муляет ужасно. Как я уже где-то писал, на своем ПК-02, где была произведена соответствующая доработка, я адаптировал Mon90 под размещение в ПЗУ по адресам 0xC000-0xC7FF... Прошить ПЗУ тогда не получилось, а вот свои труды я мог отправить в Луцк одному товарищу. С другой стороны, rom03 мы получили из Польши... Да и директивы несколько разнятся. Какой-то подозрительный ребус! :?

_________________
Carthago delenda est, Carthaginem delendam esse


Вернуться к началу
 Заголовок сообщения: Re: ПК-I (прототип ПК-01 "Львов")
СообщениеДобавлено: 22 окт 2012, 12:10 
Не в сети

Зарегистрирован: 23 авг 2012, 12:28
Сообщения: 123
Цитата:
Как я понимаю, все выглядело несколько иначе. Вот реплика, где мы об этом упоминали. В стандартном ПК-01 при включенном ВОЗУ обращение к ячейке 0x000 приводило на самом деле к обращению к ячейке 0x8000.
Вон оно как, тогда без доработки компа rom03 не запустить.
Цитата:
После включения ОЗУ забито нулями, так что после небольшой пробежки по NOP'ам ЦП благополучно добирался до ПЗУ.
Несколько сомневаюсь. Есть на ПК-01 кнопка "reset"?
Цитата:
Цитата:
А в rom03 предполагается, что при включенном экране по адресам 0000-3FFF ОЗУ.
Меня этот момент муляет ужасно. Как я уже где-то писал, на своем ПК-02, где была произведена соответствующая доработка, я адаптировал Mon90 под размещение в ПЗУ по адресам 0xC000-0xC7FF... Прошить ПЗУ тогда не получилось, а вот свои труды я мог отправить в Луцк одному товарищу. С другой стороны, rom03 мы получили из Польши... Да и директивы несколько разнятся. Какой-то подозрительный ребус! :?
Кстати, в конфиге ПК-02 rom03 работает.


Вернуться к началу
 Заголовок сообщения: Re: ПК-I (прототип ПК-01 "Львов")
СообщениеДобавлено: 22 окт 2012, 12:59 
Не в сети
Аватара пользователя

Зарегистрирован: 11 авг 2008, 17:05
Сообщения: 1405
Откуда: Украина
Цитата:
Несколько сомневаюсь. Есть на ПК-01 кнопка "reset"?
Да, на "Львове" есть так называемый "горячий" старт... Но я особо в эти моменты никогда не вникал, стандартное ПЗУ было на периферии моих тогдашних интересов, так что будем ждать помощи от sadfsdfsdaf. Из его слов я понял, что запуск ПК-01 вообще довольно странный процесс:
Цитата:
в частности, после вывода заставки заново повторяется инициализация системы (не железо, которое программируют один раз перед этим, но распределение памяти, стек, повторно копируют бейсик в ОЗУ и т.п.)

_________________
Carthago delenda est, Carthaginem delendam esse


Вернуться к началу
 Заголовок сообщения: Re: Прошивки ПЗУ ПК-01 "Львов"
СообщениеДобавлено: 22 окт 2012, 13:41 
Не в сети

Зарегистрирован: 23 авг 2012, 12:28
Сообщения: 123
В общем после попытки изучения фрагмента схемы я пришел к такому мнению:
1. После reseta все адресное пространство на чтение заполнено копиями ПЗУ (т.е. 0000-3FFF=4000-7FFF=8000-BFFF=C000-FFFF=ПЗУ), что решает проблему старта и рестарта.
2. После вывода в порт (в имеющихся ПЗУ эту задачу решает out 0 по адресу E000, который исполняется сразу после начального jmp E000) ПЗУ будет только по адресам C000-FFFF.


Вернуться к началу
 Заголовок сообщения: Re: Прошивки ПЗУ ПК-01 "Львов"
СообщениеДобавлено: 22 окт 2012, 13:49 
Не в сети
Аватара пользователя

Зарегистрирован: 11 авг 2008, 17:05
Сообщения: 1405
Откуда: Украина
Цитата:
1. После reseta все адресное пространство на чтение заполнено копиями ПЗУ (т.е. 0000-3FFF=4000-7FFF=8000-BFFF=C000-FFFF=ПЗУ), что решает проблему старта и рестарта.
Звучит фантастично. Т.е. после ресета ОЗУ должно содержать три копии ПЗУ? :shock:

_________________
Carthago delenda est, Carthaginem delendam esse


Вернуться к началу
 Заголовок сообщения: Re: Прошивки ПЗУ ПК-01 "Львов"
СообщениеДобавлено: 22 окт 2012, 13:55 
Не в сети

Зарегистрирован: 23 авг 2012, 12:28
Сообщения: 123
Цитата:
Цитата:
1. После reseta все адресное пространство на чтение заполнено копиями ПЗУ (т.е. 0000-3FFF=4000-7FFF=8000-BFFF=C000-FFFF=ПЗУ), что решает проблему старта и рестарта.
Звучит фантастично. Т.е. после ресета ОЗУ должно содержать три копии ПЗУ? :shock:
Нет, ОЗУ не содержит 3 копии ПЗУ, это действительно было бы фантастикой, но в адресном пространстве на чтение только копии ПЗУ. В существующих версиях ПЗУ (rom01-03) эта ситуация длится буквально 2 команды - jmp и out.


Вернуться к началу
 Заголовок сообщения: Re: Прошивки ПЗУ ПК-01 "Львов"
СообщениеДобавлено: 22 окт 2012, 14:03 
Не в сети
Аватара пользователя

Зарегистрирован: 11 авг 2008, 17:05
Сообщения: 1405
Откуда: Украина
Цитата:
Нет, ОЗУ не содержит 3 копии ПЗУ, это действительно было бы фантастикой, но в адресном пространстве на чтение только копии ПЗУ. В существующих версиях ПЗУ (rom01-03) эта ситуация длится буквально 2 команды - jmp и out.
Может быть, может быть. Любопытное наблюдение.
Надо будет попробовать детально расписать процесс запуска ПК-01, чтобы сложилась цельная картина.

_________________
Carthago delenda est, Carthaginem delendam esse


Вернуться к началу
 Заголовок сообщения: Re: Прошивки ПЗУ ПК-01 "Львов"
СообщениеДобавлено: 28 окт 2012, 22:55 
Не в сети
Аватара пользователя

Зарегистрирован: 11 авг 2008, 17:05
Сообщения: 1405
Откуда: Украина
Замечание по поводу проблемы "_ vs. Ъ". Вот что написано в моем экземпляре руководства по эксплуатации (на вкладыше):
Цитата:
2. На стр. 33 в таблице 2 вместо символа "_" (подчеркивание) нижнего регистра может быть символ "Ъ" (твердый знак) верхнего регистра.
И отдельной полоской вклеено удивительно примечание:
Цитата:
ВНИМАНИЕ!
Символ _ (подчеркивание) относится к символам нижнего регистра.

_________________
Carthago delenda est, Carthaginem delendam esse


Вернуться к началу
 Заголовок сообщения: Re: ПК-I (прототип ПК-01 "Львов")
СообщениеДобавлено: 14 ноя 2012, 20:50 
Не в сети

Зарегистрирован: 07 дек 2010, 16:54
Сообщения: 227
Цитата:
Более толково про этот процесс надо расспросить sadfsdfsdaf, он такой, он все знает. :D
у меня в планах всё-таки купить чёртов логический пробник (или осциллограф) и "доисследовать" оставшиеся вопросы. пока я "вне игры" (правую руку сломал - смещение, осколки и т.п.), надеюсь к новому году получится заняться вплотную сабжем...


Вернуться к началу
 Заголовок сообщения: Re: Прошивки ПЗУ ПК-01 "Львов"
СообщениеДобавлено: 21 ноя 2012, 17:52 
Не в сети

Зарегистрирован: 23 авг 2012, 12:28
Сообщения: 123
Авторы ПЗУ Львова не устают меня удивлять. Есть там такое:
Код:
E26D                 push    psw
E26E                 nop
E26F                 nop
E270                 pop     psw
E271                 ei
E272                 ret
Этот фрагмент не только является завершающей частью процедуры, но еще и сам вызывается как отдельная процедура. Может это атавизм, и раньше между push и pop была(были) содержательная команда(команды)?
Используемые в некоторых процедурах ei и di тоже вызывают вопросы.


Вернуться к началу
 Заголовок сообщения: Re: Прошивки ПЗУ ПК-01 "Львов"
СообщениеДобавлено: 21 ноя 2012, 18:58 
Не в сети
Site Admin
Аватара пользователя

Зарегистрирован: 24 июл 2008, 12:05
Сообщения: 1029
ivagor

Насчет nop-ов, то скорее всего так и есть. Ближе к релизу затерли не нужный функционал. Правда, почему при это остались push/pop такты, они же не казенные! А вот ei/di - это страх как интересно!


Вернуться к началу
 Заголовок сообщения: Re: Прошивки ПЗУ ПК-01 "Львов"
СообщениеДобавлено: 22 ноя 2012, 09:49 
Не в сети

Зарегистрирован: 23 авг 2012, 12:28
Сообщения: 123
IMHO есть 2 основных варианта:
1. Это наследство от прототипа, от загадочной "габаритной системы". Там возможно были прерывания и рудименты от них остались. В т.ч. в бейсике rst 7 свободен, там явно оставлено место для команды перехода на обработчик.
2. Можно предложить и более надуманную версию, в которую укладываются ei/di, но которая не объясняет NOPов между push ... pop. Это как бы задел на будущее. Т.е. когда, например ч/з разъем расширения, подключат прерывания, то ПО уже в какой-то мере готово к их наличию.
Первая версия объясняет (опять же IMHO) больше странностей. Кроме всего прочего, нет "всеобщености" в применении ei/di. Можно предположить, что кое-где они остались в наследство, а кое-где их нет, т.к. часть процедур переписана/написана заново.

По фрагментам типа push nop nop pop ei ret как раз можно установить "родство" с каким-нибудь прототипом, и, заодно, узнать, что же там было :) Но, конечно, еще нужно найти, с чем сравнивать.


Вернуться к началу
 Заголовок сообщения: Re: Прошивки ПЗУ ПК-01 "Львов"
СообщениеДобавлено: 22 ноя 2012, 13:32 
Не в сети
Аватара пользователя

Зарегистрирован: 11 авг 2008, 17:05
Сообщения: 1405
Откуда: Украина
Цитата:
Этот фрагмент не только является завершающей частью процедуры, но еще и сам вызывается как отдельная процедура. [...]
Используемые в некоторых процедурах ei и di тоже вызывают вопросы.
1) А при каких обстоятельствах она вызывается как отдельная процедура?
2) И в каких еще процедурах используется парочка EI/DI?

_________________
Carthago delenda est, Carthaginem delendam esse


Вернуться к началу
Показать сообщения за:  Поле сортировки  
Начать новую тему  Ответить на тему  [ 40 сообщений ]  На страницу Пред. 1 2 3 След.

Forum Games WEB Tape Loader Twitter RSS

Часовой пояс: UTC+03:00


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
cron
Создано на основе phpBB® Forum Software © phpBB Limited
Русская поддержка phpBB