Board.KolibriOS.org

Official KolibriOS board
It is currently Mon Sep 21, 2020 4:15 pm

All times are UTC+03:00




Post new topic  Reply to topic  [ 75 posts ]  Go to page 1 2 3 4 5 Next
Author Message
PostPosted: Thu Feb 22, 2007 2:15 pm 
Offline
Kernel Developer
User avatar

Joined: Mon Nov 28, 2005 8:00 pm
Posts: 1601
Вот, статью написал:
http://diamondz.land.ru/hll/hll.htm
Вариант пока предварительный, могут быть изменения (в том числе и по заявкам читателей).

_________________
Ушёл к умным, знающим и культурным людям.


Top
   
 Post subject:
PostPosted: Thu Feb 22, 2007 3:22 pm 
Offline
User avatar

Joined: Thu May 19, 2005 4:43 pm
Posts: 896
ОЧЕНЬ ПОЛЕЗНАЯ статья.


Top
   
 Post subject:
PostPosted: Thu Feb 22, 2007 4:05 pm 
Offline
Kernel Developer

Joined: Wed Mar 08, 2006 6:25 pm
Posts: 3952
Статья хорошая. Я бы добавил ещё часть по Watcom С но он пока в зачаточном состоянии.


Top
   
 Post subject:
PostPosted: Wed Feb 28, 2007 6:40 pm 
Offline

Joined: Thu Jan 25, 2007 4:45 pm
Posts: 135
Отличная статья! спасибо.


Top
   
 Post subject:
PostPosted: Wed Apr 18, 2007 12:22 pm 
Не нашел магического pe2kos и хидеров в статье :)


Top
   
 Post subject:
PostPosted: Wed Apr 18, 2007 5:53 pm 
Offline
Kernel Developer
User avatar

Joined: Mon Nov 28, 2005 8:00 pm
Posts: 1601
Они не в статье, они в прилагаемом к статье архиве, ссылка на который дана в самой статье.


Top
   
 Post subject:
PostPosted: Sat Jun 23, 2007 8:16 pm 
Offline

Joined: Wed May 18, 2005 7:27 pm
Posts: 1001
http://board.flatassembler.net/topic.ph ... sc&start=0
тут есть пример программы на Ада и файлы для gnat


Top
   
 Post subject:
PostPosted: Mon Aug 13, 2007 6:57 pm 
Offline

Joined: Mon Aug 13, 2007 6:47 pm
Posts: 62
Статья просто замечательная. Огромное спасибо! Только что возился с написанием "Хеллоуворлда" на Visual C++ для Kolibri :-).

Только вот заметил небольшую ошибочку (в главе "Среды Visual C++ 6, C++ из Visual Studio .NET/2005"). Если написать
Code:
kos_WriteTextToWindow(30,10,8,0,(char*)string,0);

то мы ничего не увидим, ибо последним аргументом (длиной строки) мы передаём 0. Если же передать реальную длину строки, то всё работает:
Code:
kos_WriteTextToWindow(30,10,8,0,(char*)string,strlen(string));


Top
   
 Post subject:
PostPosted: Thu Aug 16, 2007 11:11 am 
Offline
Kernel Developer
User avatar

Joined: Mon Nov 28, 2005 8:00 pm
Posts: 1601
Code:
// функция 4
void kos_WriteTextToWindow(
   Word x, Word y,
   Byte fontType,
   Dword textColour,
   char *textPtr,
   Dword textLen
   );

Третий параметр соответствует старшему байту ecx в функции 4 ( http://diamondz.land.ru/klbr_doc/04.htm ). Установленный 3-й бит (маска 8 ) означает "выводить ASCIIZ-строку", для которой переданная длина (последний аргумент) игнорируется (вычисляется автоматически). Так что строку мы увидим (по крайней мере, начиная с версии K0600).


Top
   
 Post subject:
PostPosted: Mon Aug 20, 2007 6:23 am 
Offline

Joined: Mon Aug 13, 2007 6:47 pm
Posts: 62
Может быть я что-то не так делаю, но...
Code:
kos_WriteTextToWindow(270,200,8, 0xFFFFFF ,"K  O  S  I  L  K  A",0);

не дает ровным счётом ничего, в отличие от
Code:
kos_WriteTextToWindow(270,200,8, 0xFFFFFF ,"K  O  S  I  L  K  A",19);


Проверял на ядре ревизии #605


Top
   
 Post subject:
PostPosted: Mon Aug 20, 2007 10:48 am 
Offline
Site Founder
User avatar

Joined: Sun Aug 08, 2004 8:55 am
Posts: 690
Мне кажется, что 3-й параметр - тип шрифта (0 или 1). Может попробовать написать
Code:
kos_WriteTextToWindow(270, 200, 0, 0x80FFFFFF , "K  O  S  I  L  K  A", 0);


Top
   
 Post subject:
PostPosted: Mon Aug 20, 2007 9:06 pm 
Offline
User avatar

Joined: Fri May 18, 2007 11:11 pm
Posts: 125
Dron2004
Если
Quote:
Третий параметр соответствует старшему байту ecx в функции 4

то должнобы быть так:
Code:
kos_WriteTextToWindow(270,200,0x80, 0xFFFFFF ,"K  O  S  I  L  K  A",0);


Top
   
 Post subject:
PostPosted: Thu Aug 23, 2007 3:56 pm 
Offline
Kernel Developer
User avatar

Joined: Mon Nov 28, 2005 8:00 pm
Posts: 1601
В тексте статьи ошибка: на самом деле должно быть не 8, а 0x80, как отметил Alver. Кстати, в исходниках к статье (vc/hello.cpp) приведён правильный вариант.


Top
   
 Post subject:
PostPosted: Fri Aug 24, 2007 1:11 pm 
Offline

Joined: Mon May 01, 2006 10:12 pm
Posts: 349
Пытаюсь обьявить функцию как stdcall, но mingw начинает ругаться
Quote:
error: syntax error before '*' token
error: `stdcall' declared as function returning a function

Добавляю пару дефайнов
Code:
#  ifdef GNUC
#    define stdcall __stdcall
#    define cdecl __cdecl
#  else
#    define stdcall __attribute__ ((__stdcall))
#    define cdecl  __attribute__ ((__cdecl))
#  endif

ругаться начинает по другому
Quote:
error: syntax error before "__attribute__"
.

Не знаю в чем дело... Как ни странно в menuetlibc ниразу не пробегает слово stdcall, cdecl и подобные им.


Top
   
 Post subject:
PostPosted: Fri Aug 24, 2007 3:01 pm 
Offline

Joined: Mon May 01, 2006 10:12 pm
Posts: 349
Разобрался... если сделать дефайн GNUC то всё компилируетя


Top
   
Display posts from previous:  Sort by  
Post new topic  Reply to topic  [ 75 posts ]  Go to page 1 2 3 4 5 Next

All times are UTC+03:00


Who is online

Users browsing this forum: Yandex [Bot] 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:  
cron
Powered by phpBB® Forum Software © phpBB Limited