User Tag List

Страница 34 из 48 ПерваяПервая ... 303132333435363738 ... ПоследняяПоследняя
Показано с 331 по 340 из 471

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

  1. #331

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

    По умолчанию

    Цитата Сообщение от Alex Посмотреть сообщение
    Эти 512 байт заголовка, вполне можно занять кодом при прямых руках.
    Из того, что я читал об RT-11 для УКНЦ, вынес следующее: заголовок sav-файла грузится в буфер и там разбирается. Затем в тот же буфер начинают грузятся остальные блоки файла, по одному. И уже из буфера перемещаются в основное ОЗУ. То есть они загружаются перетирая друг друга. Нулевой блок с заголовком по-любому будет потёрт, в основную память он не попадёт. Как в таких условиях передать управление внедрённому в него коду – непонятно.

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

    Цитата Сообщение от troosh Посмотреть сообщение
    Не, я настаиваю что документация нормальная, просто еë нужно несколько раз перечитывать.
    Нажмите на изображение для увеличения. 

Название:	4F60B9EF-3D1D-4A51-9010-3CB884204248.jpeg 
Просмотров:	226 
Размер:	14.6 Кб 
ID:	73452
    Нажмите на изображение для увеличения. 

Название:	277BB438-1EFB-487F-ADE2-7D2E061EEB0A.jpg 
Просмотров:	226 
Размер:	3.4 Кб 
ID:	73453

    Первый скриншот из документации. Второй из файла P16.MAC
    Нет, документация НЕ нормальная. Здесь имеет место когнитивное искажение, профессиональная деформация: человеку, УЖЕ заранее знакомому и имеющему большой опыт с RT-11, советской схемотехникой, используемыми микросхемами и прочими штуками кажется, что «всё и так понятно». Конкретно в этой документации не описано, но «мне же понятно». Это признак плохой документации.

    На самом деле это удобно - можно есть выдачу help и просто осмысленное сообщение о том, что нужно запускать через prun. Либо реализовать какое-то взаимодействие с ранее запущенным процессом из этого же файла
    Да, это полезно.
    Спасибо за разъяснение.
    manwe.pdp-11.ru

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

  3. #332

    Регистрация
    07.10.2007
    Адрес
    п.Пудость Гатчинского р-на Лен.обл.
    Сообщений
    3,247
    Спасибо Благодарностей отдано 
    360
    Спасибо Благодарностей получено 
    638
    Поблагодарили
    414 сообщений
    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).

  4. #333

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

    По умолчанию

    И насколько я знаю, дальше данные со второго блока до некого блока, номер которого вычисляется по инфу из заголовка, читаются с диска одним запросом сразу на место (спасибо вам, непрерывные файлы). Именно по этой же причине файлы .TSK в RSX так же должны быть непрерывными, что бы система могла их запустить

  5. #334

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

    По умолчанию

    Цитата Сообщение от Hunta Посмотреть сообщение
    И насколько я знаю, дальше данные со второго блока до некого блока, номер которого вычисляется по инфу из заголовка, читаются с диска одним запросом сразу на место (спасибо вам, непрерывные файлы).
    Ну не с второго, а первого, если нумерация начинается с нуля. Да и в нулевом блоке со смещения 0360 также есть карта используемых блоков. Например, если в программе посреди файла объявить большой массив .BLKW, то данные блоки помечаются в карте нулевыми битиками.

  6. #335

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

    По умолчанию

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

  7. #336

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

    По умолчанию

    Цитата Сообщение от Alex_K Посмотреть сообщение
    Ну не с второго, а первого, если нумерация начинается с нуля.
    Пардон, очепятался, с первого, конечно.

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

    Цитата Сообщение от Alex_K Посмотреть сообщение
    если в программе посреди файла объявить большой массив .BLKW, то данные блоки помечаются в карте нулевыми битиками.
    Интересно, что будет делать система (читать одним запросом или несколькими), если за таким блоком будут опять идти нормальные данные...

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

    Уточнение - все мои высказывания касаются virgin RT-11 от DEC, а не её версий, которые потрогали чьи-то очумелые ручки

  8. #337

    Регистрация
    07.10.2007
    Адрес
    п.Пудость Гатчинского р-на Лен.обл.
    Сообщений
    3,247
    Спасибо Благодарностей отдано 
    360
    Спасибо Благодарностей получено 
    638
    Поблагодарили
    414 сообщений
    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 посмотреть. В принципе можно выйти в пульт и посмотреть там ячейки.

  9. #338

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

    По умолчанию

    То, что он загрузится и с правильными данными в конце - как бы сомнения нет. Вопрос - один запрос на чтение будет или два. Можно правда в середине пошалить dess-ом и потом проверить...

  10. #339

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

    По умолчанию

    Цитата Сообщение от Hunta Посмотреть сообщение
    То, что он загрузится и с правильными данными в конце - как бы сомнения нет. Вопрос - один запрос на чтение будет или два. Можно правда в середине пошалить dess-ом и потом проверить...
    Проверил. Неиспользуемые блоки не грузит.

  11. #340

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

    По умолчанию

    Цитата Сообщение от Alex_K Посмотреть сообщение
    Проверил. Неиспользуемые блоки не грузит.
    Спасибо

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

    Это, кстати, означает, что при неаккуратном использовании .BLKW .BLKB можно легко получить суслика, которого не видно, но он есть

    Видимо, та же мысль пришла мне в голову, когда я реализовал макросы резервирования, но не выделения памяти (как уменьшить размер .sav файла, не выделяя памяти под переменные и не использую динамическую память) - и добавил в инициализатор код, который обнуляет описанные таким образом переменные
    Последний раз редактировалось Hunta; 08.09.2020 в 13:04.

Страница 34 из 48 ПерваяПервая ... 303132333435363738 ... ПоследняяПоследняя

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

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

Эту тему просматривают: 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

Ваши права

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