Ты попутал с хабром - здесь ты можешь только +1.SoUrcerer wrote:Учетверяю, чего уж там.
KolibriOS на производстве
-
Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!
: Это на хабре я могу только +1, а здесь я могу сколько угодно. Только тсс.
Spoiler:
Я говорю про моральную поддержку. Функции админа не будем трогать.SoUrcerer wrote: : Это на хабре я могу только +1, а здесь я могу сколько угодно. Только тсс.
Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!
Нужен доступ - пиши драйвер.
А я минусую.
Если бы все было так просто и прямолинейно, тогда убогий WinDriver не был бы так популярен - не только в Винде, но даже в Линуксе.
Напиши драйвер для GMON - тогда можно будет смело убирать 40-е из транка.
И не забудь про 62-ю дырку. Ее тоже надо затыкать, сразу после разработки драйвера для PCIDEV.
VitZ
не слушай их - программёры нифига не смыслят в техническом творчестве.
купи Fusion-плату, поставь Kolibri-A и общайся с любым железом напрямую, без драйверов и без 40-х функций.
art_zh
1. Полностью с тобой согласен, для GMON нужен драйвер и ф.62 должна быть заткнута.
2. Колибри хороша тем, что кардинальные изменения достигаются лёгким движением руки.
Открываем taskman.inc, находим строку меняем EFL_IOPL1 на EFL_IOPL3 и наслаждаемся беспроблемным доступом ко всем портам и даже cli hlt
1. Полностью с тобой согласен, для GMON нужен драйвер и ф.62 должна быть заткнута.
2. Колибри хороша тем, что кардинальные изменения достигаются лёгким движением руки.
Открываем taskman.inc, находим строку
Code: Select all
1134: mov [ebx+REG_EFLAGS], dword EFL_IOPL1+EFL_IF
Last edited by Serge on Tue Jun 18, 2013 9:16 am, edited 1 time in total.
На качественно организованном производстве
переходник RS232/RS485 встречается не реже,
чем персональный компьютер.
Операционные системы приходят и уходят, а последовательный
порт почему-то остаётся.
Следующей идеей у меня было -
подцепить какой-нть RS-485 девайс
(в том же ключе, как на LPTе - светодиоды).
переходник RS232/RS485 встречается не реже,
чем персональный компьютер.
Операционные системы приходят и уходят, а последовательный
порт почему-то остаётся.
Следующей идеей у меня было -
подцепить какой-нть RS-485 девайс
(в том же ключе, как на LPTе - светодиоды).
Last edited by VitZ on Sun Jul 28, 2013 4:39 pm, edited 3 times in total.
Устройство двоичного вывода (0 - 24 В) i7042
попытаемся подключить к $3F0 - адресу
на скорости 115200, с 8мью битами данных,
без проверки на чётность и с минимальным количеством стоповых битов.
попытаемся подключить к $3F0 - адресу
на скорости 115200, с 8мью битами данных,
без проверки на чётность и с минимальным количеством стоповых битов.
Last edited by VitZ on Fri Jul 05, 2013 11:41 am, edited 5 times in total.
не забудь про гальваническую развязку - у COM-порта (-12В ... +12В)VitZ wrote:Устройство двоичного вывода (0 - 24 В)
У меня на ноуте до 5В, так что это еще стоит вольтметром проверить.
Устройство i7042 подключаем к компу через переходник i7520;
если (как у меня получалось раньше - из DOS'а) удастся послать
в пром-линию через com-порт строку '$01M',
то устройство (в данном случае i7042)
пришлёт своё имя (i7042 в данном случае
должно иметь в пром-линии адрес 01 и
настройку на скорость 115200) ...
если (как у меня получалось раньше - из DOS'а) удастся послать
в пром-линию через com-порт строку '$01M',
то устройство (в данном случае i7042)
пришлёт своё имя (i7042 в данном случае
должно иметь в пром-линии адрес 01 и
настройку на скорость 115200) ...
Last edited by VitZ on Sun Nov 02, 2014 2:23 pm, edited 5 times in total.
... в конце каждой строки
общения между устройствами
(комп <-> i7042)
ставится символ (байт) 13.
общения между устройствами
(комп <-> i7042)
ставится символ (байт) 13.
В примере с LPT-светодиодами
две процедуры (p3 и p4) можно
свернуть в одну (по записываемому байту):
procedure zapis_v_port(b:byte);
begin asm
mov eax,43
mov bl,b
mov ecx,888
int $40
end; end;
Скорее всего и номер (адрес)
порта тоже можно вынести -
как параметр.
две процедуры (p3 и p4) можно
свернуть в одну (по записываемому байту):
procedure zapis_v_port(b:byte);
begin asm
mov eax,43
mov bl,b
mov ecx,888
int $40
end; end;
Скорее всего и номер (адрес)
порта тоже можно вынести -
как параметр.
Last edited by VitZ on Sun Jun 02, 2013 7:25 am, edited 1 time in total.
Конечно, можно.
У меня получилось:
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 использовать
или адрес этой переменной и указать количество её байт) ?
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 использовать
или адрес этой переменной и указать количество её байт) ?
VitZ
Размерность регистра и операнда должны совпадать для команды mov.
Если хочешь записать именно word в ecx можешь воспользоваться к примеру командой movzx.
Не пиши никогда идентификаторы, комментарии и т.д. транслитом, используй английский язык.
Это вроде как Pascal с BASM'ом?
Вместо кучи однотипных if лучше использовать конструкцию case of.
Размерность регистра и операнда должны совпадать для команды mov.
Если хочешь записать именно word в ecx можешь воспользоваться к примеру командой movzx.
Не пиши никогда идентификаторы, комментарии и т.д. транслитом, используй английский язык.
Это вроде как Pascal с BASM'ом?
Вместо кучи однотипных if лучше использовать конструкцию case of.
Who is online
Users browsing this forum: No registered users and 6 guests