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

User Tag List

Страница 2 из 4 ПерваяПервая 1234 ПоследняяПоследняя
Показано с 11 по 20 из 32

Тема: Партнер 01.01: модуль SD карты

  1. #11

    Регистрация
    24.01.2008
    Адрес
    Уфа
    Сообщений
    3,872
    Спасибо Благодарностей отдано 
    95
    Спасибо Благодарностей получено 
    249
    Поблагодарили
    181 сообщений
    Mentioned
    9 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Pyk Посмотреть сообщение
    Либо смотреть напрямую в ПЗУ D14.
    А где можно посмотреть?

  2. #12

    Регистрация
    05.04.2013
    Адрес
    Починки, Нижегородская обл.
    Сообщений
    1,307
    Спасибо Благодарностей отдано 
    346
    Спасибо Благодарностей получено 
    584
    Поблагодарили
    225 сообщений
    Mentioned
    21 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Хотя бы у меня в эмуляторе - d14.bin
    Каждый байт соответствует блоку в 2 Кб. Всего 16 конфигураций по 32 блока (да, есть недокументированные конфигурации!)
    Биты описаны в конфиге:

    0 romWindow
    2 ramWindow
    3 rom2
    4 rom1
    5 ram1
    6 ram2
    7 slot

    Тип блока определяется по 0 в соответствующем разряде.
    Последний раз редактировалось Pyk; 21.11.2018 в 15:54. Причина: typo

    Этот пользователь поблагодарил Pyk за это полезное сообщение:

    cy6(13.09.2023)

  3. #13

    Регистрация
    24.01.2008
    Адрес
    Уфа
    Сообщений
    3,872
    Спасибо Благодарностей отдано 
    95
    Спасибо Благодарностей получено 
    249
    Поблагодарили
    181 сообщений
    Mentioned
    9 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Раскрасил, вот:

    Скрытый текст

    [свернуть]


    - - - Добавлено - - -

    И включая недокументированные, считанные из d14:

    Скрытый текст

    [свернуть]

  4. #14

    Регистрация
    05.10.2018
    Адрес
    г. Москва
    Сообщений
    172
    Спасибо Благодарностей отдано 
    11
    Спасибо Благодарностей получено 
    33
    Поблагодарили
    10 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Получается из 15-го маппера нельзя выйти, пространство портов недоступно, и ВТ57 недоступен, и вообще вся периферия недоступна. И если 11-13 это просто неиспользуемое место, то 15 выглядит по меньшей мере странно. Возможно результаты экспериментов разработчиков. Или например для отладки, настроил всю периферию, прыгнул в 15-й, и настройки уже не собьются как ни крути. Правда сидеть там без клавиатуры.

    А WIN1 и WIN2 это области для слотов? Теперь понятно почему даже А15 заведён, в 10-м маппере он может быть равен 0.

    А ещё можно делать аппаратную двойную буферизацию, меняя мапперы 2 и 7.
    Последний раз редактировалось hitomi2500; 21.11.2018 в 22:37.

  5. #15

    Регистрация
    20.11.2017
    Адрес
    г. Ростов-на-Дону
    Сообщений
    352
    Спасибо Благодарностей отдано 
    30
    Спасибо Благодарностей получено 
    88
    Поблагодарили
    50 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от b2m Посмотреть сообщение
    Нет тот вектор используешь, там должна быть ссылка на обработчик функций (номер которой в регистре А передаётся). По сбросу все модули инициализируются (номер этой функции 0). А вот запуск основной программы модуля по директиве Е<номер модуля> происходит по адресу, который указывается двумя байтами ранее.
    Да, увидел, что на смещении 6 и 7 должен быть вектор некоего стартового кода, но что там должно делаться, и что должно возвращаться? и, похоже, там до смещения 16 это все некие вектора... а нет более подробного описания, что там должно быть?
    ===========
    15й маппер меня, тоже, смутил, выстрел в ногу? туда попали и возврата нет?

  6. #16

    Регистрация
    05.10.2018
    Адрес
    г. Москва
    Сообщений
    172
    Спасибо Благодарностей отдано 
    11
    Спасибо Благодарностей получено 
    33
    Поблагодарили
    10 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Кстати не нашёл в руководстве информации про блок устройств. Он делится ещё на 8 подблоков по 256 байт каждый, с такими адресами :
    D800-D8FF ВГ75
    D900-D9FF ВВ55 (клавиатура)
    DA00-DAFF регистр маппера (хотя в моей версии схемы он через перемычку которая не установлена почему-то)
    DB00-DBFF ВТ57
    DС00-DСFF порты внешнего устройства
    DD00-DDFF порты внешнего устройства
    DE00-DEFF выбор активного слота
    DF00-DFFF выбор активного источника прерываний
    Последний раз редактировалось hitomi2500; 22.11.2018 в 12:25.

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

  8. #17

    Регистрация
    05.04.2013
    Адрес
    Починки, Нижегородская обл.
    Сообщений
    1,307
    Спасибо Благодарностей отдано 
    346
    Спасибо Благодарностей получено 
    584
    Поблагодарили
    225 сообщений
    Mentioned
    21 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    hitomi2500,
    DС00-DСFF, DD00-DDFF - порты внешнего устройства
    DE00-DFFF схема выбора модуля. 0 в битах 0-3 указывает но номер активного модуля, в зависимости от этого на адреса DC00-DDFF, а также на блоки WIN1 и WIN2 отображаются устройства и память соответствующего модуля

    - - - Добавлено - - -

    PVV, описания нет, память меня может подводить, но кажется обязательны к реализации только 2 функции - 0 (инициализация) и 1 (директива E). Остальные - пользовательские, назначение определяется конкретным модулем для вызова через единый интерфейс Монитора (можно повесить на них процедуры чтения/записи/открытия файла и т.п. при желании). То есть возврата из функции 1 может и не быть. Хотя просто Ret скорее всего вернет управление в Монитор.

    Если что-то напутал, посмотрю дополнительно.

  9. #18

    Регистрация
    05.10.2018
    Адрес
    г. Москва
    Сообщений
    172
    Спасибо Благодарностей отдано 
    11
    Спасибо Благодарностей получено 
    33
    Поблагодарили
    10 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Pyk, а последний кусок, который в DF00-DFFF, что выбирает? В схеме модуля КМД он замешивается с управляющими сигналами DMA, возможно это выбор модуля, который будет отвечать на DMA-запросы?

  10. #19

    Регистрация
    20.11.2017
    Адрес
    г. Ростов-на-Дону
    Сообщений
    352
    Спасибо Благодарностей отдано 
    30
    Спасибо Благодарностей получено 
    88
    Поблагодарили
    50 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Вообщем, методом подбора получилось сделать правильный заголовок.
    Если в начале файле dos_rk.asm из архива, дефайн сделать такой:
    Код:
    #ifdef RK86
    #ifdef SD_ROM
     .db 70h
     .db 72h
     .db 45h
     .db 0h
     .db 0Fh
     .db 0E0h
     .db 0Dh
     .db 0E0h
     .db 0FEh
     .db 0FFh
     .db 0FEh
     .db 0FFh
     .db 0FFh
     xchg
     ret
    #else
      jmp 0f800H
      nop
    #endif
    #endif
    то инициализация проходит, и SDOS вызывается из монитора по Е1, а обратно в монитор можно выйти по 'X'.

  11. #20

    Регистрация
    24.01.2008
    Адрес
    Уфа
    Сообщений
    3,872
    Спасибо Благодарностей отдано 
    95
    Спасибо Благодарностей получено 
    249
    Поблагодарили
    181 сообщений
    Mentioned
    9 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от hitomi2500 Посмотреть сообщение
    DF00-DFFF ?? (что-то связанное с DMA?)
    На схеме это называется SEL INT L. По аналогии с выбором слота SEL SLOT L, можно предположить, что это должно было отвечать за выбор источника прерываний (т.е. разрешение прерываний от соответствующего биту модуля).

    Цитата Сообщение от PVV Посмотреть сообщение
    там до смещения 16 это все некие вектора... а нет более подробного описания, что там должно быть?
    Описания нет, судя по монитору там такой расклад:

    0-1 сигнатура pr
    2 идентификатор модуля (43h - МЦПГ, 44h - КНГМД)
    3 неизвестно, обычно ноль
    4-5 адрес запуска по директиве Е
    6-7 адрес обработчика функций модуля (номер функции в регистре А: ноль - инициализация модуля, вызывается после сброса)
    8-9 ещё какой-то вектор
    10-11 ещё какой-то вектор
    12 - байт FF, если не используется (для чего используется, пока не выяснил)

    Если вектор не используется, стоит адрес 0FFFEh, по этому адресу в мониторе стоит RET.

    Функции модуля можно вызывать из монитора директивой Va,b,c:
    a - первый параметр, передаётся в DE, но обычно первой же командой обработчика переносится в HL
    b - номер функции (старший байт) и идентификатор модуля (младший байт). Модуль может стоять в любом слоте, выбор происходит по уникальному идентификатору модуля.
    с - второй параметр, передаётся в BC

    Кое-что о функциях есть в описании МЦПГ.

    Этот пользователь поблагодарил b2m за это полезное сообщение:

    cy6(24.06.2025)

Страница 2 из 4 ПерваяПервая 1234 ПоследняяПоследняя

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

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

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

Похожие темы

  1. Партнер 01.01: Обсуждение
    от XobbiMan в разделе Радио-86РК
    Ответов: 206
    Последнее: 19.09.2023, 23:53
  2. Партнер 01.01: Дополнительные модули
    от DMG в разделе Радио-86РК
    Ответов: 103
    Последнее: 15.07.2023, 04:05
  3. Партнёр 01.01: Ремонт
    от CodeMaster в разделе Радио-86РК
    Ответов: 13
    Последнее: 18.10.2021, 10:02
  4. Эмулятор Партнёр-01.01
    от TWN в разделе Эмуляторы отечественных компьютеров
    Ответов: 15
    Последнее: 09.03.2015, 22:06
  5. Куплю Партнер 01.01
    от LeBohdan в разделе Барахолка (архив)
    Ответов: 11
    Последнее: 12.07.2010, 12:57

Ваши права

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