User Tag List

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

Тема: Корвет: ExtROM Open Source extender

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

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

    Регистрация
    17.04.2011
    Адрес
    Санкт-Петербург
    Сообщений
    328
    Спасибо Благодарностей отдано 
    32
    Спасибо Благодарностей получено 
    209
    Поблагодарили
    50 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Все, я закончил доработку API. Изменения коснулись 3 файлов - прошивки контроллера, загрузчика 2 фазы LOADER.ASM, и образа системы EXRSYSTEM.ASM. Теперь командный пакет защищен контрольной суммой, и если сумма неправильная - пакет просто игнорируется без каких-либо дополнительных действий. Также введена обратная связь - подтверждение приема контроллером команды.

    В окончательном виде API выглядит так.

    Формат командного пакета:
    Код:
       
    CMD:    DS    1   ; код команды
    DRV:    DS    1   ; номер устройства, 0-A,  1-B
    TRK:    DS    1   ; номер дорожки
    SEC:    DS    1   ; номер сектора (размер сектора всегда 128 байт
    CSUM:   DS    1   ;  Контрольная сумма предыдущих 4 байт,
    Контрольная сумма равна беззнаковой 8-битной сумме всех предыдущих 4 байт минус 1:

    CSUM=CMD+DRV+TRK+SEC-1

    Если в команде не используются поля DRV, TRK, SEC, то их значение игнорируется.

    Список команд:

    Код:
    Команды обмена секторами;
    
    01 - чтение сектора
    02 - запись сектора
    
    Команды измерителя скорости. 
    
    F0 - прием 8000h байта мусора
    F1 - передача 8000h байтов мусора
    
     Комадны управления работой контроллера
    
    00 - пустая операция, всегда возвращает ответ ОК (1)
    A0 - включить/выключить подстановку системных дорожек. DRV всегда 0, TRK=0 - выключить, 1 - включить
    После отправки командного пакета контроллер всегда отдает 1 байт подтверждения. Значение этого байта:

    0 (error) - ошибка, команда отвергнута
    1 (ok) - команда принята.

    Если ответ 1, то далее идет обмен данными, как и раньше. Если ответ 0, то обмен данными не происходит, а контроллер ожидает следующего комадного пакета.
    Диаграмма взаимодействия корвета и контроллера

    Код:
    Корвет                                  Контроллер
    --------------------------------------------------------
    командный пакет           
                                            0 или 1
    
     --    передача или прием блока данных, если требуется  --
    Я добавил еще одну команду - 00 (nop), Она всегда возвращает 1 (OK) и может быть использована для проверки функционирования контроллера (не повис ли он).

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

    ESL, тебе придется доработать эмулятор. Также подправь свои тесты скорости - просто вставь туда новую процедуру SENDCMD из биоса или загрузчика.

    Ну, вот и все. Осталось приделать интерфейс для управления монтированием образов (я этим займусь в выходные), и проект будет полностью готов. Останется только потестировать, пооптимизировать, поискать баги, ну и ESL сделает универсальный загрузчик. Я, естественно, помогу чем смогу.
    Блин, как-то уж больно быстро все заканчивается...
    Вложения Вложения

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

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

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

Похожие темы

  1. Open source firmware for the Spectrum
    от zx-kit в разделе Разный софт
    Ответов: 60
    Последнее: 29.05.2014, 13:53
  2. open-source эмуляторы под .NET
    от Sawyer в разделе Эмуляторы
    Ответов: 1
    Последнее: 04.01.2011, 17:47
  3. GP2X F100 Open Source Gaming Console
    от CodeMaster в разделе Зарубежные компьютеры
    Ответов: 3
    Последнее: 12.06.2010, 23:51
  4. Open Source эмуль...
    от rg_software в разделе Эмуляторы
    Ответов: 50
    Последнее: 06.12.2006, 11:57

Ваши права

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