Страница: 1 |
вот есть код программы, работающий с LPT1 портом(насколько я понял) . Вопрос: что это за язык,и как сделать тоже-самое на VB? А вот и код : uses crt; PS. Надеюсь я в тот раздел попал.
мне кажется или тут помесь паскаля с амом Кажись это Delphi а хрен его знает, вроде это считывание и запись с SIM карты или ещё чего-то такого похожего Это ТуПас, семшанный с асмом (кабы не асм, Тупас никому и даром не нужен был бы). А из ВБ это делать не стоит, лучше сваять в RADAsm (Must Have!) DLL-ку, которая в себе все нужные функции включает. Выйдет она где-то на 10-15 КБ, может даже меньше. Ну а для особо интеллектуальных личностей можно посоветовать перевести чем-нибудь вроде debug асмовый код в машинный, а затем, разместив его в памяти как данные, запустить на исполнение 1. Учишь асм 2. Скачиваешь RADAsm 3. Пишешь асмовое файло с объвлениями всех нужных функций 4. Объявляешь их в VB через Declare Function 5. Наслаждаешься результатом, быстрым, неглючным и т. п. Только вот не уверен, что это пойдет под XP, там, вроде, драйвер писать надо... Страница: 1 |
Вопрос: Язык программирования??
Добавлено: 23.10.03 19:55
Автор вопроса: ZoomerSD | ICQ: 148640473
Const;
Copyright=;'(С) Филютич Алексей, 1997';
Var;
i,j,dat: byte;
Data: array [0..3] of byte;
{————————};
Function ReadCard:byte;
var;
S:byte;
begin;
asm ;
mov dx,379h ;
in a1,dx ;
mov c1,7 ;
shr a1,c1 ;
mov S,a1 ;
end;;
ReadCard:=S;
end;;
{——————————————};
Procedure WriteData (A: byte) ;assembler;
asm;
mov a1,A;
mov dx, 37Bh;
out dx,a1 ;
end;;
{————————————};
Procedure Next; {Увеличить адрес};
begin;
Delay (1) ;
WriteData (0);
WriteData (2) ;
WriteData (0);
end;
{——————————————}
Procedure Reset;
{Сброс микросхемы в исходное состояние}
var
A:byte;
begin
WriteData (0); {Сброс}
WriteData (1);
WriteData (3);
WriteData(l);
WriteData (0);
for a:=0 to 9 do
Next
WriteData(0); {Сброс}
WriteData(1);
WriteData (3);
WriteData (1);
WriteData (0);
end;
{-------------------}
Function Dec2Hex (value:byte): s<<
begin
case value of 0..9 : d2h:=chr(value+$30);
10..15 : d2h:=chr(value+$37);
end;
end;
begin
Dec2Hex:=d2h(value diy $10) + d2h (value and $0F)
end;
Begin
Reset
{Читаем первые четыре байта}
for i:=0 to 3 do begin
dat:=0;
for j:=0 to 7 do begin
dat:=dat+(ReadCard sh1 (7-j));
Next;
end;
Data[i] :=dat;
end;
Reset;
If Data(0]$7B then begin
writeln('Карточка повреждена');
Halt;
end;
write('Данные из карточки:') ;
for i:=0 to 3 do begin
write(Dec2Hex(Data[i]:3);
end;
writeln;
End.
Ответы
Всего ответов: 10
Номер ответа: 1
Автор ответа:
GlooM
ICQ: 348453688
Вопросов: 88
Ответов: 356
Web-сайт:
Профиль | | #1
Добавлено: 23.10.03 20:31
Это, кажется, Delphi...
Номер ответа: 2
Автор ответа:
Padre
ICQ: 346632205
Вопросов: 25
Ответов: 215
Web-сайт:
Профиль | | #2
Добавлено: 23.10.03 21:20
Номер ответа: 3
Автор ответа:
Ujif
ICQ: -
Вопросов: 52
Ответов: 76
Web-сайт:
Профиль | | #3
Добавлено: 23.10.03 22:26
Номер ответа: 4
Автор ответа:
shuffle
Администратор
ICQ: 201502381
Вопросов: 15
Ответов: 737
Профиль | | #4
Добавлено: 24.10.03 00:18
Скорее всего ассемблер... Если так, то перевести в VB будет большая проблема...
Номер ответа: 5
Автор ответа:
ZeroX
ICQ: 220401330
Вопросов: 47
Ответов: 406
Профиль | | #5
Добавлено: 24.10.03 13:03
Это Pascal с асмом - 100%
Номер ответа: 6
Автор ответа:
ZoomerSD
ICQ: 148640473
Вопросов: 135
Ответов: 270
Профиль | | #6
Добавлено: 24.10.03 13:04
а хотябы обьясниить, что этот код делает, ктонить может?, я просто нечего в нём не понимаю
Номер ответа: 7
Автор ответа:
Padre
ICQ: 346632205
Вопросов: 25
Ответов: 215
Web-сайт:
Профиль | | #7
Добавлено: 24.10.03 14:47
Номер ответа: 8
Автор ответа:
Sharp
Лидер форума
ICQ: 216865379
Вопросов: 106
Ответов: 9979
Web-сайт:
Профиль | | #8
Добавлено: 24.10.03 16:14
Номер ответа: 9
Автор ответа:
ZoomerSD
ICQ: 148640473
Вопросов: 135
Ответов: 270
Профиль | | #9
Добавлено: 24.10.03 18:55
Shrap, а как сделать эту Dll-ку, обьясни пожалуйста для тех, кто в танке
Номер ответа: 10
Автор ответа:
Sharp
Лидер форума
ICQ: 216865379
Вопросов: 106
Ответов: 9979
Web-сайт:
Профиль | | #10
Добавлено: 25.10.03 12:35