Начинающий

Applications development, KoOS API questions
  • 1. посмотри эту тему. viewtopic.php?f=9&t=426
    2. В большинстве случаев разрабтка программ для Коос ведется из под виндовс, т.к. это удобно, в коос не так развит сервис. Нет некоторых возможностей, которые есть в виндовс. После отладки программы на эмуляторе, окончательная проверка на реальной системе.
    3. поставсь себе svn клиент http://kolibrios.org:3000/i-want-svn , далее путь programms\develop\examples\ или так http://www.kolibrios.org/?p=SVN&kind=di ... p/examples
    тут располжены примеры простых программа под коос на подобии Hello World. Обучаться ты должен самостоятельно посмотри примеры программ в этой папке.

    Code: Select all

    ;заголовок приложения
    use32                      ; транслятор, использующий 32 разрядных команды
        org 0x0                ; базовый адрес кода, всегда 0x0
        db 'MENUET01'       ; идентификатор исполняемого файла (8 байт)
        dd 0x1           ; версия формата заголовка исполняемого файла
        dd start         ; адрес, на который система передаёт управление
                           ; после загрузки приложения в память
        dd i_end        ; размер приложения
        dd i_end        ; Объем используемой памяти, для стека отведем 0х100 байт 
        dd i_end+0x100 ; расположим позицию стека в области памяти, сразу за телом программы. Вершина стека в диапазоне памяти, указанном выше
        dd 0x0,0x0                ; указатель на строку с параметрами.
                     ;    если после запуска неравно нулю, приложение было
                     ;    запущено с параметрами из командной строки
    
                     ;    указатель на строку, в которую записан путь,
                     ;    откуда запущено приложение
    ;Область кода
    align 4
    start:                          ;Точка входа в программу
            mov  eax,40          ;установить маску для ожидаемых событий
            mov  ebx,0x25        ;система будет реагировать только на сообщение о перерисовке,нажата кнопка, определённая ранее, событие от мыши (что-то случилось - нажатие на кнопку мыши или перемещение; сбрасывается при прочтении)
            int 0x40
    red_win:
            call draw_window     ;первоначально необходимо нарисовать окно
    still:                       ;основной обработчик 
            mov  eax,10          ;Ожидать события
            int 0x40            ;ожидать событие в течение 2 миллисекунд
      
            cmp al,0x1    ;если изменилось положение окна
            jz  red_win
            cmp al,0x3    ;если нажата кнопка то перейти
            jz  button
            jmp still    ;если ничего из перечисленного то снова в цикл
    button:
             or eax,-1       ;в eax,-1 - 5 ,байтов у нас же только 3  выйти 
             int 0x40         ;далее выполняется выход из программы
    
    draw_window:                ;рисование окна приложения
        mov eax,12                ;в регистр внести значение = 12
        mov ebx,1                 ;присвоить 1
        int 0x40
    
        xor  eax,eax              ;обнулить eax
        mov  ebx,50*65536+180     ;[координата по оси x]*65536 + [размер по оси x]
        mov  ecx,30*65536+100     ;[координата по оси y]*65536 + [размер по оси y]
        mov  edx,0xb3AABBCC        ; color of work area RRGGBB,8->color gl
        mov  edi,hed
        int 0x40                 ;нарисовать окно приложения
           
        mov eax,12                ;Функция 12 - начать/закончить перерисовку окна.
        mov ebx,2                 ;Подфункция 2 - закончить перерисовку окна.
        int 0x40
        ret
    
    hed db 'Hello World',0        ;заголовок приложения
    align 16
    rb 0x100 ; резерв памяти для стека.
    i_end:
    Last edited by <Lrz> on Sun Mar 22, 2009 7:45 am, edited 1 time in total.
  • Могу ли я писать на асме ,а потом чтобы кто нибудь эту программу ну точнее код портировал на операционную систему колибри, если возможно можно аську или мыло данного человека, Просто понимаете нет документации по созданию пограмм для колибри ,так как я посмотрел самый простой пример создание сообщение Hello Word ,код был раза в 4 больше моего если кто может взятся и объеснить начинающему по какому принципу строится программа на ассемблере в данной операционной системе и попросту объяснить основы то я буду очень блвгодарен
  • Я вижу некоторое недопонимание...
    Самое лучше образование - это самообразование.Тут ни кто не будет учить тебя, строить с тобой уроки, разбирать что-либо. Т.к. все как правило работают или учаться, и просто не до тебя. Итак, тебе нужно найти самоучитель для Доса, и поразбираться с ним на ассемблере. там все чуть проще. Может для этих целей подойти книжка по ассмеблеру Калашникова (была замечена тут http://www.cwer.ru/assembler_eto_prosto ). после того как ты освоишь 30 уроков от самого 0 до написания оболочки аля нортон коммандер, тебе многие вещи станут более понятны... ;)
  • Ассемблер хорошо, а Си-- тоже неплохо :)
    Там всё куда проще. Если интересно, брать тут download/file.php?id=242
    Там с примерами и маньюалом.
    Из хаоса в космос
  • никогда не пробовал писать под Виндой, пишу свой код исключительно в Колибри...
    Автор, код длиннее, потому, что в Досе, ты только выводишь функцией стоку на экран, а тут ты ещё и рисуешь окно, формируешь поток, определяешь реакцию проги на мышь, клаву, и проч... оживляешь кнопку с крестиком..;) сам код вывода текста на экран помещается в одну строчку кода всего, и при , этом обладает намного большей функциональностью, чем досовский код... стукни в Асю, вечерами иногда там бываю, поговорим...:)
    *****:
    ;дух машины, мой бубен сильнее твоей тупости

    *****:
  • Code: Select all

    include 'macros.inc'
    include 'debug.inc'
    MEOS_APP_START
    CODE
       print 'Hello world!'
       mcall -1
    DATA
    UDATA
    MEOS_APP_END
    
    Ребята, не сбивайте человека полумерками, ассемблер - отлично, C/C++ - хорошо, C-- только людей пугать.
  • После просмотра программ: checkbox, radiobutton, editbox мне пришла идея создавать коды для этих (и возможно других) элементов управления, используя графический интерфейс.
    Я пишу программу на BC++5.02 (извините за старье) для Win. Эта программа создает fasm код для Kolibri (на основе ранее введенных кусков кода, но некоторые части генерируются автоматом).
    Возможно мне будет нужна помощь. Если кому интересно пишите (исходники пока не ложу в связи с сыростью програмки).
    Привожу экран программы, пока ели как генерируется код для элементов check_box:
    Attachments
    kol_fasm.gif
    kol_fasm.gif (32.87 KiB)
    Viewed 15699 times
  • Если по компонентам, то это скорее всего ко мне )). А какие компоненты еще существуют у тебя? Можно более подробно?
  • тоже когда то делал контролы...TButton, TCheckBox, TProgressBar, TRadioButton, TStatusBar и малые зачатки TWebBrowser
    Attachments
    viewer.rar (20.42 KiB)
    Downloaded 470 times
  • <Lrz>
    А какие компоненты еще существуют у тебя? Можно более подробно?
    Существует пока только check_box, но в ближайшее время хочу добавить edit и option.
    Идея программы такова: есть разные блоки (текстовые, блоки элементов, структур, переменных, ...). Из этих блоков создается как-бы макет программки. При запуске можно редактировать этот макет (добавлять, удалять контролы, менять их свойства ...). Потом каждый блок по своим правилам обрабатывается и в результате получается рабочий код программы.
    Т. е. получается что-то наподобие AppExpert (для BC++) или MFC AppWizard (VC++). А дальше программист сам дописывает нужные ему действия, и тут связь файлов *.asm с моей программой прерывается.
    Veliant
    Очень интересно будет посмотреть твои примеры, может их я тоже когда-нибудь добавлю к себе. (А пока программа находиться на начальной стадии разработки и про включение многих элементов речь пока не идет)
  • IgorA wrote:Идея программы такова: есть разные блоки (текстовые, блоки элементов, структур, переменных, ...). Из этих блоков создается как-бы макет программки. При запуске можно редактировать этот макет (добавлять, удалять контролы, менять их свойства ...). Потом каждый блок по своим правилам обрабатывается и в результате получается рабочий код программы.
    Очень похоже на то, как это делается в HiAsm (прошу не считать это рекламой, хотя и выглядит именно так) :)
    Может объеденим усилия?
  • Все компоненты включены в библиотеку box_lib.obj, как я понял, ей уже присвоен статус системной, т.е. имеет смысл сделать поддержку библиотеки, и работать в дальнейшем с ней. А вообще, что-то подобное в свое время писал мистификатор, нужно поднять ссылки, у него была программа Denvy на Delphi написана /* поправьте меня если я ошибся с названием */.
  • <Lrz>,
    ты прав... но там вроде альфа(или бета) версия... мистификатор пропал...

    тут забирать: Denvy.7z
    тема: viewtopic.php?f=9&t=352
  • s1n
    посмотрел ту программку, что-то похожее делаю и я
    компоненты включены в библиотеку box_lib.obj
    если что-то будет включено в систему, то я его включу
    Выдам пробный экземпляр моей программки:
    Attachments
    kol_edit.7z (237.04 KiB)
    Downloaded 472 times
  • Who is online

    Users browsing this forum: No registered users and 5 guests