Page 10 of 14

Re: KolibriOS на производстве

Posted: Thu May 30, 2013 11:08 pm
by Mario_r4
SoUrcerer wrote:Учетверяю, чего уж там.
Ты попутал с хабром - здесь ты можешь только +1. :wink:

Re: KolibriOS на производстве

Posted: Thu May 30, 2013 11:51 pm
by SoUrcerer
: Это на хабре я могу только +1, а здесь я могу сколько угодно. Только тсс.

Re: KolibriOS на производстве

Posted: Thu May 30, 2013 11:57 pm
by Mario_r4
Spoiler:
SoUrcerer wrote: : Это на хабре я могу только +1, а здесь я могу сколько угодно. Только тсс.
Я говорю про моральную поддержку. Функции админа не будем трогать.

Re: KolibriOS на производстве

Posted: Fri May 31, 2013 12:52 am
by art_zh
Нужен доступ - пиши драйвер.

А я минусую.

Если бы все было так просто и прямолинейно, тогда убогий WinDriver не был бы так популярен - не только в Винде, но даже в Линуксе.

Напиши драйвер для GMON - тогда можно будет смело убирать 40-е из транка.
И не забудь про 62-ю дырку. Ее тоже надо затыкать, сразу после разработки драйвера для PCIDEV.

VitZ
не слушай их - программёры нифига не смыслят в техническом творчестве.
купи Fusion-плату, поставь Kolibri-A и общайся с любым железом напрямую, без драйверов и без 40-х функций.

Re: KolibriOS на производстве

Posted: Fri May 31, 2013 10:49 am
by Serge
art_zh
1. Полностью с тобой согласен, для GMON нужен драйвер и ф.62 должна быть заткнута.
2. Колибри хороша тем, что кардинальные изменения достигаются лёгким движением руки.
Открываем taskman.inc, находим строку

Code: Select all

1134:        mov     [ebx+REG_EFLAGS], dword EFL_IOPL1+EFL_IF
меняем EFL_IOPL1 на EFL_IOPL3 и наслаждаемся беспроблемным доступом ко всем портам и даже cli hlt :)

Re: KolibriOS на производстве

Posted: Fri May 31, 2013 2:16 pm
by VitZ
На качественно организованном производстве
переходник RS232/RS485 встречается не реже,
чем персональный компьютер.
Операционные системы приходят и уходят, а последовательный
порт почему-то остаётся.
Следующей идеей у меня было -
подцепить какой-нть RS-485 девайс
(в том же ключе, как на LPTе - светодиоды).

Re: KolibriOS на производстве

Posted: Sat Jun 01, 2013 12:41 pm
by VitZ
Устройство двоичного вывода (0 - 24 В) i7042
попытаемся подключить к $3F0 - адресу
на скорости 115200, с 8мью битами данных,
без проверки на чётность и с минимальным количеством стоповых битов.

Re: KolibriOS на производстве

Posted: Sat Jun 01, 2013 1:42 pm
by art_zh
VitZ wrote:Устройство двоичного вывода (0 - 24 В)
не забудь про гальваническую развязку - у COM-порта (-12В ... +12В)

Re: KolibriOS на производстве

Posted: Sat Jun 01, 2013 2:02 pm
by SoUrcerer
У меня на ноуте до 5В, так что это еще стоит вольтметром проверить.

Re: KolibriOS на производстве

Posted: Sat Jun 01, 2013 3:59 pm
by VitZ
Устройство i7042 подключаем к компу через переходник i7520;
если (как у меня получалось раньше - из DOS'а) удастся послать
в пром-линию через com-порт строку '$01M',
то устройство (в данном случае i7042)
пришлёт своё имя (i7042 в данном случае
должно иметь в пром-линии адрес 01 и
настройку на скорость 115200) ...

Re: KolibriOS на производстве

Posted: Sat Jun 01, 2013 6:44 pm
by VitZ
... в конце каждой строки
общения между устройствами
(комп <-> i7042)
ставится символ (байт) 13.

Re: KolibriOS на производстве

Posted: Sat Jun 01, 2013 10:03 pm
by VitZ
В примере с LPT-светодиодами
две процедуры (p3 и p4) можно
свернуть в одну (по записываемому байту):

procedure zapis_v_port(b:byte);
begin asm
mov eax,43
mov bl,b
mov ecx,888
int $40
end; end;

Скорее всего и номер (адрес)
порта тоже можно вынести -
как параметр.

Re: KolibriOS на производстве

Posted: Sat Jun 01, 2013 10:14 pm
by SoUrcerer
Конечно, можно.

Re: KolibriOS на производстве

Posted: Sun Jun 02, 2013 9:25 am
by VitZ
У меня получилось:

procedure zapis_v_port(pb1, pb2, b: byte);
begin asm
mov eax, 43
mov bl,b
mov ch, pb1
mov cl, pb2
int $40;
end; end;
...
if key=7 then zapis_v_port($3, $78, 255);
if key=8 then zapis_v_port($3, $78, 0);

, а как в ассемблере записать в регистр (ecx) для номера
порта сразу 2а байта=word (888>255)
(может какие-то квадратные скобочки рядом с ecx использовать
или адрес этой переменной и указать количество её байт) ?

Re: KolibriOS на производстве

Posted: Sun Jun 02, 2013 2:20 pm
by Asper
VitZ
Размерность регистра и операнда должны совпадать для команды mov.
Если хочешь записать именно word в ecx можешь воспользоваться к примеру командой movzx.
Не пиши никогда идентификаторы, комментарии и т.д. транслитом, используй английский язык.
Это вроде как Pascal с BASM'ом?
Вместо кучи однотипных if лучше использовать конструкцию case of.