User Tag List

Страница 2 из 2 ПерваяПервая 12
Показано с 11 по 15 из 15

Тема: OVERLAYS! оверлеи линковщики своп

  1. #11

    Регистрация
    12.07.2006
    Адрес
    г. Киев, Украина
    Сообщений
    2,147
    Спасибо Благодарностей отдано 
    25
    Спасибо Благодарностей получено 
    95
    Поблагодарили
    82 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    Smile некие выводы

    Интересно выходит,

    1) "плоский" режим не что иное как упрощение реальной жизни, т.е. в каждом CPU адресное пространство ограниченно, а значит можно себе представить что потребуются overlays (а иначе можно было бы загрузить все проги вселенной в "резиновую" память);

    2) для поддержки overlays компилятору и компоновщику нужно различать как минимум 2 типа памяти (общая и подменяемая), а так же знать максимальный размер и количество кусков таких типов (это чтоб контроллировать выход за рамки возможного);

    3) у компилятора с поддержкой overlays кроме обычных операций jmp() call() есть так же jmp_far() и call_far() которые перед самой передачей управления изменят конфигурацию памяти на нужную (рассчитанную компоновщиком, который тоже должен знать про overlays);

    4) сами программы должны быть написанны с учетом overlays (и возможно иметь настройки сколько страниц использовать и какого размера общая страница, стек и подгружаемые страницы), а такие алгоритмы типа "рекурсионные" вообще никуда не годятся так как рассчитанны на "резиновую" память.

  2. #12

    Регистрация
    08.05.2007
    Адрес
    Dnepropetrovsk
    Сообщений
    1,089
    Спасибо Благодарностей отдано 
    281
    Спасибо Благодарностей получено 
    70
    Поблагодарили
    49 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от jerri Посмотреть сообщение
    Barmaley_m, а где можно пощупать ASC CP/M?
    Я в этой теме выкладывал свои архивы (стр. 13). В моих архивах есть дискета "sp_basic.trd". На ней в виде бейсик-файла находится запускаемый образ ASC CP/M. Для запуска необходимо иметь Спектрум с минимум 144Кб ОЗУ, из которых "лишние" 16К подключаются по адресам 0000-3FFF. Также должны быть открыты порты TR-DOS, то есть доступ к ним должен быть возможен не только из TR-DOS, а из любого места без ограничений. Подключение доп. страницы по адресам 0000-3FFF выполняется по команде OUT 123,2.

    Также в моих выложенных архивах имеются файлы, запускаемые под CP/M. К сожалению, перед запуском их необходимо сначала записать на дискету в формате ASC CP/M, а это нетривиальная задача.

    Я когда-то модифицировал эмулятор Unreal, чтобы он поддерживал все вышеупомянутые режимы. До конца дело не довел, поэтому в общий доступ не выкладывал пока. Возможно, имело бы смысл довести до конца этот проект эмулятора и подготовить образы дискет, чтобы можно было беспрепятственно запускать ASC CP/M. Просто до сих пор никто не проявлял особого интереса к этой теме, поэтому и мотивации не было. Возможно, имеет смысл создать отдельную тему по этой ОС и туда все выкладывать.

  3. #13

    Регистрация
    01.03.2005
    Адрес
    Samara
    Сообщений
    4,867
    Спасибо Благодарностей отдано 
    328
    Спасибо Благодарностей получено 
    311
    Поблагодарили
    235 сообщений
    Mentioned
    12 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Barmaley_m, т.е компутер у Сендецкого был еще тем монстром.
    С уважением,
    Jerri / Red Triangle.

  4. #14

    Регистрация
    03.01.2006
    Адрес
    Рязань
    Сообщений
    2,935
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    1
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Как у многих в ту эпоху У Rst7 тоже был интересный агрегат - Пентагон 512K с IDE по схеме ATM Turbo 2, а что там ещё было привинчено - история не сохранила.

    ---------- Post added at 16:00 ---------- Previous post was at 15:55 ----------

    Цитата Сообщение от bigral Посмотреть сообщение
    3) у компилятора с поддержкой overlays кроме обычных операций jmp() call() есть так же jmp_far() и call_far() которые перед самой передачей управления изменят конфигурацию памяти на нужную (рассчитанную компоновщиком, который тоже должен знать про overlays);
    call_far должны делаться через вызываторы, которые лежат в нижней памяти и никогда оттуда не исчезают.
    Примерно такие:
    proc_far
    ld a,page
    call set_page
    jp proc

    Или, если вызов из одного дальнего модуля в другой дальний модуль:
    proc_far
    ld a,page1
    call set_page
    call proc
    ld a,page2
    jp set_page

    Иначе будет тормоз (включать контекст системы, сохранять регистры, включать контекст юзера, восстанавливать регистры, переходить, а на ret_far ещё раз).

  5. #15

    Регистрация
    08.05.2007
    Адрес
    Dnepropetrovsk
    Сообщений
    1,089
    Спасибо Благодарностей отдано 
    281
    Спасибо Благодарностей получено 
    70
    Поблагодарили
    49 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от jerri Посмотреть сообщение
    Barmaley_m, а где можно пощупать ASC CP/M?
    Только что выложил файлы, с помощью которых можно как следует пощупать эту систему, в этой теме.

Страница 2 из 2 ПерваяПервая 12

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

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

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

Ваши права

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