Важная информация

User Tag List

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

Тема: Корвет: Загрузка из внешнего ПЗУ

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

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1
    R.I.P.
    Регистрация
    16.09.2009
    Адрес
    г. Харьков
    Сообщений
    1,466
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    4
    Поблагодарили
    4 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию Корвет: Загрузка из внешнего ПЗУ

    Всем привет, опишу тут эту особенность Корвета.

    Корвет умеет грузиться из подключенной к левому разъему XS1 - блока ПЗУ

    для этого надо нажать F2+Reset или без нажатия кнопки после тестов.
    (т.е. если внешнее ПЗУ подключено и корректно - загрузка из него !!!!)

    без внешнего пзу он обругает, иначе попробует загрузить из него что-то и передать управление.

    в реальной жизни я слышал про 2 применения
    1-е КТДП - тестовая программа
    2-е LINTECH сеть, которая была сильно быстрее родной.

    начнем с железа.
    боковой порт, он назван XS1 ("Расширение") в документации, из интересного нам выведено
    1. все 3 порта PPI3 к580вв55 (ниже 0-7)
    A: XS1:34,35,36,37,19,18,17,16
    B: XS1:3,2,1,20,21,22,23,24
    C: XS1:7,6,5,4,8,9,10,11

    2. питание (+5,+12,-12, GND) (XS1:25,26, XS1:28, XS1:29)

    3. IRQ0 - запрос на прерывание (XS1:33)

    4. старший бит(7) порта С PPI2 (XS1:32) (кстати в тех. описании написано что XS1:32 не подключен, а на схеме он есть)

    и еще не нужный нам тут но полезные 2mhz и выход канала 0 таймера ВИ53

    исходя из загрузчика схема подключения следующая

    порт А - шина данных ПЗУ
    порты B и C - шина адреса ПЗУ
    отсюда 64к пзу

    + XS1:32 судя по комментарию (; ВКЛЮЧ. ПЗУ) в исходнике заведен на CS чипа

    этот же вывод заведен на XS1:33 - IRQ0
    и используется для определения подключен ли блок пзу.
    собственно вот и вся схемотехника.

    как ОПТС грузит его, пошаговое описание

    если нажато при старте пзу F2 (или после ОПТС тестов без F2)

    1. установили PPI2.C7=0, проверили что в регистре контроллера прерываний нет запроса IRQ0
    2. установили PPI2.C7=1, проверили что в регистре контроллера прерываний есть запрос IRQ0
    3. (оставили PPI2.C7=1)

    4. если это выполнено то блок подключен.
    иначе если F2 нажато не было то просто грузим как обычно ОПТС (эт для автостарта EXT ROM)
    или если было нажато F2 то обругались.
    ОПТС 1.1 - "Подключите внешнее ПЗУ"
    ОПТС 2.0 - "нет внешнего ПЗУ"

    5. далее читаем из блока ПЗУ по адресам
    0x0004 - DW Start addr (куда будет передано управление)
    0x0006 - DB Page to read (xx00) (старший байт адреса куда грузить)
    0x0007 - DB Page count (сколько 256байтных страниц грузить)

    6. далее считаем сумму всех байт которые будем грузить, их сумма должна быть 0xff, если это не так то пишем
    ОПТС 1.1 - "Внешнее ПЗУ неисправно"
    ОПТС 2.0 - "ошибка КС"

    7. теперь грузим что надо из пзу в RAM
    8. а теперь сравним, то что загрузили в память с тем что в ПЗУ
    если есть отличия, то выводим их на экран и вешаем машину.

    9. если все ОК то передаем управление тому что загрузили.

    теперь комментарии.

    шаг 8 по очень актуален для загрузки теста в память.
    т.е. в ситуации битого RAM он не даст запустить бред.
    по шагам получается что мы считаем что CRC совпало, значит эта часть железа нормальная, значит битый RAM.

    собственно то что ПЗУ отключаемо, делает возможность
    вешать на этот порт что угодно, а в пзу записать загрузчик этого

    можно даже сделать "супер ROM диск" на много к, например повесив регистр, в который при отключенном ПЗУ можно записать старшую часть адреса.
    ну и прочее
    хоть HDD подключить, благо портов там много разных.

    а сама идея такого использования порта достаточно красивая ...
    получается достаточно удобный и функциональный порт расширения, без выноса шины даных/адреса наружу.


    в аттаче дизасмы этой части ОПТС 1.1 и ОПТС 2.0
    и кусок исходника R002.asm

    korvet_extrom.zip


    (кстати у нас в харьковском Пед институте был класс из 2х партий корветов,
    у одних это разъем был "Папа" у других "Мама", у тех что "папа" - народ заклеивал разъем, иначе шаловливые ручки студентов совали туда ключи и палили платы).

    ---- 2014-07-07
    Огромное спасибо Serebriakov, за СХЕМУ
    в общем она подтвердила теорию
    схема на 8 кб (2x4k)

    оргинал схемы

    [свернуть]
    Миниатюры Миниатюры Нажмите на изображение для увеличения. 

Название:	EXTROM_SCHEMATIC_SMALL.jpg 
Просмотров:	1937 
Размер:	23.0 Кб 
ID:	48653  
    Последний раз редактировалось esl; 28.04.2015 в 12:21.

  2. #1
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

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

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

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

Похожие темы

  1. Загрузка УКНЦ
    от костя в разделе ДВК, УКНЦ
    Ответов: 73
    Последнее: 05.03.2011, 12:55
  2. Загрузка на рел Commodore 64
    от Zloy в разделе Commodore 16/64/128
    Ответов: 46
    Последнее: 27.07.2009, 12:59
  3. Загрузка с ленты
    от Addison в разделе Разный софт
    Ответов: 15
    Последнее: 17.06.2008, 01:18
  4. Корвет.
    от Mick в разделе Барахолка (архив)
    Ответов: 8
    Последнее: 19.09.2007, 19:58

Ваши права

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