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

User Tag List

Страница 135 из 136 ПерваяПервая ... 131132133134135136 ПоследняяПоследняя
Показано с 1,341 по 1,350 из 1355

Тема: Программирование на УКНЦ как?

  1. #1341
    Master Аватар для Manwe
    Регистрация
    06.12.2017
    Адрес
    г. Москва
    Сообщений
    797
    Спасибо Благодарностей отдано 
    60
    Спасибо Благодарностей получено 
    154
    Поблагодарили
    119 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от form Посмотреть сообщение
    Такой способ не всегда годится.
    но что может пойти не так, если в 50-ой ячейке заголовка .sav-файла я указал верхний адрес FREEND?
    Я не нашёл ни единого упоминания в документации DEC, что так делать нельзя. Там эта тема вообще опущена, как самоочевидная. Типа, «всё, что не запрещено – разрешено».
    Кроме того, посмотрел sav-программы для ОС БК-11, собранные, очевидно, в Macro-11, – у них в 50-ой ячейке записан верхний адрес памяти, который отличается и от реального размера программы на диске, и от числа занимаемых ей блоков*512. Причём, отличается в большую сторону (наверняка ради резерва памяти). Как-то ведь скомпилировали и слинковали эти файлы.
    Последний раз редактировалось Manwe; 23.05.2020 в 23:49.
    Manwe/SandS

  2. #1342
    Guru Аватар для form
    Регистрация
    27.05.2009
    Адрес
    СССР, Новосибирск
    Сообщений
    5,501
    Спасибо Благодарностей отдано 
    2
    Спасибо Благодарностей получено 
    94
    Поблагодарили
    79 сообщений
    Mentioned
    13 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от litwr Посмотреть сообщение
    Предполaгаю, что работа с памятью в RT-11SJ как в Досе - получай всю.
    Все зависит от того что собственно требуется.
    В RT-11 нет никакого функционала по запросу/освобождению памяти (XM вызовы не рассматриваем здесь).
    Вызов .SETTOP просто уведомляет систему какой самый верхний адрес программа собирается использовать, чтобы она ориентировалась нужен ли свопинг при USR вызовах и при выходе программы.
    К примеру если мы просто хотим подгрузить драйверы с помощью .FETCH или .CSIGEN, нам вообще .SETTOP не нужен в принципе.
    Если же .SETTOP используется, хорошим правилом будет перед выходом (или перед получением следующей команды) вернуть верхний адрес в исходное положение, чтобы после выхода программы не дергать зря диск.

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

    Цитата Сообщение от Manwe Посмотреть сообщение
    Я не нашёл ни единого упоминания в документации DEC, что так делать нельзя.
    В документации просто расписано как что работает, а что с этим делать - дело пользователя.

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

    Цитата Сообщение от Manwe Посмотреть сообщение
    верхний адрес памяти, который отличается и от реального размера программы на диске, и от числа занимаемых ей блоков*512.
    А он и не должен совпадать.
    Содержимое ячейки 50 - это просто самый верхний адрес который программа собирается использовать.
    К примеру оверлейная программа по размеру может вообще быть больше физической памяти.

    Предварительная запись адреса в ячейку 50 абсолютно идентична вызову .SETTOP с тем же адресом, за исключением того, что если значение окажется слишком большим, то программа просто не загрузится.

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

    Цитата Сообщение от litwr Посмотреть сообщение
    Нет ли у вас сейчас какой-нибудь DEC PDP-11 системы с RT-11
    Пока все разобрано и упаковано.

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

    Цитата Сообщение от Manwe Посмотреть сообщение
    Я не нашёл ни единого упоминания в документации DEC, что так делать нельзя.
    Кстати под "не всегда работает" я имел в виду, что в коде
    Код:
    END:
    	.END	START
    END - не обязательно окажется в конце программы

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

    Вот для пояснения что я имею в виду:
    Код:
            .MCALL  .PRINT,.EXIT
    
    START:: MOV     #152525,R1
            CALL    PRINT
            MOV     #52525,R1
            CALL    PRINT
            .EXIT
    
    PRINT:: MOV     #BUF,R0
            MOV     SP,R2
            CALL    $CBOMG
            CLRB    @R0
            .PRINT  #BUF
            RETURN
    
    BUF::
            .END    START
    "Вам кажется", что это программа которая печатает 152525, а потом 052525, а на самом деле - это программа которая печатает 152525, а потом обрушивает все (при первом вызове $CBOMG записал результат поверх себя)
    Последний раз редактировалось form; 24.05.2020 в 03:56.
    PDP-11/83, Электроника МС0511 (УК-НЦ), DECserver 90M
    Q-Bus: H9278-A, DLV11-J, DZQ11, DHV11, DELQA-M, LPV11, CQD-420/TM, DRV11
    PMI: KDJ11-BF, MSV11-JE
    VT220, CM7209

  3. #1343
    Master Аватар для Manwe
    Регистрация
    06.12.2017
    Адрес
    г. Москва
    Сообщений
    797
    Спасибо Благодарностей отдано 
    60
    Спасибо Благодарностей получено 
    154
    Поблагодарили
    119 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от form Посмотреть сообщение
    К примеру оверлейная программа по размеру может вообще быть больше физической памяти.
    Хмм, в ячейке 50 записано 16-битное число, значит программа не может запрашивать больше 64 kb. Разве RT-11 может работать на компьютерах, у которых физической памяти меньше 64 килобайт?
    Manwe/SandS

  4. #1344
    Guru
    Регистрация
    30.11.2015
    Адрес
    г. Самара
    Сообщений
    3,344
    Спасибо Благодарностей отдано 
    72
    Спасибо Благодарностей получено 
    142
    Поблагодарили
    118 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Manwe Посмотреть сообщение
    Разве RT-11 может работать на компьютерах, у которых физической памяти меньше 64 килобайт?
    Для начала - 56 кб.
    Для окончания - я запускал RT-11 на компе с 16-ю килобайтами.

  5. #1345
    Guru Аватар для form
    Регистрация
    27.05.2009
    Адрес
    СССР, Новосибирск
    Сообщений
    5,501
    Спасибо Благодарностей отдано 
    2
    Спасибо Благодарностей получено 
    94
    Поблагодарили
    79 сообщений
    Mentioned
    13 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Manwe Посмотреть сообщение
    Хмм, в ячейке 50 записано 16-битное число, значит программа не может запрашивать больше 64 kb. Разве RT-11 может работать на компьютерах, у которых физической памяти меньше 64 килобайт?
    Да, RT-11 прекрасно работает на компьютерах с физической памятью меньше 64 Kb.
    В зависимости от размеров системы минимальные требования разные.
    В теме программ для ДВК/PDP-11 есть программа VKMON (или SYSTOP - она только для этого и предназначена) которой можно принудить монитор использовать не всю память (только SJ/SB/FB) - если интересно побаловаться.

    Ячейка же 50 (содержимое) - это просто верхний адрес программы который она объявляет используемым.
    Физический смысл этого параметра (имеем в виду обычную прогу, не виртуальную) такой: если какой-либо вызов, требует USR, и он загружается в область памяти выше данного адреса, то USR просто загружается и используется.
    Если же USR попадает в этот адрес или ниже - происходит свопинг - часть памяти выгружается в файл SWAP.SYS, загружается USR, используется, память читается обратно.

    Второй смысл этого значения аналогичен, только речь идет про выход из программы и возможное ее перекрытие USR+KMON.

    Что касается памяти больше 64Kb (как правильно было замечено, обычно все-таки 56, хотя бывает и больше - например 60), то тут разные варианты:
    • оверлейные программы используют одну и ту же память для разных кусков программы
    • в системах с управлением памятью, программа может использовать области верхней памяти, а так же оверлеи которые лежат в верхней памяти и просто переключаются между собой
    • ZB/ZM монитор и TSX-Plus поддерживают использования раздельного пространства кода и данных (между собой несовместимы).
    Последний раз редактировалось form; 24.05.2020 в 14:10.
    PDP-11/83, Электроника МС0511 (УК-НЦ), DECserver 90M
    Q-Bus: H9278-A, DLV11-J, DZQ11, DHV11, DELQA-M, LPV11, CQD-420/TM, DRV11
    PMI: KDJ11-BF, MSV11-JE
    VT220, CM7209

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

    hobot (25.05.2020)

  7. #1346
    Veteran
    Регистрация
    22.03.2018
    Адрес
    г. Усть-Каменогорск, Казахстан
    Сообщений
    1,044
    Спасибо Благодарностей отдано 
    61
    Спасибо Благодарностей получено 
    102
    Поблагодарили
    87 сообщений
    Mentioned
    15 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Что быстрее?
    Код:
            MUL	#80.,R2
    или
    Код:
    	MOV	R3,R2
    	ASL	R3
    	ASL	R3
    	ASL	R3
    	ASL	R3
    	ASL	R3
    	ASL	R3
    
    	ASL	R2
    	ASL	R2
    	ASL	R2
    	ASL	R2
    
    	ADD	R2, R3
    БK 0010-01, БК 11М, БК11М+,МС 0511 (УКНЦ)х2, Commodore 64, AMIGA 500, ZX EVO

  8. #1347
    Master
    Регистрация
    20.06.2014
    Адрес
    г. Орск, Оренбургская обл.
    Сообщений
    597
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    27
    Поблагодарили
    20 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    А так?

    Код:
    	MOV	R3,R2
    
    	ASL	R3
    	ASL	R3
    
    	ADD	R2, R3
    
    	ASL	R3
    	ASL	R3
    	ASL	R3
    	ASL	R3
    Турбо АГАТ-9/16 (ЦП 65C802, 5 Махов, dual-port SRAM).

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

    S_V_B (01.06.2020)

  10. #1348
    Veteran
    Регистрация
    22.03.2018
    Адрес
    г. Усть-Каменогорск, Казахстан
    Сообщений
    1,044
    Спасибо Благодарностей отдано 
    61
    Спасибо Благодарностей получено 
    102
    Поблагодарили
    87 сообщений
    Mentioned
    15 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от LeoN65816 Посмотреть сообщение
    А так?
    ???
    фигня получится
    БK 0010-01, БК 11М, БК11М+,МС 0511 (УКНЦ)х2, Commodore 64, AMIGA 500, ZX EVO

  11. #1349
    Guru
    Регистрация
    30.11.2015
    Адрес
    г. Самара
    Сообщений
    3,344
    Спасибо Благодарностей отдано 
    72
    Спасибо Благодарностей получено 
    142
    Поблагодарили
    118 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Код:
    	MOV	R3,R2 ; r3=x r2=x
    
    	ASL	R3 ; r3=2x
    	ASL	R3 ; r3=4x
    
    	ADD	R2, R3 ; r3=5x
    
    	ASL	R3 ; r3=10x
    	ASL	R3 ; r3=20x
    	ASL	R3 ; r3=40x
    	ASL	R3 ; r3=80x

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

    S_V_B (01.06.2020)

  13. #1350
    Veteran
    Регистрация
    22.03.2018
    Адрес
    г. Усть-Каменогорск, Казахстан
    Сообщений
    1,044
    Спасибо Благодарностей отдано 
    61
    Спасибо Благодарностей получено 
    102
    Поблагодарили
    87 сообщений
    Mentioned
    15 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Ну да, согласен.
    Только вопрос был не в этом.
    БK 0010-01, БК 11М, БК11М+,МС 0511 (УКНЦ)х2, Commodore 64, AMIGA 500, ZX EVO

Страница 135 из 136 ПерваяПервая ... 131132133134135136 ПоследняяПоследняя

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

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

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

Похожие темы

  1. Программирование на Эмуляторе. Возможно ли это?
    от Toxic в разделе Программирование
    Ответов: 10
    Последнее: 20.01.2008, 19:20
  2. Программирование Altera и JTAG
    от Mikka_A в разделе Unsorted
    Ответов: 7
    Последнее: 18.01.2008, 09:07
  3. Программирование и софтмейк на NES
    от Splinter в разделе Nintendo
    Ответов: 7
    Последнее: 30.06.2006, 04:31

Ваши права

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