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

User Tag List

Страница 2 из 6 ПерваяПервая 123456 ПоследняяПоследняя
Показано с 11 по 20 из 53

Тема: Определение текущего адреса

  1. #11

    Регистрация
    24.07.2008
    Адрес
    г. Курган
    Сообщений
    2,062
    Спасибо Благодарностей отдано 
    10
    Спасибо Благодарностей получено 
    17
    Поблагодарили
    17 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Alex Rider Посмотреть сообщение
    А вот решение третьей проблемы мне не ведомо - по адресу #007c ret быть не обязан, как и по любому другому адресу.
    Если сначала сохранить значение с 4000h потом туда положить код 'RET' вызвать, восстановить? Да. Если код пересекается с 4000h, то не получится. Но это уже какой то вариант.

    ---------- Post added at 20:01 ---------- Previous post was at 20:00 ----------

    Цитата Сообщение от Alex Rider Посмотреть сообщение
    Знает ли кто-нибудь способ определения текущего адреса в любых условиях без дополнительных ограничений для вызывающего кода?
    Без ограничений имхо никак. Придётся чем-то жертвовать.

    Скрытый текст

    Profi 5.06 1024K 12Mhz (кварц на 24), палитра, COM-порт, часы, hdd, covox, программатор
    ZX-Spectrum +3, ZX-Spectrum +2B, ZX-Spectrum +2, ZX Spectrum 48, ZX Spectrum 48+
    ZX Evolution Rev B.
    Color 48 + Beta Disk Interface +FDD+YM2149F
    Орель-08БК
    Pentagon-48 (недоссобранный кем-то)
    Pentagon-128 (полуубитый)
    Кворум-128 (в ремонте)
    Магик-05 (в ремонте)
    Robotron 1715
    Корвет ПК8020 и ПК8010
    Amstrad CPC 464
    Amstrad CPC 6128
    [свернуть]

  2. #12

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

    По умолчанию

    Если программа релоцируемая и загружена по произвольному адресу
    то ее ктото загрузил
    а если загрузил то пусть адрес и передает

    если передать не хочет
    то значит уже загрузил и настроил
    значит можно шарится уже внутри программы

    ---------- Post added at 18:15 ---------- Previous post was at 18:14 ----------

    а вот эти вот

    "я что то откудато загрузил но вот как загрузил совершенно не понимаю
    и где оно работает тоже не знаю и знать не хочу но сделайте мне хорошо
    "

    нам тут не нужны
    Последний раз редактировалось GriV; 26.07.2012 в 13:07.
    С уважением,
    Jerri / Red Triangle.

  3. #13

    Регистрация
    24.07.2008
    Адрес
    г. Курган
    Сообщений
    2,062
    Спасибо Благодарностей отдано 
    10
    Спасибо Благодарностей получено 
    17
    Поблагодарили
    17 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от jerri Посмотреть сообщение
    ее ктото загрузил
    А если её кто-то загрузил, то он и может программу настроить на адрес загрузки. Программа должна иметь определенной формат с таблицей для пересчёта адресов. Все эти технологии давным давно придуманы и реализованы.

    Скрытый текст

    Profi 5.06 1024K 12Mhz (кварц на 24), палитра, COM-порт, часы, hdd, covox, программатор
    ZX-Spectrum +3, ZX-Spectrum +2B, ZX-Spectrum +2, ZX Spectrum 48, ZX Spectrum 48+
    ZX Evolution Rev B.
    Color 48 + Beta Disk Interface +FDD+YM2149F
    Орель-08БК
    Pentagon-48 (недоссобранный кем-то)
    Pentagon-128 (полуубитый)
    Кворум-128 (в ремонте)
    Магик-05 (в ремонте)
    Robotron 1715
    Корвет ПК8020 и ПК8010
    Amstrad CPC 464
    Amstrad CPC 6128
    [свернуть]

  4. #14

    Регистрация
    25.01.2005
    Адрес
    Miass, Chelyabinsk region
    Сообщений
    4,094
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    2
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Vadim Посмотреть сообщение
    Если код пересекается с 4000h, то не получится.
    даже если саму программу положили по #4000, то все получится (если #4000 самый первый адрес озу; можно так же юзать самый последний, лишь бы не попортить стек/таблицу прерываний (но что они делают по этим адресам?))

  5. #15

    Регистрация
    24.07.2008
    Адрес
    г. Курган
    Сообщений
    2,062
    Спасибо Благодарностей отдано 
    10
    Спасибо Благодарностей получено 
    17
    Поблагодарили
    17 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от psb Посмотреть сообщение
    даже если саму программу положили по #4000
    Да, получится, но не получится, если программа будет чуть выше. Мне считать было лень. Можно высчитать адрес, когда точно не получится. Последний байт - то же идея правильная. А стек там может быть. Когда делаем ld sp,0. при первом push или прерывании мы заюзаем последние 2 ячейки ОЗУ. FFFF и FFFE.

    ---------- Post added at 23:02 ---------- Previous post was at 22:54 ----------

    Кстати, возможен и такой вариант:
    ei
    halt
    di
    dec sp
    dec sp
    pop hl
    получаем адрес команды di

    Скрытый текст

    Profi 5.06 1024K 12Mhz (кварц на 24), палитра, COM-порт, часы, hdd, covox, программатор
    ZX-Spectrum +3, ZX-Spectrum +2B, ZX-Spectrum +2, ZX Spectrum 48, ZX Spectrum 48+
    ZX Evolution Rev B.
    Color 48 + Beta Disk Interface +FDD+YM2149F
    Орель-08БК
    Pentagon-48 (недоссобранный кем-то)
    Pentagon-128 (полуубитый)
    Кворум-128 (в ремонте)
    Магик-05 (в ремонте)
    Robotron 1715
    Корвет ПК8020 и ПК8010
    Amstrad CPC 464
    Amstrad CPC 6128
    [свернуть]

  6. #16

    Регистрация
    07.02.2008
    Адрес
    г. Рязань
    Сообщений
    2,928
    Спасибо Благодарностей отдано 
    37
    Спасибо Благодарностей получено 
    124
    Поблагодарили
    44 сообщений
    Mentioned
    5 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от jerri Посмотреть сообщение
    а вот эти вот

    я что то откудато загрузил но вот как загрузил совершенно не понимаю
    и где оно работает тоже не знаю и знать не хочу но сделайте мне хорошо

    нам тут не нужны
    Это для новичков же все. Это про грабер мой. Придется писать инструкции и отвечать на лишние вопросы потом, поскольку планируется, что мой скомпиленный код будет тупо инкбиниться и зваться с параметраями по адресу, куда заинкбинили. При этом про координаты и номер спрайта автор вызывающего кода будет помнить автоматически, а пот адрес, который зовет - ... не знаю... Но выхода, похоже, нет.
    По поводу #4000 - работа с графикой идет, не дело точками мелькать на экране.
    По поводу #FFFx - там часто живет ISR, да и вообще кто его знает что там у автора. Хотя, надо подумать.
    Так что остается только разочаровывающие меня варианты - либо преинициализация, либо передача адреса при вызове.

    ---------- Post added at 21:55 ---------- Previous post was at 21:47 ----------

    Подумал. Этот вариант:

    Цитата Сообщение от psb Посмотреть сообщение
    начал читать, тоже подумал про pop hl:jp (hl), но только чтобы самому куда-то эти 2 команды положить:

    ld hl,#xxxx ; opcodes of pop+jp
    ld (#4000),hl
    call #4000
    ; hl=$
    ; тут можно еще и содержимое #4000 восстановить
    плюс этот вариант:

    Цитата Сообщение от Vadim Посмотреть сообщение
    мы заюзаем последние 2 ячейки ОЗУ. FFFF и FFFE.
    Должны сработать, если запретить прерывания на время вызова. Проверю как руки дойдут.

    Всем спасибо!

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

  8. #17

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

    По умолчанию

    Цитата Сообщение от Alex Rider Посмотреть сообщение
    Но выхода, похоже, нет.
    По поводу #4000 - работа с графикой идет, не дело точками мелькать на экране.
    архитектура большенства процов включает СТЕК! суть которого "заранее выделенный сегмент памяти для временного хранения переменных (рабочая область)" так вот на стеке код создавай а не в экране

  9. #18

    Регистрация
    25.01.2005
    Адрес
    Miass, Chelyabinsk region
    Сообщений
    4,094
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    2
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от bigral Посмотреть сообщение
    так вот на стеке код создавай а не в экране
    код в студию!

  10. #19

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

    По умолчанию

    bigral, да не вопрос

    call (sp) и никаких проблем
    С уважением,
    Jerri / Red Triangle.

  11. #20

    Регистрация
    26.03.2008
    Адрес
    Питкяранта
    Сообщений
    1,822
    Спасибо Благодарностей отдано 
    274
    Спасибо Благодарностей получено 
    122
    Поблагодарили
    95 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    А может через калькулятор ПЗУ?
    Как-нибудь так:
    RST #28 ; вызов калькулятора
    DEFB #38 ; команда end calc
    LD DE,7
    DEC SP
    DEC SP
    POP HL
    ADD HL,DE ; в HL адрес следующей команды (NOP)
    NOP

    Вроде-бы в любом ПЗУ должен быть обработчик калькулятора (иначе комп уже не совместим со спековыми программами.)

Страница 2 из 6 ПерваяПервая 123456 ПоследняяПоследняя

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

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

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

Похожие темы

  1. Расчет адреса точки на экране
    от Ares в разделе Программирование
    Ответов: 10
    Последнее: 26.07.2012, 17:46
  2. Адреса 00H-100H
    от Helloween в разделе Оси
    Ответов: 14
    Последнее: 10.05.2011, 14:26
  3. FDD - адреса
    от AlexBel в разделе MSX
    Ответов: 1
    Последнее: 11.05.2009, 10:45
  4. Определение Turbo-FM
    от Максагор в разделе Программирование
    Ответов: 21
    Последнее: 28.09.2007, 20:29
  5. Определение номера дисковода
    от goodboy в разделе Программирование
    Ответов: 2
    Последнее: 22.06.2005, 01:54

Ваши права

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