User Tag List

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

Тема: Кросс-компиляция для програм на си

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

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

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

    По умолчанию

    Цитата Сообщение от SuperMax Посмотреть сообщение
    я пишу программу на ассемблере и я точно знаю размер кода
    Цитата Сообщение от SuperMax Посмотреть сообщение
    когда я пишу на СИ, те на _другом_уровне_абстракции_ и тут я в принципе не знаю
    Учитывая, что и на ассемблере (чаще всего) и на С (практически наверняка) будут подключаться всякие дополнительные модули и библиотеки, на этапе компиляции компилятору не будет известно - чего и сколько, а соотвественно - как переключать страицы ДП. Это може знать только линкер и менно он (и в RT и в RSX) умеет создавать оверлеи, резидентные в памяти. Если хочется делать это на этапе компиляции - придётся это делать руками.

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

    SuperMax(06.06.2022)

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

  3. #2

    Регистрация
    16.12.2014
    Адрес
    г. Ожерелье
    Сообщений
    769
    Спасибо Благодарностей отдано 
    252
    Спасибо Благодарностей получено 
    46
    Поблагодарили
    42 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от andrews Посмотреть сообщение
    Я не об этом. А о том, чтобы запустить на 65с02 исполняемый код[CP/M для z80 причем конкретного железа под него!] Конечно он эти коды должен воспринимать как данные для пересылки на параллельный процессор.
    Параллельный - это неверно, процы не равны. Есть базовый и второй, опциональный. Если подключаем второй, то он берет управление на себя, а базовый (повторю) становится вспомогательным и управляет графикой, звуком, клавой и т.п. Поэтому если воткнуть Z80, то BBC Micro исполняет программы именно для Z80 без всякой пересылки кодов. Никакого конкретного железа кроме проца, интерфейса и памяти в плате второго процессора нет.
    Цитата Сообщение от andrews Посмотреть сообщение
    То есть у нас есть живой BBC микро, а вот того конкретного железа нет и в помине! И нет пзу его биоса/монитора-программы.
    Ведь монитор-экран есть и клавиатура, и диски, но всё другое! Поэтому тот код, даже если "воткнуть" параллельно железный z80 правильно исполнятся не будет! А придется основному 65с02 перехватывать такие "железо-зависимые коды" и преобразовывать в свои собственные, чтобы пользователь мог видеть правильный результат на экране, а нажатие клавиш попадало в нужные яп параллельного процессора.
    Так коды для железа у каждого компика свои, даже если процы одинаковые. Например, подобные коды для Спека, Амстрада или MSX совершенно разные. Их для каждой системы приходится писать, обычно это называют драйверами аппаратуры. Для 2-о процессора BBC Micro писать такие коды просто, вместо обращений к аппаратуре мы используем готовые системные вызовы. Для PDP-11 у нас есть готовые EMT-вызовы - в точности как и на БК.
    Цитата Сообщение от andrews Посмотреть сообщение
    То, что описываете Вы говорит о том, что на уровне схемы обе системы независимы и по команде пользователя разделяют общие ресурсы: диски, клавиатуру, монитор-экран. Это не параллелизм в исполнении кодов!
    Коды на базовом и втором проце выполняются абсолютно параллельно. Например, если вы вызываете EMT для отрисовки линии, то PDP-11 проц этим почти не грузится, он лишь передаёт параметры базовому процу. Кстати, таким же полностью параллельным способом работали дисководы на Коммодорчиках - помню некоторые в 80-е чувствовали себя с ними как с многопроцессорными мейнфреймами.
    Цитата Сообщение от andrews Посмотреть сообщение
    значит основной софт допускал такое распараллеливание. В нынешних архитектурах тоже есть несколько ядер. Но старинному дос-у и windows-у их использовать для параллельных вычислений и даже для запуска разных задач в системе не удастся!
    Как и писал раньше, специальный "параллельный" софт не нужен, всё работает с обычным софтом. Старинный ДОС отлично там работает - только в биос поставили соответствующие вызовы базового проца. ББС - это не многоядерная, а опционально двухпроцессорная система.
    Цитата Сообщение от SuperMax Посмотреть сообщение
    возможно ТАМ, да. тут это дикий зверь которого никто и в глаза не видел.
    Их вроде дажe немножко закупали. Но в целом не реже каких-нибудь Tandy TRS-80 или даже Sinclair QL.

    Цитата Сообщение от SuperMax Посмотреть сообщение
    честно не понял, причем тут бейсик-то ???? про бейсик давно пора забыть уже наконец!
    На этом бейсике когда-то АРМ сделали! Есть варианты для современных ОС, один из них называется Бренди. Если собираетесь что-то делать на ББС Микро или быстренько сделать программу под RiscOS, то этот бейсик реальная вещь. Конечно, к теме кросс-компиляция си для БК этот бейсик никакого отношения не имеет.

    Цитата Сообщение от SuperMax Посмотреть сообщение
    этот ассемблер тоже вещь в себе и как я не пытался его использовать - малоудобен. и что важно - не совместим со стандартом.
    Скажите это Manwe.

    Цитата Сообщение от SuperMax Посмотреть сообщение
    и какой в этом смысл ?
    больше игр и прочего софта для БК. Кстати. не заметил почти никакого интереса к играм под RT-11 для БК - https://zx-pk.ru/threads/33794-novye-igry-dlya-bk.html - хотя даже самый первый Тетрис удалось портировать.

    Цитата Сообщение от SuperMax Посмотреть сообщение
    одно дело, я пишу программу на ассемблере и я точно знаю размер кода и исходя из этого могу переключать странички и прочее и совсем другое дело, когда я пишу на СИ, те на _другом_уровне_абстракции_ и тут я в принципе не знаю [и что важно - не хочу знать!] когда и как переключать страницы памяти. это задача компилятора собрать код так, и переключать страницы так, чтобы это работало. c поддержкой ОС тоже самое, это тоже задача.
    ну вот я беру компилятор ТУРБОСИ и собираю код под XT и почему-то там мне никто не предлагает вручную передвигать указатели сегментных регистров ;-)
    На Турбо-си вам нужно указать модель памяти и иногда указывать директивы FAR/NEAR - это работает только потому что х86 умеет прямо адресовать 1 МВ, британский PDP-11 или БК могут только 64 КБ. На УКНЦ или БК0011 такого Турбо си не было и не будет. Можно будет только добиться использования оверлеев и мудрить с виртуальными масивами - второе уверен уже не намудрят, хлопот много, медленно и очень морочно. Хунта абсолютно верно указывает на то, как программные оверлеи реально делались.

    Цитата Сообщение от SuperMax Посмотреть сообщение
    для меня интерес потерян.
    Оно и понятно, зачем Вам ББС.
    Последний раз редактировалось litwr; 05.06.2022 в 19:17.

  4. #3

    Регистрация
    25.08.2012
    Адрес
    г. Красноярск
    Сообщений
    1,245
    Спасибо Благодарностей отдано 
    343
    Спасибо Благодарностей получено 
    369
    Поблагодарили
    261 сообщений
    Mentioned
    22 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от litwr Посмотреть сообщение
    На этом бейсике когда-то АРМ сделали! Есть варианты для современных ОС, один из них называется Бренди. Если собираетесь что-то делать на ББС Микро или быстренько сделать программу под RiscOS, то этот бейсик реальная вещь. Конечно, к теме кросс-компиляция си для БК этот бейсик никакого отношения не имеет.
    давайте таки про БК или как минимум про PDP-11

    Скажите это Manwe.
    говорил конечно. но он не пишет под RT11, а я пишу ибо хочу большие диски, а не образа дискет.

    больше игр и прочего софта для БК. Кстати. не заметил почти никакого интереса к играм под RT-11 для БК - https://zx-pk.ru/threads/33794-novye-igry-dlya-bk.html - хотя даже самый первый Тетрис удалось портировать.
    я в свое время играл, но к тому времени я быстро перешел на ДВК

    На Турбо-си вам нужно указать модель памяти и иногда указывать директивы FAR/NEAR - это работает только потому что х86 умеет прямо адресовать 1 МВ, британский PDP-11 или БК могут только 64 КБ. На УКНЦ или БК0011 такого Турбо си не было и не будет. Можно будет только добиться использования оверлеев и мудрить с виртуальными масивами - второе уверен уже не намудрят, хлопот много, медленно и очень морочно. Хунта абсолютно верно указывает на то, как программные оверлеи реально делались.
    не согласен про прямую адресацию, она таки костылем сделана.

    Оно и понятно, зачем Вам ББС.
    конечно - зачем в разделе про БК писать про BBC ?

    уловил:
    1. есть BBC к которому приделали как-то непонятно сопроцессор PDP-11 и какой тоже не ясно и как это работает тем более.
    2. кто-то захотел написать компилятор СИ на PC который будет выдавать голый код без поддержки ОС или чего иного
    3. компилятор будет способен выдать код который заработает на реальном PDP-11 процессоре - в БК к примеру

    все верно ?
    Все о БК ДВК УКНЦ VAX Alpha

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

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

  5. #4

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

    По умолчанию

    Цитата Сообщение от litwr Посмотреть сообщение
    х86 умеет прямо адресовать 1 МВ
    Если именнно 8086/8088 - то не умеет. Сегментные регистры - это недоперенедоДП и как и на PDP-11 - их надо трогать, если хочешь больше 64 кб. И кстати, поскольку размер "страницы" в 4 раза меньше (16 байт против 64-ёх), то и максимальный размер памяти в четыре раза меньше (мегабайт против четырёх).

  6. #5

    Регистрация
    16.12.2014
    Адрес
    г. Ожерелье
    Сообщений
    769
    Спасибо Благодарностей отдано 
    252
    Спасибо Благодарностей получено 
    46
    Поблагодарили
    42 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от SuperMax Посмотреть сообщение
    говорил конечно. но он не пишет под RT11, а я пишу ибо хочу большие диски, а не образа дискет.
    Пишет, у него Союз-Неон.

    Цитата Сообщение от SuperMax Посмотреть сообщение
    я в свое время играл, но к тому времени я быстро перешел на ДВК
    На БК?! Изначальный код для Электроники на БК не идет, патчить надо. Что и сделал с помощью form.

    Цитата Сообщение от SuperMax Посмотреть сообщение
    уловил:
    1. есть BBC к которому приделали как-то непонятно сопроцессор PDP-11 и какой тоже не ясно и как это работает тем более.
    2. кто-то захотел написать компилятор СИ на PC который будет выдавать голый код без поддержки ОС или чего иного
    3. компилятор будет способен выдать код который заработает на реальном PDP-11 процессоре - в БК к примеру

    все верно ?
    Почти всё, только надо чуть уточнить:
    1) как работает очень даже понятно, ссылки на док были предоставлены;
    2) компиляторы есть, имеют широкую известность и солидную историю. Hoglet разобрался только как это приспособить для PDP-11 и как компоновать на голое железо.
    Цитата Сообщение от Hunta Посмотреть сообщение
    Если именнно 8086/8088 - то не умеет. Сегментные регистры - это недоперенедоДП и как и на PDP-11 - их надо трогать, если хочешь больше 64 кб. И кстати, поскольку размер "страницы" в 4 раза меньше (16 байт против 64-ёх), то и максимальный размер памяти в четыре раза меньше (мегабайт против четырёх).
    Ну тогда так и 68k не умеет. Там сегментные регистры называются адресными. Есть, конечно, на 68к и абсолютная адресация, но её практически никогда не используют. Скажите энтузиастам 68000, что там нет прямой адресации за пределами 64 КБ и Вас пошлют на Луну или ещё подальше. Конечно, адресные регистры погибче, чем сегментные, но они и место в опкоде занимают, а сегментные нет - это действительно недоделанная часть ДП.
    Базу практическти всегда на любых процах надо указывать, если адресуем больше 64 КБ. У х86 только этих базовых регистров мало. Но кругом свои "плюшки", на Арме или даже дорогущих мейнфреймах баз надо много, так как адресуют там смещения только по 4 кб. Но в большинстве архитектур регистры универсальные и это некоторое преимущество над х86 и 68к.
    Последний раз редактировалось litwr; 11.06.2022 в 09:31.

  7. #6

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

    По умолчанию

    Цитата Сообщение от litwr Посмотреть сообщение
    Ну тогда так и 68k не умеет
    Понятия не имею, что он умеет или не умеет. Я сказал именно про 8086/8088, а кто и что там у себя в гоолове за меня додумывает - это иховые проблемы

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

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

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

Похожие темы

  1. SNASM кросс ассемблер для 6502/Z80
    от drbars в разделе Программирование
    Ответов: 4
    Последнее: 25.04.2018, 01:16
  2. Кросс-компилятор бейсика для БК
    от litwr в разделе БК-0010/0011
    Ответов: 2
    Последнее: 30.03.2018, 18:03
  3. Примочка для кросс-дева
    от Alex Rider в разделе Несортированное железо
    Ответов: 5
    Последнее: 07.06.2012, 19:21
  4. Кросс-ассемблеры Z80 для Pc
    от Aprisobal в разделе Программирование
    Ответов: 16
    Последнее: 15.01.2011, 22:46
  5. кросс компилятор С для Z80
    от vitasam в разделе Программирование
    Ответов: 24
    Последнее: 04.03.2007, 18:03

Ваши права

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