Отвечу сразу обоим.
Не может резидентная часть "состоять из команд JP 0, JP 3, JP 6 и т.д., которые изменяются в ходе настройки основной программы" и вот почему. Я там кратко упомянул (потом дополню), что задача резидентной части не просто переход, но и обращение к менеджеру памяти для впечатывания нужной странички, той, в которой лежит данная библиотека. Поэтому, там придётся много чего использовать. И fastcall не выйдет. Опять же ограничение - стек должен быть в НЕПЕРЕКЛЮЧАЕМОЙ странице на момент обращения к библиотеке.
Там ещё не дописана часть про "мягкое связывание". Если кто внимательно читал, то заметит, что "мягкое связывание" не включает в себя пока что механизма автоматического переключения страниц. Поэтому я его хочу усложнить немного, но обеспечить так же возможность прозрачного вызова функций.
Тут выбор простой - или "все предельно быстро" или "всё стандартно и по возможности быстро".
Если заставлять программиста самого щелкать страничками все время, то смысл механизма подгружаемых модулей теряется как таковой.
- - - Добавлено - - -
Да пусть сколько угодно передают. Кто ж им мешает. Например, в альтернативном наборе, если хотят. Я могу пообещать его не использовать в менеджере памяти и своих процедурах поддержки подгружаемых модулей.Кроме программистов на Си встречаются ещё программисты на ассемблере, которые передают параметры в регистрах
Если немного философии-болтологии, то так. Как бы нам ни хотелось - любой ЯВУ это прежде всего стандарт. А стандарт - это рамки и ограничения. Зато и возможности быстро соединять разные модули воедино. Собственно, отсутствие стандартов на порты, системные вызовы и прочее и убило в своё время спектрум. Точнее убило возможности логичного расширения его аппаратной и программной архитектуры.
Поэтому для "программистов на ассемблере" - остаётся ассемблер. Пусть хоть jump через stack себе там засовывают по ret на call. Но если они хотят, чтобы их модуль использовали другие, то им не сложно будет сделать интерфейсную часть, совместимую со стандартом - например забрать параметры со стека или отдать их в нужном регистре.
- - - Добавлено - - -
Я не против кооперации. Но есть проблема - мой абсолютно непредсказуемый и невменяемый график. Я вот несколько месяцев вообще ни за что не брался. Загруз был полный. Появилось время - за недельку по вечерам накидал описалово и доработал модульность. Кстати, описалово я больше для себя делаю. Пока код пишешь вроде все логично. А как возмешься его объяснять - другим и себе - сразу начинают косяки всплывать, которые не заметил.
Я к тому, что мне сложно обещать что-то сделать в срок. Сегодня время есть - завтра трах-бах и я полетел на другой конец нашей необъятной Родины по наитию начальства.Или привалило работы, что до 22.00 сидишь и в 23.00 домой приходишь.
- - - Добавлено - - -
Для Shiny
О каком "тулчейне венды" речь? Если о SDCC-NOINIT - то https://www.cygwin.com/ должен пойти.





Или привалило работы, что до 22.00 сидишь и в 23.00 домой приходишь.
Ответить с цитированием