User Tag List

Показано с 1 по 10 из 1199

Тема: Орион-2010. Hard & Soft

Древовидный режим

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #11

    Регистрация
    14.08.2006
    Адрес
    Владимир
    Сообщений
    4,581
    Спасибо Благодарностей отдано 
    64
    Спасибо Благодарностей получено 
    112
    Поблагодарили
    97 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от pvlad Посмотреть сообщение
    Мне кажется, приделывание временных решений к новому изделию - это и есть "колхозить". Не в обиду!

    Как мне представляется решение этой проблемы?
    Во первых, в ПЛИС незачем держать два Монитора - достаточно одного М3. Он грузится в F800 и имеет контрольную сумму. Если при последующих Ресетах контрольная сумма подтверждается, то Монитор повторно не загружается из ПЛИС, а сохраняется неизменным содержимое в F800-FFFF. Это позволит вместо М3 загрузить свой Монитор со своей контрольной суммой. При этом он не будет перезаписываться М3 из ПЛИС при нажатии кнопки Reset. Чтобы восстановить М3, необходимо будет временно выключить питание-получить сбой по контрольной сумме.
    Так решим проблему приверженности к "своей" версии Монитора. Да и записанный в ПЛИС Монитор не должен быть панацеей на все случаи, а лишь стартовой ступенькой.

    На месте освободившихся 2К в ПЛИСС, необходимо сделать универсальный загрузчик. Такую мысль уже высказывал svofski в 212 топике.
    Алгоритм этого загрузчика следующий: после RESET (с Мониторами уже разобрались!) загрузчик проверяет наличие SD-карты. Если она есть - грузится ВООТ (не важно чей он - СРМ или еще что-то) и передается ему управление. Можно в буте иметь адрес его загрузки, и не обязательно грохать его в 0000Н. Мы же зачем-то делали "дырки" в памяти между портами?
    Если SD-карты нет, то проверяется наличия РОМ-диска. Критерий следующий: если первый байт "С3" - значит в ПЗУ ОРДОС (грузится по известным правилам), если "FF" - ПЗУ пустое - переход на выполнение далее. Если же любой другой байт, то он расценивается как наличие в ПЗУ новых параметров загрузки, где первые два байта - адрес загрузки, следующие два байта - количество загружаемых байт, и еще два байта - адрес передачи управления. Сама информация в ПЗУ находится с адреса 10Н.
    Если в первом байте ПЗУ "FF" (нет ПЗУ-флешки, или она не запрограммирована), то управление передается загрузчику по RS-232. Он в цикле опрашивает готовность RS-232 и статус клавиатуры. Висит до бесконечности, пока не получит байт по RS-232, или не будет нажата клавиша клавиатуры. Загрузка начинается с адреса 0000Н и заканчивается по команде "конец передачи" (?), при этом контролируется переполнение ОЗУ до адреса конца экрана. По окончанию загрузки, управление автоматически передается по адресу 0000Н.
    Если же была нажата клавиша клавиатуры, как во время ожидания приема так и в процессе приема (а также при отпускании RESET!), то загрузчик переходит в командный режим, где можно указать любой свой адрес загрузки, а затем передать управление на адрес по своему желанию. Здесь можно иметь еще три дополнительные команды: просмотр дампа памяти, модификация ячейки памяти и программатор флеша.
    Вот при таком алгоритме загрузки можно "угодить" всем. ERROR404 будет вставлять свою SD-шку и грузить СРМ, а не вставив ее, ортодоксальные ордошники получат свою ОРДОС или еще что-то по своему усмотрению. А если и флешка пустая (или не нужна!!!) - есть прямая загрузка по RS-232. Хочешь - выполняй загруженную программу, а хочешь - запиши во флешку - программатор под рукой.
    Ну, вот и вся постановка задачи - осталось только написать (2-3 вечера!). Это тянет где-то на полкило, так что в ПЛИС еще останется место для будущих задумок. И что главное, Сергей - нет никакой графики, как ты и хотел!
    Не то чтобы я против графики. Я против того чтобы прикручивать "графику ради графики" (вводить всего 2 параметра в графике - это этот самый случай), да еще с рисованием напрямую по экрану, как это было в старых орионовских программах. Сделано это было, как я понимаю, главным образом оттого, что во-первых, в КОИ-7 драйвере экрана Монитора-2 по понятным причинам не было псевдографики, а во-вторых даже с пользовательским знакогенератором Монитор-2 не умел рисовать знакоместа без пробельных строчек размером в 2 точки (матрица символа была 6х8). Вместо исправления Монитора (в питерском Мониторе-3 исправили матрицу символа до 6х10), в каждой программе принялись рисовать прямо по экрану только для того, чтобы нарисовать рамочки окна (для которых надо то, казалось бы, полдюжины псевдографических символов да простейшую подпрограмму). Так это и прижилось.

    Про универсальный загрузчик надо подумать, но не могу не заметить, что с таким загрузчиком для собственно Монитора в 2к тупо не остается места (нечем даже текст будет вывести [не забываем, что знакогенератор тоже надо хранить] и клавиатуру опросить). Полкило - это только один загрузчик с SD. В-общем, надо очень хорошо подумать.

    Также, тогда сначала нужно произвести доработку по доступу к ОЗУ под ПЗУ. В текущем варианте, ЕМНИП, при отключении ПЗУ (этот режим был рассчитан в-основном на адаптацию игр ZX, для которых эта область нужна как ОЗУ) нет доступа к портам клавиатуры, РомДиска, SD, RS232 (ewgeny7, напомни пожалуйста, порты по OUT, как я понимаю, пока еще не реализованы?). Плюс область 0F000h...0FFFFh перестает работать как некоммутируемая - не заработает ни одна орионовская программа, которая для доступа к страницам ОЗУ, отличных от текущей страницы, идет мимо подпрограмм Монитора.

    А таких программ было, т.к. соответствующая подпрограмма Монитора-2 всегда возвращала управление в страницу 0 вне зависимости от того из каких страниц была вызвана, и как следствие, была удобна только для программ работавших в 0-странице. Навороченые программы (да хоть та же CP/M, работающая либо в 1, либо во 2 странице), не заработают.

    В-общем, усилия проектировщика сначала нужно приложить в другом месте. Тем более, что они как раз и могут быть приложены за вечер-два, в отличии от программистики.
    Последний раз редактировалось Error404; 03.06.2010 в 21:49.
    Лучше сделать и жалеть, чем не сделать и жалеть.

    Некоторые из моих поделок тут: https://github.com/serge-404

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Ответов: 22
    Последнее: 06.10.2008, 14:17
  2. MAGIC-SOFT
    от White_Hunter в разделе Люди
    Ответов: 1
    Последнее: 22.08.2008, 08:56
  3. MAGIC-SOFT
    от White_Hunter в разделе Люди
    Ответов: 2
    Последнее: 21.08.2008, 13:31
  4. soft dt
    от roxx в разделе Софт
    Ответов: 4
    Последнее: 30.01.2008, 18:41

Ваши права

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