Это из-за COM порта?на постоянную основу пока не ставлю, результаты пока хуже ожидаемых, хотя и приемлемые...
KolibriOS на производстве
-
KolibriOS-перспективная ос!
Kolibri is best operation system in the world!
Интересно. И какие на данный момент результаты?
А мне интересно
- сколько COM портов используется одновременно
- использованы ли их аппаратные прерывания
- скорость обменов
- дуплекс или полудуплекс
- мастер - слейв RS-485?
- сколько COM портов используется одновременно
- использованы ли их аппаратные прерывания
- скорость обменов
- дуплекс или полудуплекс
- мастер - слейв RS-485?
Программа - помигать светодиодом
с LPT-порта на PPro:
С вопросами - сюда: dvestidvadcatj@gmail.com
с LPT-порта на PPro:
Spoiler:
Code: Select all
--------------------
{Shapka}Program hello5;
Uses kolibri; var k:TKolibri;
const header:string='HelloWorld test'#0;
str:string='Hello, World!';
{p1}procedure draw_window;
begin k.BeginDraw;
k.DefineWindow(10,40,300,300,$33FFFFFF,0,integer(@header[1]));
k.WriteText(30,10,0,0,str);
k.DefineButton(5,5,65,25,7,7);
k.DefineButton(5,35,65,25,8,7);
k.EndDraw; end;
{p2}procedure zachvat_portov;
begin asm
mov eax,46
mov ebx,0
mov ecx,880
mov edx,890
int $40
end; end;
{p3}procedure proc_vkl;
begin asm
mov eax,43
mov bl,255
mov ecx,888
int $40
end; end;
{p4}procedure proc_vikl;
begin asm
mov eax,43
mov bl,0
mov ecx,888
int $40
end; end;
{p5}procedure otdatj_porti;
begin asm
mov eax,46
mov ebx,1
mov ecx,880
mov edx,890
int $40
end; end;
var key:DWord;
BEGIN draw_window;
zachvat_portov; {}
while true do
begin case k.WaitForEvent of
1:draw_window;
2:k.GetKey(key);
3: {break;}begin
k.getButton(key);
if key=7 then proc_vkl;
if key=8 then proc_vikl;
end;
end;
end;
otdatj_porti; {}
END.
----------------------
Last edited by VitZ on Fri May 30, 2014 11:30 am, edited 3 times in total.
На ассемблере кошернее и чуть быстрее - а вообще молодец.
На паскале больше народу поймёт .
По сути, половина кода на ассемблере. Зависит, конечно, от сложности задачи.
Надо бы разрешить по дефолту адреса 0х200..3FF, чтоб народ не парился с 40-ми функциями при доступе к COM/LPT.
: И вообще default_io_map-таблицы слишком раздуты, только зря дублируем по 8кб сплошных xFF для каждой задачи.
Вторая таблица вообще не нужна, да и первую можно сократить до килобайта, чтобы весь TSS помещался в одной странице.
: И вообще default_io_map-таблицы слишком раздуты, только зря дублируем по 8кб сплошных xFF для каждой задачи.
Вторая таблица вообще не нужна, да и первую можно сократить до килобайта, чтобы весь TSS помещался в одной странице.
А как решать вопрос с одновременным доступом к портам от разных приложений? И еще интересный вопрос - доступ к портам через сисфункции вроде как deprecated, как тогда это должно делаться? В ring-0?
SoUrcerer
Отдать юзеру COM и LPT, и пусть сам свои портовые накладки разруливает.
Доступ к портам - из юзерспейса через in и out.
Нужно только битмаску порта скинуть в 0, для этого и нужна 46-я.
Отдать юзеру COM и LPT, и пусть сам свои портовые накладки разруливает.
Доступ к портам - из юзерспейса через in и out.
Нужно только битмаску порта скинуть в 0, для этого и нужна 46-я.
Last edited by art_zh on Thu May 30, 2013 9:06 pm, edited 1 time in total.
А если, скажем, драйверы COM-модема (гипотетические) и мышки конфликтовать начнут? Тоже проблемы юзера?
Убери драйвер - и конфликта не будет. Юзер лезет в порты, к которым у него пристегнуто его родное, нестандартное железо (вроде тех же светодиодов на LPT).SoUrcerer wrote:А если, скажем, драйверы COM-модема (гипотетические) и мышки конфликтовать начнут? Тоже проблемы юзера?
40-e функции - это самая большая дыра. Прощальный плевок diamondа был именно через 46-ю.
art_zh
default_io_map расшарены через copy-on-write. Если приложение не обращается к портам, то пользуется общей страницей.
Я бы вообще запретил доступ к портам из user-mode. Нужен доступ - пиши драйвер. И экономия на страницах и меньше возни с этими битмапами.
default_io_map расшарены через copy-on-write. Если приложение не обращается к портам, то пользуется общей страницей.
Я бы вообще запретил доступ к портам из user-mode. Нужен доступ - пиши драйвер. И экономия на страницах и меньше возни с этими битмапами.
Удваиваю.Serge wrote:Я бы вообще запретил доступ к портам из user-mode. Нужен доступ - пиши драйвер. И экономия на страницах и меньше возни с этими битмапами.
Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!
Учетверяю, чего уж там.Mario_r4 wrote: Удваиваю.
Who is online
Users browsing this forum: No registered users and 2 guests