Board.KolibriOS.org

Официальный форум KolibriOS
Текущее время: Вс окт 22, 2017 7:33 am

Часовой пояс: UTC+03:00




Начать новую тему  Ответить на тему  [ 99 сообщений ]  На страницу Пред. 13 4 5 6 7
Автор Сообщение
 Заголовок сообщения: Re: Названия системных функций
СообщениеДобавлено: Пн янв 04, 2016 9:44 am 
Не в сети
Mentor/Kernel Developer
Аватара пользователя

Зарегистрирован: Чт мар 26, 2015 5:16 pm
Сообщения: 1191
Ну так делайте, я в высокоуровневых языках вообще не разбираюсь. Берёте названия из KOSfuncs.inc, удаляете префикс, подфункции через точку (или не обязательно), выбираете макросы или функции и делаете KOSfuncs.h.
viewtopic.php?f=33&p=63699#p63491


Вернуться к началу
 Заголовок сообщения: Re: Названия системных функций
СообщениеДобавлено: Пн янв 04, 2016 12:15 pm 
Не в сети

Зарегистрирован: Сб ноя 14, 2015 11:15 am
Сообщения: 299
Вот «набросал» как пример-черновик первых пять функций:
uKOSFunc.pas:
Спойлер: Показать
unit uKOSFunc;
interface

type TkfColor= record R,G,B:Word; end; // Будет ли такое ?!
type TkfTime= record H,M,S:Word; end; // Будет ли такое ?!
// в interface процедуры пока не вписывал!!!
implementation

//SF_TERMINATE_PROCESS=-1
procedure TerminateProcess; begin end;

//SF_CREATE_WINDOW=0 ; define and draw the window
procedure CreateWindow(
x,y:Word; SizeX,SizeY:Word;
// КООРДИНАТЫ и размер
WindowColor:Cardinal;
// mainAreaColour ?! - Цвет //или всё таки WindowColor:TkfColor
WindowStyleX,WindowStyleY:Byte;
// mainAreaType ?! в sysfuncr стиль окна вхожа в цвет * edx = 0xXYRRGGBB, где: * Y = стиль окна:
// думаю правильно делать отдельно! т.е. цвет отдельно color, стиль отдельно StyleWindow
HeadColor:Cardinal;
// цвет заголовка //или всё таки WindowColor:TkfColor и вот опять же надо разделять со стилями
HeadStyleX,HeadStyleY:Byte;
// headerType ?!
FrameColor:Cardinal
// borderColour?! цвет рамки //или всё таки FrameColor:TkfColor
); begin end;

// SF_PUT_PIXEL=1 ; draw pixel to the window
procedure PutPixel(
x,y:Word;
// координаты
Color:Cardinal
// цвет
); begin end;

//Функцию 2 предлагаю "разбить" на две функции, считаю что так будет удобней например
// в циклах ожидания нажатия GetKeyStatus и после нажатия опрос кода самой клвиши
// GetKey
//SF_GET_KEY=2 ; get code of the pressed key
Function GetKeyStatus:Boolean;begin end;
Function GetKey:Byte;begin end;

//SF_GET_SYS_TIME=3
Function GetSysTime:Cardinal;begin end;
// или GetSysTime:TkfTime; ?

//SF_DRAW_TEXT=4 ДОРАБОТАТЬ !!!
procedure DrawText(x,y:Word;Color:Cardinal;fontType:Byte;t:string);
begin end;

//SF_SLEEP=5
procedure Sleep(Value:Cardinal); begin end; // ; pause process

end.

Тем кто не умеет и не хочет читать поскакалевские файлы, вот «перевод» программой «Delphi2Cpp»,
файл uKOSFunc.h:
Спойлер: Показать
#ifndef uKOSFuncH
#define uKOSFuncH


#include <System.hpp>


struct TkfColor;
struct TkfTime;




struct TkfColor {
WORD R, G, B;
}; // Будет ли такое ?!




struct TkfTime {
WORD H, M, S;
}; // Будет ли такое ?!
// в interface процедуры пока не вписывал!!!


#endif // uKOSFuncH

...и файл файл uKOSFunc.cpp:
Спойлер: Показать
#include <vcl.h>
#pragma hdrstop

#include "uKOSFunc.h"



//SF_TERMINATE_PROCESS=-1


#include <System.hpp>


typedef unsigned char unsignedchar;
typedef unsigned int unsignedint;



void __fastcall TerminateProcess( )
{
}

//SF_CREATE_WINDOW=0 ; define and draw the window



void __fastcall CreateWindow( WORD x, WORD y, WORD SizeX, WORD SizeY,
// КООРДИНАТЫ и размер
unsignedint WindowColor,
// mainAreaColour ?! - Цвет //или всё таки WindowColor:TkfColor
unsignedchar WindowStyleX, unsignedchar WindowStyleY,
// mainAreaType ?! в sysfuncr стиль окна вхожа в цвет * edx = 0xXYRRGGBB, где: * Y = стиль окна:
// думаю правильно делать отдельно! т.е. цвет отдельно color, стиль отдельно StyleWindow
unsignedint HeadColor,
// цвет заголовка //или всё таки WindowColor:TkfColor и вот опять же надо разделять со стилями
unsignedchar HeadStyleX, unsignedchar HeadStyleY,
// headerType ?!
unsignedint FrameColor
// borderColour?! цвет рамки //или всё таки FrameColor:TkfColor
)
{
}

// SF_PUT_PIXEL=1 ; draw pixel to the window



void __fastcall PutPixel( WORD x, WORD y,
// координаты
unsignedint Color
// цвет
)
{
}

//Функцию 2 предлагаю "разбить" на две функции, считаю что так будет удобней например
// в циклах ожидания нажатия GetKeyStatus и после нажатия опрос кода самой клвиши
// GetKey
//SF_GET_KEY=2 ; get code of the pressed key


bool __fastcall GetKeyStatus( )
{
bool result = false;
return result;
}


unsignedchar __fastcall GetKey( )
{
unsignedchar result = 0;
return result;
}

//SF_GET_SYS_TIME=3



unsignedint __fastcall GetSysTime( )
{
unsignedint result = 0;
return result;
}
// или GetSysTime:TkfTime; ?

//SF_DRAW_TEXT=4 ДОРАБОТАТЬ !!!


void __fastcall DrawText( WORD x, WORD y, unsignedint Color, unsignedchar fontType, String t )
{
}

//SF_SLEEP=5



void __fastcall Sleep( unsignedint Value )
{
} // ; pause process


Возникающие вопросы и проблемы:
* «CreateWindow» может оказаться что есть такая процедура в каком-то ЯВУ например в том же BS6 помоему она есть. Думаю нужны приставки к имени процедур. Думаю, сами приставки должны быть в верблюддауне, например «kCreateWindow” или «kpCreateWindow” или «kfCreateWindow”, не очень то важно какая именно приставка, но должна быть короткой из одного или двух символов.

* Параметры процедур должны быть разнотипные?... Byte, Word, DWord ?... или все параметры DWord ? Если разнотипные то, какие иммено типы должны быть? Byte, Word, DWord ? Хватит ? Или еще какие-то должны применяться ?

* Будем ли утверждать свои типы? Например type TkfColor= record R,G,B:Word; end; ?

* Нужно внимательно изучить и обработать функцию 4, procedure DrawText. К слову. в файле kosSyst.cpp их две: void kos_WriteTextToWindow(Word x,Word y, Byte fontType, Dword textColour, char *textPtr, Dword textLen) и void kos_WriteTextToWindow_internal (Dword pos, Dword font, const char *textPtr, Dword textLen )


Вернуться к началу
 Заголовок сообщения: Re: Названия системных функций
СообщениеДобавлено: Пн янв 04, 2016 9:53 pm 
Не в сети
Mentor/Kernel Developer
Аватара пользователя

Зарегистрирован: Чт мар 26, 2015 5:16 pm
Сообщения: 1191
Цитата:
может оказаться что есть такая процедура в каком-то ЯВУ
И что? Процедуры не в языке, а в библиотеках. Зачем подключать библиотеку с API от другой ОС?


Вернуться к началу
 Заголовок сообщения: Re: Названия системных функций
СообщениеДобавлено: Пн янв 04, 2016 9:56 pm 
Не в сети

Зарегистрирован: Сб ноя 14, 2015 11:15 am
Сообщения: 299
Pathoswithin писал(а):
И что? Процедуры не в языке, а в библиотеках. Зачем подключать библиотеку с API от другой ОС?

Ну да ладно об этом!...
Другие замечания будут ?


Вернуться к началу
 Заголовок сообщения: Re: Названия системных функций
СообщениеДобавлено: Чт янв 07, 2016 2:01 pm 
Не в сети

Зарегистрирован: Сб ноя 14, 2015 11:15 am
Сообщения: 299
В общем, вот с 1-16 функции, паскалевский(дельфийский) модуль. Переводчик Delphi2Cpp почему-то не захотел переводить, выдаёт ошибку, я не вникал какую и почему. Пока модуль-"пустышку" буду писать на под паскаль (дельфи), после видно будет. Пока надо бы утвердить сами процедуры с входящими и возвращаемыми параметрами, реализация их потом.
Хотя как я посмотрю, никому уже никакого дела нет до этой темы! :-(
Ну да ладно!... утвержу сам себе!... :-) раз никому до этого нет никакого дела! :-(

Вложение:
uKOSFunc.pas [6.73 КБ]
36 скачиваний


Вернуться к началу
 Заголовок сообщения: Re: Названия системных функций
СообщениеДобавлено: Пн янв 11, 2016 7:29 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Пн окт 27, 2008 10:10 pm
Сообщения: 750
Предлагаю обновить документацию в файле sysfuncr.txt . Если не будет замечаний на кину прикрепленный файл на svn.


Вложения:
sysfuncr.txt [297.84 КБ]
41 скачивание
Вернуться к началу
 Заголовок сообщения: Re: Названия системных функций
СообщениеДобавлено: Пн янв 11, 2016 10:58 pm 
Не в сети

Зарегистрирован: Ср май 18, 2005 7:27 pm
Сообщения: 1001
чего-то нехватает.......

посмотри внимательно все изменения файла хотя бы за последний год, я вот посмотрел, когда делал дайджест http://habrahabr.ru/company/kolibrios/blog/274487/ - файл на русском обновлялся раза 2, а на английском раз 6 и в английском намного больше нового, чем в файле на русском.


Вернуться к началу
 Заголовок сообщения: Re: Названия системных функций
СообщениеДобавлено: Вт янв 12, 2016 12:06 pm 
Не в сети
Mentor/Kernel Developer
Аватара пользователя

Зарегистрирован: Чт мар 26, 2015 5:16 pm
Сообщения: 1191
За последний год оба обновлялись раз 10.
IgorA, лучше сразу заливай, чтоб было видно изменения.


Вернуться к началу
 Заголовок сообщения: Re: Названия системных функций
СообщениеДобавлено: Вт янв 12, 2016 2:50 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Пн окт 27, 2008 10:10 pm
Сообщения: 750
Просмотрел русский файл справки, не было функции 76.
Обновил на svn ревизия 6056. Осталось еще в английский файл те же константы всунуть.


Вернуться к началу
Показать сообщения за:  Поле сортировки  
Начать новую тему  Ответить на тему  [ 99 сообщений ]  На страницу Пред. 13 4 5 6 7

Часовой пояс: UTC+03:00


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Создано на основе phpBB® Forum Software © phpBB Limited
Русская поддержка phpBB