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

User Tag List

Страница 15 из 15 ПерваяПервая ... 1112131415
Показано с 141 по 146 из 146

Тема: AZ для БК-0011М

  1. #141
    Activist
    Регистрация
    19.04.2013
    Адрес
    г. Чебоксары
    Сообщений
    398
    Спасибо Благодарностей отдано 
    7
    Спасибо Благодарностей получено 
    71
    Поблагодарили
    59 сообщений
    Mentioned
    7 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Уже как бы всё выяснили? Можно не отвечать?

    Цитата Сообщение от SuperMax Посмотреть сообщение
    16ая страница (всего получается 16ть страниц по 32кБ)
    с кодом 0020 уже подключали с 0120
    как его правильно расшифровать ?
    те в чем тут суть проверки и что именно не так ?
    В том же посте приведена таблица "Режимы работы и распределение памяти". Видите в ней квадратик, обведённый двойной рамкой?
    Это участок, где можно полностью корректно обратиться ко всем 32 Кбайтам памяти страницы СМК, для этого используется два разных режима.
    Таким образом, в одном режиме, тест может оперировать только 16 кбатным участком памяти, половиной страницы.
    Поэтому, в тестах было принято решение называть страницей именно эту половинку страницы СМК. Для простоты понимания. Поэтому для теста существует 32 страницы по 16 Кб, а не 16 шт. по 32 Кб.
    Это говорит о том, что маппер памяти работает как-то не так, один и тот же участок физической памяти подключается в двух или более разных сегментах.

    Цитата Сообщение от SuperMax Посмотреть сообщение
    но я хочу понять как правильно - те как тогда 7й сегмент появляется в 140ом режиме
    7й сегмент делится на две части: 170000-176777 и 177000-177777 и для этих частей разные правила. Если в первой части ОЗУ всегда, оно нужно для работы с HDD, то во второй части ОЗУ только тогда, когда нужны спецрежимы работы СМК. Там ведь регистры и порты, ОЗУ мешается.
    Цитата Сообщение от SuperMax Посмотреть сообщение
    согласно картинке, подключены сегменты 0 1 7 6
    а в сообщении об ошибке сегменты 0 1 2 3
    как расшифровать сообщение ?
    В сообщении - 0 1 2 3 - это порядковые номера участков памяти, куда подключаются соответствующие по таблице сегменты.
    0 = участок памяти 100000-107777, 1 =участок памяти 110000-117777 и т.д.

    Вообще, весь этот код, который вызывает непонимание - это нативный код от фирмы АльтПро, может от Новака или ещё кого. Он используется без изменения ещё с тестов A16. Я только постарался как можно более подробно вывести интерпретацию результата его работы. Получилось, как получилось.

    Тут вообще очень сложно с терминологией. Сегмент памяти - это и адресное пространство на БК, куда подключается ОЗУ и это же сам участок ОЗУ СМК, которое диспетчером памяти мапится в заданное адресное пространство. И страница тоже означает разные вещи в зависимости от контекста.

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

    SuperMax (01.07.2021)

  3. #142
    Guru
    Регистрация
    02.03.2015
    Адрес
    г. Караганда, Казахстан
    Сообщений
    2,206
    Спасибо Благодарностей отдано 
    31
    Спасибо Благодарностей получено 
    188
    Поблагодарили
    146 сообщений
    Mentioned
    17 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Sandro Посмотреть сообщение
    То есть, ему приходится забарывать не сильный ТТЛовский ноль, а дохлую единицу. Где ТТЛ выход -- это фактически резистор на первые сотни ом.
    Но делать так действительно не очень хорошо.
    Я бы сказал "Очень не..."

    Цитата Сообщение от SuperMax Посмотреть сообщение
    да, верно там 1-ца которую давим

    принципиально у меня есть даже нога на ПЛИС которая свободна и почти рядом для этой цели.
    Не забудь сразу включить ее в режим открытого коллектора (стока).
    Кто мешает тебе выдумать порох непромокаемый? (К.Прутков, мысль № 133)

  4. #143
    Member
    Регистрация
    18.01.2021
    Адрес
    п. Новый Ургал
    Сообщений
    40
    Спасибо Благодарностей отдано 
    15
    Спасибо Благодарностей получено 
    9
    Поблагодарили
    8 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

  5. Эти 2 пользователя(ей) поблагодарили grf за это полезное сообщение:

    SuperMax (15.07.2021), Ратмир (13.07.2021)

  6. #144
    Moderator
    Регистрация
    25.08.2012
    Адрес
    г. Красноярск
    Сообщений
    876
    Спасибо Благодарностей отдано 
    190
    Спасибо Благодарностей получено 
    233
    Поблагодарили
    160 сообщений
    Mentioned
    19 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от gid Посмотреть сообщение
    Уже как бы всё выяснили? Можно не отвечать?
    как раз нет, помощь очень ценна и нужна!
    я вернулся из отпуска и снова могу заняться AZ БК

    В том же посте приведена таблица "Режимы работы и распределение памяти". Видите в ней квадратик, обведённый двойной рамкой?
    Это участок, где можно полностью корректно обратиться ко всем 32 Кбайтам памяти страницы СМК, для этого используется два разных режима.
    Таким образом, в одном режиме, тест может оперировать только 16 кбатным участком памяти, половиной страницы.
    Поэтому, в тестах было принято решение называть страницей именно эту половинку страницы СМК. Для простоты понимания. Поэтому для теста существует 32 страницы по 16 Кб, а не 16 шт. по 32 Кб.
    Это говорит о том, что маппер памяти работает как-то не так, один и тот же участок физической памяти подключается в двух или более разных сегментах.
    круто! это я про авторов, они были таки юмористы ;-) то страница 32кБ то 16кБ

    смотрю на биты управляющие номером страницы32кб

    Код:
    // КОДЫ ПОДКЛЮЧЕНИЯ СТРАНИЦ ОЗУ (SMK512):    
    //      oct                 bin
    //               x0 000 00x x0x       
    //  0 - 0        00 000 000 000
    //  1 - 2000     10 000 000 000 
    //  2 - 4	 00 000 000 100	
    //  3 - 2004	 10 000 000 100 	
    //  4 - 10	 00 000 001 000	
    //  5 - 2010	 10 000 001 000	
    //  6 - 14       00 000 001 100
    //  7 - 2014	 10 000 001 100 
    //  8 - 1	 00 000 000 001 	
    //  9 - 2001     10 000 000 001 
    // 10 - 5        00 000 000 101
    // 11 - 2005     10 000 000 101
    // 12 - 11       00 000 001 001
    // 13 - 2011     10 000 001 001
    // 14 - 15       00 000 001 101
    // 15 - 2015     10 000 001 101
    // 
    // переключение режимов             отключение                                   
    //              3        2 10       U3210     
    //              x0 000 00x xx0 000   		МОНБК10  МОНБК11М ОКНОБК11M   
    // Start 160    	 1 110 000   0111 	0         0         1
    // Std10 60	  	   110 000   0011	0         1         1          
    // ОЗУ10 120    	 1 010 000   0101	1         0         1
    // All	 20                 10 000   0001	1         1         1
    // Std11 14     	 1 100 000   0110	0         0         0
    // ОЗУ11 40	  	   100 000   0010	0         1         0 
    // HLT10 100		 1 000 000   0100	1         0         0
    // HLT11 20000  10 000 000 000 000   1000	1         1         0 
    
    // Биты
    //  0 - номер страницы 0
    //  1
    //  2 - номер страницы 1
    //  3 - номер страницы 2
    //  4 - управление U0
    //  5 - управление U1
    //  6 - управление U2
    //  7
    //  8
    //  9
    // 10 - номер страницы 3
    // 11
    // 12
    // 13 - HLT11      U3
    // 14
    // 15
    
    // формирование отключения (1)
    // МОНБК10    =  ( ~U2 && ~U1 ) || ( U2 && ~U1);
    // МОНБК11М   =  ( ~U2 && ~U1 ) || (~U2 &&  U1)
    // ОКНОБК11M  = U0
    получается номер страницы можно сформировать так:
    Код:
    SMK_PAGE={SMK_data[10],SMK_data[3],SMK_data[2],SMK_data[0]};
    всё верно ?
    физический адрес для слота [назовем так дабы не путаться] формируется так
    {6'b000001,SMK_PAGE,3'd6};
    те страница + хвост обозначающий ее сегмент
    соответственно пересечение между страницами никак не получить

    и так как я уже все проверил - код правильный, значит есть какая-то хитрость про которую я не в курсе
    или я неверно формирую SMK_PAGE?

    и остается не понятна ошибка - уже подключали с кодом 0020 уже подключали с 0120

    получается это страница 0 + режим 20
    и страница 0 + режим 120 во втором
    но это не понятно тк в ошибке 16ая страница (!)

    далее смотрим
    уже подключали с кодом 2120 уже подключали с 0120
    тут страница 2000 + режим 120 и страница 0 + режим 120




    7й сегмент делится на две части: 170000-176777 и 177000-177777 и для этих частей разные правила. Если в первой части ОЗУ всегда
    ok

    то во второй части ОЗУ только тогда, когда нужны спецрежимы работы СМК. Там ведь регистры и порты, ОЗУ мешается.
    а вот тут прошу подробнее
    те какой режим включает это ОЗУ и отключает регистры ?
    как я понимаю это нужно только для эмуляции бейсика БК10 который совсем не нужен на 11М ? или есть какое-то иное применение?




    В сообщении - 0 1 2 3 - это порядковые номера участков памяти, куда подключаются соответствующие по таблице сегменты.
    0 = участок памяти 100000-107777, 1 =участок памяти 110000-117777 и т.д.
    ok

    Вообще, весь этот код, который вызывает непонимание - это нативный код от фирмы АльтПро, может от Новака или ещё кого. Он используется без изменения ещё с тестов A16. Я только постарался как можно более подробно вывести интерпретацию результата его работы. Получилось, как получилось.
    Тут вообще очень сложно с терминологией. Сегмент памяти - это и адресное пространство на БК, куда подключается ОЗУ и это же сам участок ОЗУ СМК, которое диспетчером памяти мапится в заданное адресное пространство. И страница тоже означает разные вещи в зависимости от контекста.
    да, это путает


    пытаюсь понять ошибки дальше
    к примеру режим 140:



    тут ошибка:7-6(10)
    те адрес
    170000-176776
    тут обнаружилось ОЗУ - хотя должно быть пусто
    и тут вопрос - почему пусто-то ?
    хотя я согласно картинке выше подключил 7й сегмент
    где тут собака зарылась ?
    Последний раз редактировалось SuperMax; 17.07.2021 в 16:47.
    Все о БК ДВК УКНЦ VAX Alpha

    Архив ПО для ретрокомпьютеров

    предоставляю бесплатный хостинг на PDP-11.RU для проектов о ретрокомпьютерах

  7. #145
    Activist
    Регистрация
    19.04.2013
    Адрес
    г. Чебоксары
    Сообщений
    398
    Спасибо Благодарностей отдано 
    7
    Спасибо Благодарностей получено 
    71
    Поблагодарили
    59 сообщений
    Mentioned
    7 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от SuperMax Посмотреть сообщение
    круто! это я про авторов, они были таки юмористы ;-) то страница 32кБ то 16кБ
    Тут похоже я в заблуждение ввёл. Я начал разбираться и вникать, что там такое я понаписал в тесте. И вот что выяснилось. Там на скриншоте в посте #136 число 16 - это не номер страницы. Это количество килобайт доступной памяти. Это инкрементный счётчик, который увеличивается на 16 для каждой проверенной половинки страницы.
    Это реальный косяк программы - когда вывод результата непонятен даже автору, по прошествии достаточного количества времени.
    Но тем не менее, проверка ОЗУ проводится 16кбайтными кусками, половинками страницы в двух режимах, как в таблице. И как-то эту половинку надо именовать.
    Цитата Сообщение от SuperMax Посмотреть сообщение
    всё верно ?
    Да, с номером страницы всё верно
    Цитата Сообщение от SuperMax Посмотреть сообщение
    физический адрес для слота [назовем так дабы не путаться] формируется так
    {6'b000001,SMK_PAGE,3'd6};
    Смысл этого выражения от меня ускользает, но физический адрес страницы в линейном адресном пространстве вычисляется так:
    BASE + (SMK_PAGE << 15), где BASE - начальное смещение участка в памяти, выделенного под ОЗУ СМК, а "<< 15" это умножение на 0x8000 - размер страницы 32кб.
    Цитата Сообщение от SuperMax Посмотреть сообщение
    и остается не понятна ошибка - уже подключали с кодом 0020 уже подключали с 0120
    Полная расшифровка этой строки такая:
    "Страницу с кодом подключения страницы 0020, ранее уже подключали кодом подключения страницы 0120".
    0120 - это самый самый первый код подключения первой половинки страницы 0. У вас получается такая штука, что абсолютно все страницы мапятся в один и тот же участок памяти. Причём что странно, даже вторая половинка страницы 0, так же мапится в первую половинку стр. 0.

    И ещё, имейте в виду, что код режима HLT11 на самом деле 0, а не 20000, в регистре 177130 бита 13 по записи нету, поэтому он ни на что и не влияет. Просто в ПО АльтПро было принято соглашение, что код режима по каким-то уже забытым причинам не должен быть равен 0. Поэтому взяли вот такое число.
    Цитата Сообщение от SuperMax Посмотреть сообщение
    Если в первой части ОЗУ всегда
    ok
    Не ок. Уточнение. Не всегда, а всегда, за исключением режима SYS. Там вместо ОЗУ продублировано ПЗУ, которое по адресам 160000-167777. см табл. режимов.
    Цитата Сообщение от SuperMax Посмотреть сообщение
    те какой режим включает это ОЗУ и отключает регистры ?
    См. таблицу режимов, строка "170(177000hdd)-0"
    Цитата Сообщение от SuperMax Посмотреть сообщение
    как я понимаю это нужно только для эмуляции бейсика БК10 который совсем не нужен на 11М ? или есть какое-то иное применение?
    Основное применение - HALT режим. ОЗУ по записи по адресам 177674,177676
    Бейсик - вторичен.

    Цитата Сообщение от SuperMax Посмотреть сообщение
    где тут собака зарылась ?
    Тут есть такой нюанс. Т.к. 7й сегмент делится на 2 части, то и проверяется он дважды. Но! Тест на экран выводит только ошибочные ситуации, если ошибки нет, на экран ничего не выводится.
    Поэтому ошибка:7-6(10) относится не к диапазону 170000-176776, а к диапазону 177000-177777. Оба эти диапазона имеют код 7, поэтому происходит путаница.

    Я исправлю вывод информации в тесте, чтобы было более понятно, когда придумаю как.

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

    Цитата Сообщение от gid Посмотреть сообщение
    BASE + (SMK_PAGE << 15), где BASE - начальное смещение участка в памяти, выделенного под ОЗУ СМК, а "<< 15" это умножение на 0x8000 - размер страницы 32кб.
    А ещё, внутри этой страницы, в зависимости от режима работы СМК, нужно по-разному тасовать сегменты по 010000 байт.

  8. #146
    Moderator
    Регистрация
    25.08.2012
    Адрес
    г. Красноярск
    Сообщений
    876
    Спасибо Благодарностей отдано 
    190
    Спасибо Благодарностей получено 
    233
    Поблагодарили
    160 сообщений
    Mentioned
    19 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от gid Посмотреть сообщение
    Тут похоже я в заблуждение ввёл. Я начал разбираться и вникать, что там такое я понаписал в тесте. И вот что выяснилось. Там на скриншоте в посте #136 число 16 - это не номер страницы. Это количество килобайт доступной памяти. Это инкрементный счётчик, который увеличивается на 16 для каждой проверенной половинки страницы.
    Это реальный косяк программы - когда вывод результата непонятен даже автору, по прошествии достаточного количества времени.
    Но тем не менее, проверка ОЗУ проводится 16кбайтными кусками, половинками страницы в двух режимах, как в таблице. И как-то эту половинку надо именовать.
    понятно, те счетчик встал на первых 16кБ расширенной памяти которую он пытался проверить
    так получается логично повторение этого сообщения

    Да, с номером страницы всё верно
    Смысл этого выражения от меня ускользает, но физический адрес страницы в линейном адресном пространстве вычисляется так:
    BASE + (SMK_PAGE << 15), где BASE - начальное смещение участка в памяти, выделенного под ОЗУ СМК, а "<< 15" это умножение на 0x8000 - размер страницы 32кб.
    все именно так
    я поясню: - так как полный адрес 24бита то имеет смысл уменьшить его длину за счет разбивки на сегменты и
    я разбил всю память 32МБ на сегменты по 4кБ те 10000(8), что явно соответствует размеру разбивки у SMK и мне кажется удобным для программирования
    соответственно и сделал набор регистров (16шт) в которые можно записать адрес сегмента
    младшие 8 регистров сделаны на вырост (или доработку с отключением нижней памяти с 0 до 77777)
    старшие же соответствуют SMK-маппированию
    технически я транслирую запрос к мапперу SMK в запрос к мапперу AZ обеспечивая совместимость
    соответственно у меня формируется номер этого 4кБ сегмента - базовое смещение для сегментов SMK + SMK страница + номер сегмента в странице: {6'b000001,SMK_PAGE,3'd6};


    Полная расшифровка этой строки такая:
    "Страницу с кодом подключения страницы 0020, ранее уже подключали кодом подключения страницы 0120".
    0120 - это самый самый первый код подключения первой половинки страницы 0. У вас получается такая штука, что абсолютно все страницы мапятся в один и тот же участок памяти. Причём что странно, даже вторая половинка страницы 0, так же мапится в первую половинку стр. 0.

    И ещё, имейте в виду, что код режима HLT11 на самом деле 0, а не 20000, в регистре 177130 бита 13 по записи нету, поэтому он ни на что и не влияет. Просто в ПО АльтПро было принято соглашение, что код режима по каким-то уже забытым причинам не должен быть равен 0. Поэтому взяли вот такое число.
    опа



    Не ок. Уточнение. Не всегда, а всегда, за исключением режима SYS. Там вместо ОЗУ продублировано ПЗУ, которое по адресам 160000-167777. см табл. режимов.

    См. таблицу режимов, строка "170(177000hdd)-0"

    Основное применение - HALT режим. ОЗУ по записи по адресам 177674,177676
    Бейсик - вторичен.


    Тут есть такой нюанс. Т.к. 7й сегмент делится на 2 части, то и проверяется он дважды. Но! Тест на экран выводит только ошибочные ситуации, если ошибки нет, на экран ничего не выводится.
    Поэтому ошибка:7-6(10) относится не к диапазону 170000-176776, а к диапазону 177000-177777. Оба эти диапазона имеют код 7, поэтому происходит путаница.

    Я исправлю вывод информации в тесте, чтобы было более понятно, когда придумаю как.

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

    А ещё, внутри этой страницы, в зависимости от режима работы СМК, нужно по-разному тасовать сегменты по 010000 байт.
    круто

    спасибо за развернутые ответы!

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

    за базу взял последнуюю версию Вашего теста обрубил тест SMK и занялся тестированием AZ-а
    обнаружил неприятную проблему после 16ого мегабайта, те снос крыши у памяти, что вообще очень странно ибо тест памяти прекрасно проходит если идет с STM32
    пока завис на ловле глюка
    Все о БК ДВК УКНЦ VAX Alpha

    Архив ПО для ретрокомпьютеров

    предоставляю бесплатный хостинг на PDP-11.RU для проектов о ретрокомпьютерах

Страница 15 из 15 ПерваяПервая ... 1112131415

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

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

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

Похожие темы

  1. Ответов: 37
    Последнее: 16.04.2019, 21:21
  2. Ответов: 66
    Последнее: 03.05.2014, 14:58
  3. продам бк 0011м
    от alexsan в разделе Барахолка (архив)
    Ответов: 7
    Последнее: 04.02.2012, 18:17
  4. Ремонт БК-0011М
    от Gryphon в разделе БК-0010/0011
    Ответов: 31
    Последнее: 03.05.2010, 10:53
  5. Куплю БК-0011М!
    от Murzik в разделе Барахолка (архив)
    Ответов: 3
    Последнее: 12.04.2010, 08:22

Ваши права

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