Board.KolibriOS.org

Official KolibriOS board
It is currently Thu Apr 02, 2020 12:39 pm

All times are UTC+03:00




Post new topic  Reply to topic  [ 1138 posts ]  Go to page Previous 161 62 63 64 6576 Next
Author Message
PostPosted: Mon Dec 16, 2013 7:52 pm 
Offline

Joined: Wed May 18, 2005 7:27 pm
Posts: 1001
Типа html application или прочие из Список языков описания пользовательских интерфейсов... Настройка компиляторов C++ описана в статье http://kolibri-n.org/inf/hll/hll.php . Косилка написана на C++ http://websvn.kolibrios.org/listing.php ... e6b85b8744


Top
   
PostPosted: Thu Dec 26, 2013 12:09 pm 
Offline

Joined: Thu Jan 17, 2013 12:23 pm
Posts: 4
mixator wrote:
Wildwest wrote:
Во-первых, посмотрите исходники уже готовых программ http://websvn.kolibrios.org/listing.php ... Kolibri+OS
Во-вторых, на каком языке собираетесь писать?

писать собираюсь на плюсах. Хочу сделать маленькое подтверждение или опровержение своей идеи. Идея состоит в концептуальной возможности использования интерпретатора html-подобного языка для построения интерфейсов
ПС. О qt слышал, это немного не то.

Что то вроде htmlayout?


Top
   
PostPosted: Wed Jan 22, 2014 11:33 am 
Offline
Designer
User avatar

Joined: Thu Jan 25, 2007 3:33 pm
Posts: 5106
Надо бы тему что-то вроде "Сниппеты". Раз такой нет, напишу сюда, чтоб не потерялось.

Установить прозрачный (невидимый) курсор. Автор Марио
Code:
set_new_cursor_skin:
mcall   68,12,32*32*4
mov   ecx,eax
mcall   37,4,,2
mov   ecx,eax
mcall   37,5
ret

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


Top
   
 Post subject: Re:
PostPosted: Tue Feb 18, 2014 8:55 pm 
Offline
Kernel Developer
User avatar

Joined: Thu Sep 03, 2009 1:52 pm
Posts: 1621
0CodErr wrote:
Хочу нарисовать окно 200x25 пикселей с зелёной рамкой, а внутри полностью красное.
Code:
      xor eax, eax
      mov ebx, 200
      mov ecx, 25
      mov edx, 00FF0000h
      mov edi, 0000FF00h
      mov esi, 01FF0000h
      int 64

Но нижняя область не закрашивается.
Image
Как сделать, чтобы окно полностью закрашивалось?

В r4572 должно полностью закрашиваться. Там код ядра по непонятным мне загадочным причинам считал, что если клиентская область окна типа I меньше 5 пикселей, то и рисовать её не надо. Документация как показали раскопки svn при этом отражала состояние на момент до r114, когда заголовок рисовался на 4 пикселя вперехлёст с рабочей областью, так что до r114 тоже должно было полностью закрашиваться, документацию я обновила.

_________________
Сделаем мир лучше!


Top
   
PostPosted: Tue Feb 18, 2014 9:23 pm 
Offline
Kernel Developer
User avatar

Joined: Thu Sep 03, 2009 1:52 pm
Posts: 1621
0CodErr wrote:
Хотелось уточнить, что всё-таки делает функция 18.10?
То, что написано в Wiki:
Quote:
Сворачивает собственное окно.

или же то, что сказал art_zh:
Quote:
18.10 предполагает, что у активного приложения и окно - активное.
Его и сворачивают.


При нажатии на кнопку минимизации вызывается она же?

Запускаем приложение, использующее OpenDialog(TinyPad, HeEd, ...).
Запускаем из этого приложения OpenDialog.
Пытаемся свернуть окно самой программы нажатием на кнопку минимизации, но после нажатия отпускаем кнопку мыши не сразу, а немного ждём.
В этот момент может свернуться окно OpenDialog, а не окно самой программы.

И с кнопкой закрытия такая же ситуация.

Функция 18.10 сворачивает активное окно. Я поправила документацию.

_________________
Сделаем мир лучше!


Top
   
PostPosted: Sat Mar 29, 2014 2:24 am 
Offline

Joined: Tue Apr 12, 2011 11:19 pm
Posts: 1152
Подскажите в чем проблема. В общем не собирается ругаясь на запрещенную инструкцию, хотя взял от из архива с Job, который вполне успешно с ним собирается.


Attachments:
TASK.7z [7.35 KiB]
Downloaded 79 times

_________________
я лишь учусь
Top
   
PostPosted: Sat Mar 29, 2014 2:54 am 
Offline
Kernel Developer

Joined: Sun Feb 10, 2013 12:37 pm
Posts: 2329
include 'proc32.inc'

_________________
Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!


Top
   
PostPosted: Sat May 31, 2014 3:30 pm 
Offline

Joined: Sun Oct 30, 2011 6:43 pm
Posts: 1499
Вот такой код:
Code:
ORG 0
BITS 32
; -------------------------- ;
STACK_SIZE equ 256
; -------------------------- ;
PAGE_SIZE  equ 4096
MEMORY_ALLOC_SIZE equ PAGE_SIZE * 32
; -------------------------- ;
        db     'MENUET01'
        dd     1
        dd     START
        dd     END
        dd     END + STACK_SIZE
        dd     END + STACK_SIZE
        dd     0
        dd     0
; -------------------------- ;
START:
; heap.initialize:
        mov    eax, 68
        mov    ebx, 11
        int    64
        mov    ecx, MEMORY_ALLOC_SIZE
        xor    edx, edx
        div    ecx
        mov    edx, eax ; save (HeapSize / MEMORY_ALLOC_SIZE) to edx
; memory.allocate
        inc    ebx
.next:
        mov    eax, 68
        int    64
        dec    edx
        jnz    .next
        or     eax, -1
        int    64
END:
Я запустил несколько копий полученной программы:
Spoiler: Show
Image
Но ведь у меня нет столько памяти, почему так?
Code:
0x759A1000 + 
0x7ADA1000 +
0x7A821000 +
0x7C1E1000 +
0x7A661000 +
0x7A101000 +
0x792C1000 +
0x791E1000 = 0x3CDD48000


Top
   
PostPosted: Sat May 31, 2014 10:58 pm 
Offline
Kernel Developer

Joined: Sun Feb 10, 2013 12:37 pm
Posts: 2329
Потому что в Колибри очень хитрый менеджер памяти. Запрос ф.68 лишь "протокол о намерениях", а при первом физическом обращении происходит выделение запрашиваемой страницы. Это такой хитрый финт позволяющий экономить память. Более подробно узнавать у Serge.

_________________
Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!


Top
   
PostPosted: Tue Jul 15, 2014 11:17 pm 
Offline
User avatar

Joined: Tue Jul 15, 2014 11:10 pm
Posts: 4
Всем привет!

Познакомился с этой операционной системой, почитал мануалы, решил написать под нее что-нибудь. Суть моего обращения в том, что процесс разработки для меня очень неудобен.

Я делаю так: пишу в fasmw на Windows, копирую на флэшку, в qemu крутится Kolibri, кидаю файлы программы туда, компилирую, пакую, запускаю. При каких-либо ошибках ищу их в винде, потом снова копирую, перекидываю, компилирую, и так далее.

Если пишу код в Kolibri, то непременно забываю копировать его на флэшку после отладки, и при выключении системы все, естественным образом, стирается. Это, разумеется, мои проблемы с памятью, но, даже при условии ее нормального функционирования, это было бы не очень удобно.

Научите меня, пожалуйста, как правильно делать? Или есть только такие варианты?

_________________
Wiki KolibriOS | Список системных функций | Веб-версия SVN KolibriOS | Блог KolibriOS на Хабре


Top
   
PostPosted: Wed Jul 16, 2014 2:12 am 
Offline
User avatar

Joined: Mon Nov 19, 2012 5:22 pm
Posts: 458
Хм... а если в qemu создать жёсткий диск и на нём хранить свои труды? Потом только на флешку скинуть, если в Винде исходники вдруг понадобятся. Я в VurtualBox'е так и делаю - грузиться виртуалка с дискеты, а на жёстком диске (ну эмулируемом, разумеется) хранятся исходники.

_________________
Чем больше сыра, тем больше в нём дыр. Чем больше дыр, тем меньше в нём собственно сыра. Значит, чем больше сыра, тем меньше сыра!


Top
   
PostPosted: Wed Jul 16, 2014 6:28 am 
Offline
User avatar

Joined: Tue Jul 15, 2014 11:10 pm
Posts: 4
Спасибо. Как-то мне вопрос сразу глупым казаться стал, вроде не первый день с виртуальными машинами работаю, а про жесткий диск не подумал. Ну, бывает...

_________________
Wiki KolibriOS | Список системных функций | Веб-версия SVN KolibriOS | Блог KolibriOS на Хабре


Top
   
PostPosted: Wed Jul 16, 2014 4:48 pm 
Offline
User avatar

Joined: Tue Jul 15, 2014 11:10 pm
Posts: 4
Сейчас копаюсь в файловой системе, для программы нужно получить список файлов и папок в данной директории (что-то вроде ls).
Я так понял, что мне нужна функция 70.1, появилось несколько вопросов по ходу:

// Ссылка на Wiki по функции: http://bit.ly/1nwcFmb

Quote:
Формат информационной структуры:

Это обязательно struc, или можно просто метку поставить и все объявить?

Quote:
+4: dword: индекс начального блока (считая с 0)

Я правильно понял, что здесь мы указываем, с какого байта нужно начать запись ответа в буфер?

Quote:
+8: dword: поле флагов:

То есть в простейшем случае можно просто dd 0 поставить?

Quote:
+16 = +0x10: dword: указатель на буфер, куда будут записаны данные, размер буфера должен быть не меньше 32 + [+12]*560 байт

Понимаю что это совсем просто, но до меня не доходит. Так сойдет?:
Code:
; structure definition start
...
dd 50 ; blocks number
dd output_buffer ; result buffer
...
; structure definition end
output_buffer rb 32 + 50 * 560


// Ссылка на Wiki по функции: http://bit.ly/1nwcFmb

Пытался сам разобраться, посмотрел исходники OpenDialog (кажется самый простой файловый менеджер в системе), но и с ним не разобрался.

Подскажите, правильно ли я понял wiki. Было бы идеально ткнуть меня носом в то место, где все попроще описано (проще чем в OpenDialog), может пример по этой конкретной функции у кого-нибудь есть?

Спасибо.

_________________
Wiki KolibriOS | Список системных функций | Веб-версия SVN KolibriOS | Блог KolibriOS на Хабре


Top
   
PostPosted: Wed Jul 16, 2014 7:17 pm 
Offline
User avatar

Joined: Fri Jun 27, 2008 3:22 pm
Posts: 988
Пример попроще - CP


Top
   
PostPosted: Wed Jul 16, 2014 7:49 pm 
Offline
User avatar

Joined: Tue Jul 15, 2014 11:10 pm
Posts: 4
Спасибо, буду разбираться

_________________
Wiki KolibriOS | Список системных функций | Веб-версия SVN KolibriOS | Блог KolibriOS на Хабре


Top
   
Display posts from previous:  Sort by  
Post new topic  Reply to topic  [ 1138 posts ]  Go to page Previous 161 62 63 64 6576 Next

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