Вверх ↑
Этот топик читают: Гость
Ответов: 16
Рейтинг: 0
#61: 2011-07-06 15:27:23 ЛС | профиль | цитата
Netspirit писал(а):
Я просто не в курсе, а анимационная (или хотя бы обычная) отладка работает внутри FTCG-контейнера стандартного пакета?

Сейчас специально проверю.
Netspirit писал(а):
Да и не забывай: в любом случае в стандартном пакете отлаживается исполнимый файл, а не код FTCG.

Я же и пишу о идее отдельного интерпретатора FTCG-скрипта в виде исполняемого файла, на который "кидается" текст скрипта в режиме отладки.
карма: 0

0
Ответов: 4621
Рейтинг: 746
#62: 2011-07-06 15:36:49 ЛС | профиль | цитата
Lehij73 писал(а):
Я же и пишу

... на что я же пишу, что отладка кода FTCG и конечного кода - это две разные отладки . Первая - бесполезная.
карма: 26

0
Ответов: 16
Рейтинг: 0
#63: 2011-07-06 19:42:09 ЛС | профиль | цитата
Netspirit по Вашей логики и отладчик для машинного кода в пакете "Window" не нужен. Ведь для Delphi существуют сторонние отладчики.
Что касается пошаговой отладки FTCG внутри контейнера в пакете "Window", то я, как и обещал, проверил. Отладка отсутствует. Но это не означает, что эмуляция функций и значений внутри FTCG-контейнера отсутствует, это означает лишь не нереализованность функции отладки в данном случае.
Вот, например, как описан метод For, в одноименном элементе FTCG реализованный в пакете "Window":

func doFor
fvar(old,step_code,end_num,start_num)
lang(i:int)

end_num = End
start_num = Start

lng.decl_loc_var(i,'integer')
if(isndef(IncludeEnd))
end_num = end_num && ' - 1'
end

Только этот блок отвечает за кодогенерацию

println('for ', i, ' := ', start_num, ' to ', end_num, ' do')
lng.begin()
event(onEvent, i)
lng.end()

И конец

event(onStop)
end

карма: 0

0
Ответов: 16884
Рейтинг: 1239
#64: 2011-07-06 20:11:21 ЛС | профиль | цитата
Lehij73 писал(а):

code_24565.txt
code_24566.txt
сам то пробовал проверить выложенное ?
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 16
Рейтинг: 0
#65: 2011-07-07 00:06:38 ЛС | профиль | цитата
Tad писал(а):
сам то пробовал проверить выложенное ?

Уже отредактировал. Извините!
------------ Дoбавленo в 00.06:
Скорей всего я погорячился и принял желаемое за действительное, и никакой эмуляции тут не происходит. Извините, и не стибайтесь над моей некомпетентностью, пожалуйста. Но отладка кода из Хайсма для моего пакета очень нужна, и я буду продолжать ломать голову над тем как ее сделать, не отвлекая людей на форуме от их дел.
Еще раз извините!
карма: 0

0
Ответов: 4621
Рейтинг: 746
#66: 2011-07-07 11:32:39 ЛС | профиль | цитата
Lehij73 писал(а):
и не стибайтесь над моей некомпетентностью

Ты тоже не обижайся, никто тебя ни в чем не упрекает. Просто пытаемся прийти к верному решению. Делай свой пакет, напиши десяток работающих компонентов, глядишь, и сам найдёшь правильный путь.
карма: 26

0
Разработчик
Ответов: 4697
Рейтинг: 426
#67: 2011-07-07 12:42:31 ЛС | профиль | цитата
Lehij73 писал(а):
В далеком будущем Хаймс может "научится" компилировать в машинный код и стать полноправным языком программирования.

Очень в этом сомневаюсь, HiAsm изначально задумывался автором как среда программирования, а не язык, и все утверждения, что HiAsm - язык программирования - некорректны. И если HiAsm все-таки станет ЯП, то это уже с вероятностью более, чем полной, будет называться не HiAsm
Netspirit писал(а):
Я просто не в курсе, а анимационная (или хотя бы обычная) отладка работает внутри FTCG-контейнера стандартного пакета?

А ты попробуй Не работает. А почему, потому что выделение компонента Debug и нажатие клавиш Ctrl+F вызывает его исходный код, а дальнейшую отладку посвязно исполняют функции _hi_onEvent() => какого фига он будет работать в FTCG-контейнере, если там для компонента Debug нет исходного кода и нет функций, вызывающих остановку выполнения? Да, там еще и ID связей нужны, чтоб HiAsm знал что подсвечивать, которые тоже по хитрому попадают в структуру THI_Event... В общем, это все крупный геморрой, ребята.
карма: 10
0
Ответов: 4621
Рейтинг: 746
#68: 2011-07-07 13:04:03 ЛС | профиль | цитата
[offtop]
Assasin писал(а):
А ты попробуй. Не работает

Я в этом и не сомневался, просто лень было проверять, вот и предложил Lehij73, пусть сам бы удостоверился [/offtop]
карма: 26

0
Гость
Ответов: 17029
Рейтинг: 0
#69: 2011-07-09 15:05:28 правка | ЛС | профиль | цитата


Редактировалось 7 раз(а), последний 2021-06-24 05:30:58
карма: 0

0
Ответов: 4621
Рейтинг: 746
#70: 2011-07-11 11:43:02 ЛС | профиль | цитата
Ты бы выложил структуру блоков своего пакета. Если количество nop фиксировано, то может подойти такой вариант. В компоненте EntryPoint делается подобная структура блоков:
Код


#hws
gvar (BLK_MAIN, BLK_NOP1, BLK_NOP2, BLK_NOP3) // И т.д.: BLK_NOP4, BLK_NOP5, BLK_NOP6 ...

BLK_MAIN = 'main'
block.reg(BLK_MAIN) // Основной блок

BLK_NOP1=block.reggen() // Регистрируем блоки под "nop"
BLK_NOP2=block.reggen()
BLK_NOP3=block.reggen()

block.select(BLK_MAIN)
event (onStart)

block.select(BLK_MAIN)

if (not isempty(BLK_NOP1)) // Если какой-то компонент записал что-то в блок BLK_NOP1, значит, печатаем его
block.copyhere(BLK_NOP1)
else
println('nop')
end
if (not isempty(BLK_NOP2))
block.copyhere(BLK_NOP2)
else
println('nop')
end
if (not isempty(BLK_NOP3))
block.copyhere(BLK_NOP3)
else
println('nop')
end
// И т. д., по количеству nop-ов

// Чтобы поместить текст, например, вместо 2-го nop-а, компонент делает
// block.select(BLK_NOP2)
// println('rjmp TIM_OVF0 ; Обработка переполнения таймера 0')
карма: 26

0
Гость
Ответов: 17029
Рейтинг: 0
#71: 2011-07-11 14:13:38 правка | ЛС | профиль | цитата


Редактировалось 7 раз(а), последний 2021-06-24 05:30:58
карма: 0

0
Гость
Ответов: 17029
Рейтинг: 0
#72: 2011-07-11 14:15:13 правка | ЛС | профиль | цитата


Редактировалось 8 раз(а), последний 2022-09-20 04:18:48
карма: 0

0
Ответов: 4621
Рейтинг: 746
#73: 2011-07-11 14:34:13 ЛС | профиль | цитата
Извиняюсь, это я наверное с синтаксисом немножко напутал (негде проверить). Попробуй так:

#hws
if (not (block.isempty(BLK_NOP1)))
карма: 26

0
Гость
Ответов: 17029
Рейтинг: 0
#74: 2011-07-11 14:42:15 правка | ЛС | профиль | цитата


Редактировалось 8 раз(а), последний 2022-09-20 04:18:47
карма: 0

0
Гость
Ответов: 17029
Рейтинг: 0
#75: 2011-07-11 14:49:26 правка | ЛС | профиль | цитата


Редактировалось 8 раз(а), последний 2022-09-20 04:18:47
карма: 0

0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)