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

User Tag List

Страница 7 из 10 ПерваяПервая ... 345678910 ПоследняяПоследняя
Показано с 61 по 70 из 99

Тема: Вызов функций через RST

  1. #61
    Veteran Аватар для Sinus
    Регистрация
    29.01.2005
    Адрес
    Belarus, Grodno
    Сообщений
    1,279
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    1
    Поблагодарили
    1 сообщение
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от axor
    Мужики, может подведем некую черту по теме?
    Напоминаю, она звучала как "Вызов функций через RST".
    Желательно "разложить" по полочкам все предложенные варианты. Ели этого никто не сделает, я попытаюсь это сделать сам, но, к сожалению, не скоро.
    По видимому придётся это делать тебе.
    А я повторюсь- табличка JP в начале ПЗУ - наиболее оптимальный вариант как по размеру пямяти, так и по скорости.
    [target] [zemu] [js8x] [pouet] KAY-1024, 5''FDD, 3''FDD, HDD

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

  3. #62
    Master
    Регистрация
    20.01.2005
    Адрес
    Россия, Вологда
    Сообщений
    957
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Sinus
    По видимому придётся это делать тебе.
    А я повторюсь- табличка JP в начале ПЗУ - наиболее оптимальный вариант как по размеру пямяти, так и по скорости.
    Видимо так и будет, ежели никто не опередит или каждый из предлагавших не сформулирует свою мысль четко и внятно.
    axor/Perspective
    http://abzac.retropc.ru/

  4. #63
    Activist Аватар для fk0
    Регистрация
    18.02.2005
    Адрес
    St. Petersburg
    Сообщений
    415
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Sinus
    По видимому придётся это делать тебе.
    А я повторюсь- табличка JP в начале ПЗУ - наиболее оптимальный вариант как по размеру пямяти, так и по скорости.
    Для ПЗУ -- да, согласен. Но я считаю, смысла ориентироваться
    на ПЗУ как на что-то большее, чем тест системы и начальный
    загрузчик -- НЕТ. Ибо места мало и немодифицируемо. Если
    нужна именно твердотельная память: загрузчик в ПЗУ, остальное
    на compact flash. А тут уже другие методы могут быть. Но я
    опять же считаю, CALL через массив JP xxx -- наиболее оптимально
    по памяти и скорости. Прямой CALL выигрывает всего 10
    тактов но неудобен жутко как для загрузки, так и для создания
    загрузочного файла вообще (как в ALASM список адресов для
    патча составить?) Речь про загрузку по абсолютному адресу
    в т.ч. Через RST никакого смысла кроме тормозов нет вообще.
    То есть смысл может быть и есть, но только там где нужен
    ИМЕННО МАШИННЫЙ КОД, ни в коем случае не интерпретатор,
    и нужна жуткая экономия памяти. Таких случаев, с ходу и не
    назову. Там где нужно сэкономить память больше толку будет
    от интерпретируемого языка (хоть бы и бейсика), от FORTH может
    быть.

  5. #64
    Vitamin C++ Аватар для Vitamin
    Регистрация
    14.01.2005
    Адрес
    Таганрог, Россия
    Сообщений
    4,259
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    84
    Поблагодарили
    36 сообщений
    Mentioned
    7 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от axor
    Мужики, может подведем некую черту по теме?
    Напоминаю, она звучала как "Вызов функций через RST".
    Желательно "разложить" по полочкам все предложенные варианты. Ели этого никто не сделает, я попытаюсь это сделать сам, но, к сожалению, не скоро.
    Ну раз требують %)
    В виде своих десяти копеек предлагаю прямые call на адреса функций системы, патчуемые (во словечко!) при загрузке программы.
    Отличия от кернельного метода (набор jp по фиксированным адресам)
    - 2 байта на адрес точки входа (которые меняются от версии к версии) против 3 байтов
    - 2 байта на каждый call в настраиваемой программе. для последующей настройки. в дальнейшем эта память может использоваться под свои нужды (можно не считать)
    - несколько сотен(?) байт на настройщик (проигрыш)
    Выигрываем 10 тактов на выполнение каждого вызова и проигрываем несколько сотен(?) тактов на настройщик (один раз за всю работу программы)

  6. #65
    Master
    Регистрация
    20.01.2005
    Адрес
    Россия, Вологда
    Сообщений
    957
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от fk0
    (как в ALASM список адресов для
    патча составить?)
    Это сделать можно, Alco где-то об этом писал и пример был. А может и не Alco это вовсе был. Тема была про релоцируемость.
    axor/Perspective
    http://abzac.retropc.ru/

  7. #66
    Veteran Аватар для jtn
    Регистрация
    15.01.2005
    Адрес
    Kievska Rus
    Сообщений
    1,149
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Vitamin
    В виде своих десяти копеек предлагаю прямые call на адреса функций системы, патчуемые (во словечко!) при загрузке программы.
    это может делать сама прога в случае с джампами. т.е. патчить себя взяв значения оттуда.
    т.е. метод со списком джампов универсальней

  8. #67
    Vitamin C++ Аватар для Vitamin
    Регистрация
    14.01.2005
    Адрес
    Таганрог, Россия
    Сообщений
    4,259
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    84
    Поблагодарили
    36 сообщений
    Mentioned
    7 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от fk0
    как в ALASM список адресов для
    патча составить?
    макросы для адресозависимых команд и все...

  9. #68
    Vitamin C++ Аватар для Vitamin
    Регистрация
    14.01.2005
    Адрес
    Таганрог, Россия
    Сообщений
    4,259
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    84
    Поблагодарили
    36 сообщений
    Mentioned
    7 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от jtn
    это может делать сама прога в случае с джампами. т.е. патчить себя взяв значения оттуда.
    т.е. метод со списком джампов универсальней
    ага. и на всякий случай еще сделать поддержку rst %)

  10. #69
    Activist Аватар для fk0
    Регистрация
    18.02.2005
    Адрес
    St. Petersburg
    Сообщений
    415
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от axor
    Это сделать можно, Alco где-то об этом писал и пример был. А может и не Alco это вовсе был. Тема была про релоцируемость.
    Компиляция в два адреса и сравнение. Здесь грабели подложены:

    Код:
      типичный код:
    
        LD E, char
        LD D, FONT / 256
        ...
    Всё релоцируемое -- обязательно двухбайтовое. Да и вопрос в
    том, как потом отличить CALL xxx на библиотеку от адресов,
    сменившихся в результате сдвига начального адреса? Одни
    вопросы.

    Но дело ведь в том, что есть программы с абсолютным адресом
    загрузки без всяких релоцируемостей. Им это всё -- лишь ненужное
    усложнение. При вызове через JP xxxx никакой релоцируемости
    изобретать не нужно вовсе. Просто берётся и "в лоб" ассемблируется.
    После загрузки, адреса списка JP xxxx изначально были известны,
    остаётся заменить номера функций на действительные адреса. Местоположение действительных адресов тоже известно, в случае
    ПЗУ они (адреса) сами расположены по предопределённым заранее
    абсолютным адресам. Тривиальный код получается.

  11. #70
    Activist Аватар для fk0
    Регистрация
    18.02.2005
    Адрес
    St. Petersburg
    Сообщений
    415
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Vitamin
    макросы для адресозависимых команд и все...
    Для ALASM -- да. Мне не нравится. Сильно список адресов для
    патча большой получается. И потом в таком варианте не реализуется
    функция-фильтр (когда в JP xxxx подсовывается её адрес вместо
    действительного).

Страница 7 из 10 ПерваяПервая ... 345678910 ПоследняяПоследняя

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

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

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

Похожие темы

  1. Подключение клона "Байт" к ТВ через RGB.
    от Surfin_Bird в разделе Изображение
    Ответов: 6
    Последнее: 11.03.2013, 16:59
  2. Ответов: 6
    Последнее: 09.12.2007, 22:02
  3. Ответов: 8
    Последнее: 01.05.2006, 01:38
  4. Принтер через 580ВВ55
    от Sonic в разделе Несортированное железо
    Ответов: 14
    Последнее: 08.06.2005, 09:26

Ваши права

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