IgorA wrote:Но слева самая маленькая ветка по цвету выделяется из основной гаммы. Она красного цвета, а все остальные ветви зеленые
А, это из-за формулы цвета
Code: Select all
eax = RGB(127, Abs(Angle), Depth * 24)
Сейчас глубина 11
Если глубину задавать меньше, чем 11, то ветка будет зелёная. Просто вот эти значения
выходят за пределы 255, здесь по идее нужна арифметика с насыщением.
Например, ветка будет зелёной, если сделать так(добавлены сравнения
.If GREATER?)
Code: Select all
mov eax, Angle ;
test eax, eax ;
.If SIGN? ;
neg eax ;
.EndIf ;
cmp eax, 255 ;
.If GREATER?
mov eax, 255
.EndIf
shl eax, 8 ; eax = RGB(127, Abs(Angle), Depth * 24)
or eax, 127 SHL 16 ;
mov ebx, Depth ;
imul ebx, 24 ;
cmp ebx, 255 ;
.If GREATER?
mov ebx, 255
.EndIf
or eax, ebx ;
Invoke DrawLine, X1, Y1, X2, Y2, eax
Leency wrote:Надо залить на СВН и добавить в дистр (можно бинарник).
Можно собирать на сервере с помощью
JWASM — это форк товарища
XVilka http://board.kolibrios.org/viewtopic.ph ... 806#p64806
Сейчас на сервере с помощью
JWASM собирается программа
RUN http://board.kolibrios.org/viewtopic.php?f=9&t=3584 вот она на
SVN http://websvn.kolibrios.org/listing.php ... f773176113
Можно сделать аналогично.
Leency wrote:но зачем так много тулзов?
Странный вопрос, однако
Теоретически можно было бы без
objcopy, но у
ld есть проблема с
OUTPUT_FORMAT("binary"), хотя, возможно, линуксовый
ld такой проблемы не имеет(но всё равно). Ещё можно было бы воспользоваться Ваткомовским линкером, но он вряд ли есть на сервере.
Ассемблер нужен для компиляции
asm-файла.
Линкер нужен для линковки с библиотекой
KolibriOS.lib.
Так что, ничего лишнего.