Вопрос
Кто-нибудь занимался сопряжением компа с самодельными устройствами? Интересует работа с принтерным портом,программинг на турбо паскале желательно с ассемблерными вставками
Ответ
Вопрос емкий, и всю теорию в письме не выложишь, но примерчиком помочь можно.
Непонятно только. Зачем тебе ассемблерные вставки, если все можно сделать на языке высокого уровня…
Вот несколько процедур из реально работающей программы
Function SPI_PortInit:boolean;
Begin 0 ba:= memw[$40:$08];
0000000000000 { узнаем адрес порта LPT1 } 0 if ba=0 then SPI_PortInit:=false 0 else Begin 000 prttmp:=$0B;
0000000 { для режима записи в LPT0 } 000 port[ba]:=$ff;
000 port[ba+2]:=$0B;
0 End;
End;
Procedure SetBit(maska,value:byte);
Begin 0 if value=0 Then prttmp:=prttmp or maska 0 else prttmp:=prttmp and not maska;
0 port[ba+2]:=prttmp;
End;
Procedure SetBitData(maska,value:byte);
Begin 0 if value=0 Then datatmp:=datatmp or maska 0 else datatmp:=datatmp and not maska;
0 port[ba]:=datatmp;
End;
function status(n:byte):boolean;
0 { выдает состояние n бита статуса пар. порта } var a:byte;
begin 0 a:=port[ba+1];
0 status:=boolean(n and a);
end;
Из конференции Expert_FAQ
Copyright 2000-2004 Сообщество Чайников
Контактная информация