Board.KolibriOS.org

Official KolibriOS board
It is currently Mon Jun 24, 2019 4:52 pm

All times are UTC+03:00




Post new topic  Reply to topic  [ 8 posts ] 
Author Message
PostPosted: Thu Sep 30, 2010 12:43 pm 
Offline

Joined: Mon Sep 24, 2007 11:11 am
Posts: 2814
Пытался прикрутить отображение png вместо кнопки меню и кнопок на панели. Жаль, что у меня туго с ассемблером :( png загружается и даже рисуется - один раз, а потом у приложения page fault. Почти уверен, все потому что, я не смог разобраться с выделением памяти в @panel.
Если не трудно, подскажите пожалуйста, куда воткнуть данные :(

Вот что было:
Code:
  dd   START       ; program start
  dd   I_END       ; program image size
  dd   0xA000       ; reguired amount of memory - 10 Kb
  dd   0xA000       ; esp
  dd   0x0,0x0       ; param, icon

......

I_END:
screen_size:
  .height dw ?
  .width  dw ?
this_slot      dd 0         ; Slot of this process
max_slot       dd 255
system_colours   system_colors ; rd 10
app_list rd 50
alt_tab_list   rd   256*2
alt_tab_list_size dd   ?
process_info_buffer  rb 1024
procinfo_for_detect  rb 1024
tictable:
  rd 256
  rb 256
detect_stack:
   rb   256
ctx_menu_stack:
panel_x_pos   rd   1
panel_y_pos   rd   1
last_active_window   dd   0
prev_active_window   dd   0
active_window_changed   dd   0
app_tab_count      dd   0
image:



А в примерах по libimg нечто вроде:

Code:
dd   start       ; program start
dd   i_end       ; program image size
dd   mem       ; reguired amount of memory
dd stacktop
dd 0x0
dd sys_path
...
i_end:
    rb 1024
stacktop:
    sys_path rb 4096
    file_name:
        rb 4096
    plugin_path:
        rb 4096
    openfile_path:
        rb 4096
    filename_area:
        rb 256
mem:


Top
   
PostPosted: Thu Sep 30, 2010 5:52 pm 
Offline
User avatar

Joined: Fri Jun 27, 2008 3:22 pm
Posts: 988
Это скорее всего не решает проблему, но после I_END принято помещать только неинициализированные данные, а инициализированные данные и код должны располагаться до I_END.


Top
   
PostPosted: Thu Sep 30, 2010 5:55 pm 
Offline
User avatar

Joined: Mon Oct 27, 2008 10:10 pm
Posts: 811
1) По идее вся область между метками i_end и mem это данные, которые в бинарник не включаются но выделяются в процессе запуска приложения
т.е. men всегда в самом конце файла
2) Перед меткой stacktop должна быть память, выделяемая для стека. Эту область обычно ставят в середину между метками i_end и mem. Иногда и в самый конец отрезка, тогда mem и stacktop совпадают
3) Если sys_path был установлен в 0, значит он в программе не использовался, это указатель по которому будет записан путь к открытому файлу.


Я не системный программист, может я в чем-то ошибаюсь. Так я это понимаю.


Top
   
PostPosted: Thu Sep 30, 2010 7:31 pm 
IgorA wrote:
2) Перед меткой stacktop должна быть память, выделяемая для стека. Эту область обычно ставят в середину между метками i_end и mem. Иногда и в самый конец отрезка, тогда mem и stacktop совпадают

Все правильно сказал, лишь поясню - стек он растет из старших адресов к младшим. Следовательно начальная метка всегда в конец области ставится. В том числе и стеки потоков в 51 функции. Я сам в свое время этого не знал (лет 7 назад, пока товарищ Trans на первом русском форуме Menuet глаза не раскрыл) и накалывался.


Top
   
PostPosted: Thu Sep 30, 2010 8:09 pm 
Offline
Kernel Developer

Joined: Wed Mar 08, 2006 6:25 pm
Posts: 3952
Максимальная длина пути в Колибри 1024 байта включая завершающий ноль.


Top
   
PostPosted: Thu Sep 30, 2010 8:17 pm 
Serge wrote:
Максимальная длина пути в Колибри 1024 байта включая завершающий ноль.

Стоп - я чего-то не знаю? Кто-то урезал специально? Вроде как планировалось столько, сколько есть помещать, а то это получается только файлы и директории 4-й вложенности при максимальной длине имени.
По крайней мере я все свои буферы на 4 Кб делаю про запас.


Top
   
PostPosted: Fri Mar 13, 2015 12:33 pm 
Offline
Designer
User avatar

Joined: Thu Jan 25, 2007 3:33 pm
Posts: 5053
Привет!

Изначально это была готическая буква М, смотри тут первый скрин http://kolibri-n.org/inf/let_it_fly/index

Сейчас Гугл выдает такие картинки https://www.google.com.ua/search?q=menu ... uetos+logo

_________________
Через тернии к звездам


Top
   
PostPosted: Fri Mar 13, 2015 12:41 pm 
Offline
Mentor/Kernel Developer
User avatar

Joined: Fri Jun 30, 2006 9:01 am
Posts: 1247
Dear Leency, You are talking to a copy-bot.
viewtopic.php?f=26&t=89&p=833&#p833

_________________
"Any intelligent fool can make things bigger, more complex, and more violent. It takes a touch of genius -- and a lot of courage -- to move in the opposite direction." Albert Einstein


Top
   
Display posts from previous:  Sort by  
Post new topic  Reply to topic  [ 8 posts ] 

All times are UTC+03:00


Who is online

Users browsing this forum: No registered users and 3 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Limited