User Tag List

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

Тема: RT-11 для чайников

Комбинированный просмотр

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

    Регистрация
    07.10.2007
    Адрес
    п.Пудость Гатчинского р-на Лен.обл.
    Сообщений
    3,250
    Спасибо Благодарностей отдано 
    362
    Спасибо Благодарностей получено 
    639
    Поблагодарили
    415 сообщений
    Mentioned
    46 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Manwe Посмотреть сообщение
    Из того, что я читал об RT-11 для УКНЦ, вынес следующее: заголовок sav-файла грузится в буфер и там разбирается. Затем в тот же буфер начинают грузятся остальные блоки файла, по одному. И уже из буфера перемещаются в основное ОЗУ. То есть они загружаются перетирая друг друга. Нулевой блок с заголовком по-любому будет потёрт, в основную память он не попадёт. Как в таких условиях передать управление внедрённому в него коду – непонятно.
    Нулевой блок SAV-файла, который заголовок, также переносится в ОЗУ с нулевого адреса в соответствие с картой битовой защиты. Данная карта расположена в области данных RMON (резидентный монитор) и показывает, можно ли переписывать ячейку или нельзя. Защищаются ячейки с адреса 0 по адрес 0476. С адреса 0500 в старых версиях RT-11 (вроде бы до 05.02) информация прямо переписывалась. В более новых версиях в SAV-файле для этого необходимо поставить бит 8 (CHAIN$) в адресе 044 JSW (Job Status Word).

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

  3. #2

    Регистрация
    06.12.2017
    Адрес
    г. Москва
    Сообщений
    1,724
    Спасибо Благодарностей отдано 
    167
    Спасибо Благодарностей получено 
    406
    Поблагодарили
    257 сообщений
    Mentioned
    11 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Alex_K Посмотреть сообщение
    Защищаются ячейки с адреса 0 по адрес 0476.
    Значит, нулевой блок туда не запишется.
    Ну и как бы я отталкиваюсь от официальной документации, где прямо сказано, что все блоки грузятся по одному в буфер, и нулевой блок не отправляется в основную память.
    manwe.pdp-11.ru

  4. #3

    Регистрация
    07.10.2007
    Адрес
    п.Пудость Гатчинского р-на Лен.обл.
    Сообщений
    3,250
    Спасибо Благодарностей отдано 
    362
    Спасибо Благодарностей получено 
    639
    Поблагодарили
    415 сообщений
    Mentioned
    46 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Manwe Посмотреть сообщение
    Значит, нулевой блок туда не запишется.
    Ну почему не запишется, запишутся только не защищённые ячейки, если в карте битовой защиты стоит нулевой битик на данный адрес.
    Вот собственно из официальной документации:
    "The monitor commands R and RUN load and start a program stored in a .SAV file.(The RUN command is actually a combination of the GET and START commands.)
    First, the Keyboard Monitor reads block 0 of the .SAV file into an internal USR buffer.
    It extracts information from locations 40–64 and 360–377 (the bitmap, described
    above). Using the protection bitmap (called LOWMAP), which resides in RMON,
    KMON checks each word in block 0 of the file. It does not load locations that are
    protected, such as location 54 and the device interrupt vectors. It loads unprotected
    locations into memory from the USR buffer. Next, KMON sets location 50 to the top
    of usable memory, or to the top of the user program, whichever is greater."

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

    Цитата Сообщение от Hunta Посмотреть сообщение
    Интересно, что будет делать система (читать одним запросом или несколькими), если за таким блоком будут опять идти нормальные данные...
    Можно попробовать практически. Создать большой файл, в начале и конце поместить реальные данные, а между ними очень большой .BLKW. А потом загрузить с помощью GET, а командой E посмотреть. В принципе можно выйти в пульт и посмотреть там ячейки.

  5. #4

    Регистрация
    06.12.2017
    Адрес
    г. Москва
    Сообщений
    1,724
    Спасибо Благодарностей отдано 
    167
    Спасибо Благодарностей получено 
    406
    Поблагодарили
    257 сообщений
    Mentioned
    11 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Alex_K Посмотреть сообщение
    KMON checks each word in block 0 of the file. It does not load locations that are protected, such as location 54 and the device interrupt vectors. It loads unprotected locations into memory from the USR buffer.
    Хм, а может и сработать. Надо попробовать. Спасибо за идею.
    manwe.pdp-11.ru

  6. #5

    Регистрация
    07.10.2007
    Адрес
    п.Пудость Гатчинского р-на Лен.обл.
    Сообщений
    3,250
    Спасибо Благодарностей отдано 
    362
    Спасибо Благодарностей получено 
    639
    Поблагодарили
    415 сообщений
    Mentioned
    46 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Manwe Посмотреть сообщение
    Хм, а может и сработать. Надо попробовать. Спасибо за идею.
    А что сработать? В каком месте в нулевом блоке будут располагаться код и данные?

  7. #6

    Регистрация
    30.11.2015
    Адрес
    г. Самара
    Сообщений
    7,518
    Спасибо Благодарностей отдано 
    345
    Спасибо Благодарностей получено 
    716
    Поблагодарили
    598 сообщений
    Mentioned
    13 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Alex_K Посмотреть сообщение
    А что сработать? В каком месте в нулевом блоке будут располагаться код и данные?
    Выше примерно 500-ой ячейки .SAV размером в один блок

  8. #7

    Регистрация
    06.12.2017
    Адрес
    г. Москва
    Сообщений
    1,724
    Спасибо Благодарностей отдано 
    167
    Спасибо Благодарностей получено 
    406
    Поблагодарили
    257 сообщений
    Mentioned
    11 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Alex_K Посмотреть сообщение
    А что сработать? В каком месте в нулевом блоке будут располагаться код и данные?
    с 70 по 356. Этого хватит на то, чтобы инициализировать графику и палитры Союз-Неона.
    manwe.pdp-11.ru

  9. #8

    Регистрация
    30.11.2015
    Адрес
    г. Самара
    Сообщений
    7,518
    Спасибо Благодарностей отдано 
    345
    Спасибо Благодарностей получено 
    716
    Поблагодарили
    598 сообщений
    Mentioned
    13 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Manwe Посмотреть сообщение
    с 70 по 356
    SJ RMON
    Код:
    ; BYTES ARE READ FROM LEFT TO RIGHT. E.G., THE FOURTH BYTE PROTECTS
    ; THE RANGE 60-76, AND A VALUE OF 11110000 WOULD PROTECT 60-66.
    
    .RADIX	2
    	.BYTE	11111111,00111100,00001111,11110000 ;000-076
    	.BYTE	11000011,00000000,00000000,00000000 ;100-176
    	.BYTE	00000000,00000000,00110000,00000000 ;200-276
    	.BYTE	00000000,00000000,00000000,00000000 ;300-376
    	.BYTE	00000000,00000000,00000000,00000000 ;400-476
    .RADIX	8.
    - - - Добавлено - - -

    А потом ктонть прицепит контроллер в вектором в диапазон 70-356 - и пойдут слухи о сбойной ячейке памяти, которая конкретную прогу портит

  10. #9

    Регистрация
    06.12.2017
    Адрес
    г. Москва
    Сообщений
    1,724
    Спасибо Благодарностей отдано 
    167
    Спасибо Благодарностей получено 
    406
    Поблагодарили
    257 сообщений
    Mentioned
    11 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Alex_K Посмотреть сообщение
    Ну почему не запишется, запишутся только не защищённые ячейки, если в карте битовой защиты стоит нулевой битик на данный адрес.
    Эксперимент на ОС БК-11 показал, что после загрузки в нулевом блоке остаются нетронутыми следующие диапазоны ячеек:
    адрес (oct) - количество слов (dec)
    Код:
     70 -   4
    122 -  41
    250 -   8
    300 -  24
    400 - 128
    Итого 410 байт. Попробую впихнуть туда демку для БК 0011М.

    Update: Удалось втиснуть демку в 0-ой сектор. Но пришлось порезать кое-какие возможности. Много места ушло на борьбу с системой: запретить прерывания, установить страницу экрана в адресное пространство, восстановить нормальное положение скроллинга задать палитру. Не нашёл специального EMT для инициализации экрнан. Может быть кто знает такое для ОС БК-11?
    Последний раз редактировалось Manwe; 27.09.2020 в 19:39.
    manwe.pdp-11.ru

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

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

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

Похожие темы

  1. Ответов: 206
    Последнее: 19.08.2020, 10:36
  2. Монолоадер для чайников.
    от ZX_NOVOSIB в разделе Для начинающих
    Ответов: 226
    Последнее: 24.05.2018, 08:54
  3. TS Conf прошивка для Чайников
    от AAA в разделе Софт
    Ответов: 157
    Последнее: 10.01.2015, 04:46
  4. Ответов: 35
    Последнее: 01.12.2006, 10:06

Ваши права

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