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
Are you planning to code in FASM, or some other assembler/compiler ?

http://wiki.kolibrios.org/wiki/Writing_ ... _KolibriOS
http://diamond.kolibrios.org/hll/hll.htm

Welcome btw ;)

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
>Кроме того, есть онлайн-версия в составе...
Предупреждаю: эта ссылка временная и скоро может накрыться :D

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).