Page 1 of 1
Hello, World!
Posted: Mon Jun 07, 2010 11:33 pm
by Levsha128
Здравствуйте!
Сразу оговорюсь что искал подобные темы, но не нашел и поэтом решил создать эту. Если есть подобные(я в этом уверен на 99%) прошу ткунть носом =)
Вообщем то хотелось бы начать писать программы под это замечательную ось(just for fun, ессно), но как бы не хватает вводного тутора. Есть опыт программинга под маздай (делфи/с++/флеши, пхп-шки и т.д) и под линух (с++) ну и под мк AVR ( в основном Си и немного асма) так что думаю я быстро освоюсь =)
Кстати, просмотрел листинги ядра и разочаровался- маловато комментов, нет я понимаю не на каждую же строку лепить, но все же это асм и тут нужно расжевывать =)
Кстати, я совместно с командой программистов с форума
http://programmersforum.ru/ выпускаю журнал, вот сайт
http://procoder.info/
С уважением, Алексей.
UPD:
Hi, my name is Alex.
I'm programmer. for Windows(delphi/cpp), for linux (c++) and for AVR microcontrollers.
Are you planning to code in FASM, or some other assembler/compiler ?
only for AVR microcontrollers
oh sh*t, my english is very bad ><
Re: Hello, World!
Posted: Mon Jun 07, 2010 11:53 pm
by hidnplayr
Re: Hello, World!
Posted: Tue Jun 08, 2010 12:33 am
by IgorA
Code: Select all
use32
org 0x0
db 'MENUET01' ;идентиф. исполняемого файла всегда 8 байт
dd 0x1
dd start
dd i_end ; размер приложения
dd mem
dd stacktop
dd 0x0
dd cur_path
include 'macros.inc' ;подключаем необходимые макросы
align 4
start: ;начало программы
mcall 48,3,sc,sizeof.system_colors ;получить системные цвета
mcall 40,0x25 ;маска ожидаемых событий
red_win:
mcall 12,1 ;начало прорисовки окна
xor eax,eax
mov ebx,50*65536+250
mov ecx,30*65536+150
mov edx,[sc.work]
or edx,0x33000000
mov edi,hed
mcall ;вывод окна на экран, при повторном вызове игнорируется
mcall 12,2 ;конец прорисовки окна
still: ;главный цикл
mcall 10
cmp al,0x1 ;изменилось положение окна ?
jz red_win
cmp al,0x3 ;нажали кнопку ?
jz button
jmp still
button:
; mcall 17 ;получить код нажатой кнопки
; cmp ah,1
; jne still
.exit:
mcall -1 ;выход из программы
hed db 'Минимальная программа',0
sc system_colors ;структура с системными цветами
i_end: ;конец кода
rb 1024
stacktop:
cur_path:
rb 4096
mem:
примерно так выглядит минимальная программа, но размер программы может быть еще меньше, если убрать структуру sc system_colors
Re: Hello, World!
Posted: Tue Jun 08, 2010 6:28 pm
by diamond
Примеры программирования есть в SDK, который можно скачать с главной страницы
http://kolibrios.org. В SDK же есть и выпуски
электронного журнала KolibriOS, в первом выпуске которого есть пример HelloWorld'а с обильными комментариями того, что происходит. (Кроме того, есть онлайн-версия в составе DocPack'а
Nasarus'а -
http://kolibrios-planet.ru.orange.intob ... ocPack.htm.)
Re: Hello, World!
Posted: Tue Jun 08, 2010 7:17 pm
by Levsha128
Ссылки на журналы не работают
http://kolibrios.org/files/e-zine/000/0 ... -16_win.7z
http://kolibrios.org/files/e-zine/000/0 ... -16_win.7z
http://kolibrios.org/files/e-zine/000/0 ... -29_win.7z
Поэтому я и написал, где журнал можно найти.
Ну,дык, я написал что бы сообщить сообществу, которое может потом подправит =)
P.S. Хелло ворлд как бы освоил потихоньку, хотя пришлось покапашиться в мануалах по флату =)
Re: Hello, World!
Posted: Tue Jun 08, 2010 7:18 pm
by diamond
Поэтому я и написал, где журнал можно найти.
Re: Hello, World!
Posted: Tue Jun 08, 2010 9:37 pm
by Nasarus
>Кроме того, есть онлайн-версия в составе...
Предупреждаю: эта ссылка временная и скоро может накрыться
Re: Hello, World!
Posted: Wed Jun 09, 2010 6:04 pm
by Levsha128
Нубский вопрос: что это за команда mcall ? Просто call- это понятно, а вот mcall...
mcall это макрос
Блин, во я идиот =) Слона та и не заметил)))
Спасибо)
Re: Hello, World!
Posted: Wed Jun 09, 2010 6:14 pm
by Mario
mcall это макрос - позволяет более удобней пользоваться функциями ядра, улучшает читабельность кода. Его структуру можно посмотреть а macros.inc
Re: Hello, World!
Posted: Thu Jun 10, 2010 1:48 pm
by Levsha128
Еще один очень нубский вопрос: как правильно копировать файлы на виртуальную машину?
Машина- VirtualBox, ось- Ubuntu 10.04
Re: Hello, World!
Posted: Thu Jun 10, 2010 1:53 pm
by Nasarus
>Еще один очень нубский вопрос: как правильно копировать файлы на виртуальную машину?
В случае с Колибри - только с помощью образов дисков. Используй утилиты наподобие WinImage, PowerISO, MagicISO и т.д., а потом подключай их к вирт. машине.
Re: Hello, World!
Posted: Thu Jun 10, 2010 2:10 pm
by Mario
Levsha128 wrote:Еще один очень нубский вопрос: как правильно копировать файлы на виртуальную машину?
Машина- VirtualBox, ось- Ubuntu 10.04
Я пользуюсь Qemu, образы использую IMG, а все операции из хостовой ОС через mount
Re: Hello, World!
Posted: Sat Mar 23, 2013 11:31 am
by Kopa
Есть такой wiki ресурс реализации примеров разных алгоритмов на разных языках, в том числе и асмах
Rosetta_Code
Но как ни странно, примеров на Fasm там нет.
Поэтому, для популяризации Колибри и программирования на Fasm можно привести, кто сможет, решения из списка задач ресурса на Fasm (for Kolibri).