<?xml version='1.0' encoding="utf-8"?>
      <rss version='2.0'>
      <channel>
      <title>Форум на Исходниках.RU</title>
      <link>https://forum.sources.ru</link>
      <description>Форум на Исходниках.RU</description>
      <generator>Форум на Исходниках.RU</generator>
  	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=174353&amp;view=findpost&amp;p=3909833</guid>
        <pubDate>Mon, 09 Sep 2024 19:19:36 +0000</pubDate>
        <title>DOS, Borland C и 32 бита....</title>
        <link>https://forum.sources.ru/index.php?showtopic=174353&amp;view=findpost&amp;p=3909833</link>
        <description><![CDATA[Tolik328: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=174353&view=findpost&p=1765953'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>vadymko &#064; <time class="tag-quote__quoted-time" datetime="2007-11-15T17:00:11+03:00">15.11.07, 14:00</time></span><div class='quote '>Вобщем выкладываю сборную солянку, собранную здесь общим коллективом, на всеобщее обозрение...<br>
Главное ее достоинство - РАБОТАЕТ &#33;&#33;  :D <br>
<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">#include &#60;dos.h&#62;</div><div class="code_line">#include &#60;stdio.h&#62;</div><div class="code_line">#include &#60;conio.h&#62;</div><div class="code_line">#include &#60;stdlib.h&#62;</div><div class="code_line">#include &quot;..\hardware\PCI.H&quot;</div><div class="code_line">&nbsp;</div><div class="code_line">/************</div><div class="code_line">&nbsp;* Global variable declare</div><div class="code_line">&nbsp;************/</div><div class="code_line">//typedef &nbsp; signed char schar;</div><div class="code_line">//typedef unsigned char byte;</div><div class="code_line">//typedef unsigned short word;</div><div class="code_line">//typedef unsigned long dword;</div><div class="code_line">&nbsp;</div><div class="code_line">#define outportv(addr,data) _DX = (addr); _EAX = (dword)(data); asm db 0x66; asm out dx,ax;</div><div class="code_line">#define inportv(addr,v) _DX = (addr); asm db 0x66; asm in ax,dx; v = _EAX;</div><div class="code_line">&nbsp;</div><div class="code_line">dword dwDACBaseAddr; &nbsp; &nbsp; &nbsp; &nbsp; //Base address</div><div class="code_line">&nbsp;</div><div class="code_line">union wrdstr</div><div class="code_line">{</div><div class="code_line">&nbsp;&nbsp; &nbsp;int &nbsp; &nbsp; wrd[2];</div><div class="code_line">&nbsp;&nbsp; &nbsp;dword &nbsp; lng;</div><div class="code_line">} dat;</div><div class="code_line">&nbsp;</div><div class="code_line">int Init1724(void)</div><div class="code_line">{</div><div class="code_line">&nbsp;&nbsp; &nbsp;int &nbsp;wVendorId, wDeviceId, wIndex;</div><div class="code_line">&nbsp;&nbsp; &nbsp;int &nbsp; iErrCode;</div><div class="code_line">&nbsp;&nbsp; &nbsp;byte &nbsp;ucBusNumber, ucDevAndFunc;</div><div class="code_line">&nbsp;&nbsp; &nbsp;dword dwData;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;wIndex = 0;</div><div class="code_line">&nbsp;&nbsp; &nbsp;wVendorId = 0x13fe;</div><div class="code_line">&nbsp;&nbsp; &nbsp;wDeviceId = 0x1724;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;/***************************</div><div class="code_line">&nbsp;&nbsp; &nbsp; * Get 1724&#39;s resource</div><div class="code_line">&nbsp;&nbsp; &nbsp; ***************************/</div><div class="code_line">&nbsp;&nbsp; &nbsp;//</div><div class="code_line">&nbsp;&nbsp; &nbsp;// Search PCI-1724</div><div class="code_line">&nbsp;&nbsp; &nbsp;//</div><div class="code_line">&nbsp;&nbsp; &nbsp;iErrCode = find_pci_device(</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;wDeviceId,</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;wVendorId,</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;wIndex,</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&amp;ucBusNumber,</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&amp;ucDevAndFunc );</div><div class="code_line">&nbsp;&nbsp; &nbsp;if (iErrCode == NOT_SUCCESSFUL )</div><div class="code_line">&nbsp;&nbsp; &nbsp;{</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;//printf(&quot;\nPCI-1724 search fail\n&quot;);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;return -1;</div><div class="code_line">&nbsp;&nbsp; &nbsp;}</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;//</div><div class="code_line">&nbsp;&nbsp; &nbsp;//Get base address, from PCI base address range 2</div><div class="code_line">&nbsp;&nbsp; &nbsp;//</div><div class="code_line">&nbsp;&nbsp; &nbsp;iErrCode = read_configuration_dword(</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;ucBusNumber,</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ucDevAndFunc,</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; PCI_CS_BASE_ADDRESS_2,</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &amp;dwData);</div><div class="code_line">&nbsp;&nbsp; &nbsp;if (iErrCode == NOT_SUCCESSFUL)</div><div class="code_line">&nbsp;&nbsp; &nbsp;{</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;//printf(&quot;\nPCI-1724 gets base address fail\n&quot;);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;return -2;</div><div class="code_line">&nbsp;&nbsp; &nbsp;}</div><div class="code_line">&nbsp;&nbsp; &nbsp;else</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;dwDACBaseAddr = dwData &amp; 0xfffffffc;</div><div class="code_line">// &nbsp;printf(&quot;\n\n\n\n\tPCI-1724 BaseAddress: %lx\r\n\n&quot;,dwDACBaseAddr);</div><div class="code_line">return 0;</div><div class="code_line">}</div><div class="code_line">&nbsp;</div><div class="code_line">int AnalogOutput(unsigned int wChannel, unsigned int wValue)</div><div class="code_line">{</div><div class="code_line">&nbsp;&nbsp; &nbsp;// MAX= 2^14 = 16383 = 0x3fff</div><div class="code_line">&nbsp;&nbsp; &nbsp;// Middle &nbsp; &nbsp;= 8191 &nbsp;= 0x1fff</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;int GroupGX,ChannelCX;</div><div class="code_line">&nbsp;&nbsp; &nbsp;if (wValue &#62; 0x3fff) </div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;wValue = 0x3fff;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;GroupGX &nbsp; = 0x0001 &#60;&#60; (wChannel/8);</div><div class="code_line">&nbsp;&nbsp; &nbsp;ChannelCX = wChannel%8;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;dat.wrd[1] = (GroupGX &#60;&#60; 4)+ ChannelCX;</div><div class="code_line">&nbsp;&nbsp; &nbsp;dat.wrd[0] = wValue + 0xC000;</div><div class="code_line">&nbsp;&nbsp; &nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;if (dwDACBaseAddr==0) </div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;return(1);</div><div class="code_line">&nbsp;&nbsp; &nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;outportv(dwDACBaseAddr, dat.lng);</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;return(0);</div><div class="code_line">}</div><div class="code_line">&nbsp;</div><div class="code_line">void main(void)</div><div class="code_line">{</div><div class="code_line">&nbsp;&nbsp;int wChannel;</div><div class="code_line">&nbsp;&nbsp; &nbsp;int wValue,ch,i;</div><div class="code_line">&nbsp;&nbsp; &nbsp;Init1724();</div><div class="code_line">&nbsp;&nbsp; &nbsp;wChannel=0;</div><div class="code_line">&nbsp;&nbsp; &nbsp;clrscr();</div><div class="code_line">&nbsp;&nbsp; &nbsp;// простой тестик - выдает по кругу значение на ЦАП...</div><div class="code_line">&nbsp;&nbsp; &nbsp;do </div><div class="code_line">&nbsp;&nbsp; &nbsp;{</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;if (wValue&#62;=0x3fff) {wValue =0;clrscr();} else wValue+=1;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;gotoxy(20,2);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;AnalogOutput(wChannel,wValue);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;putch(&#39;\n&#39;);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;for (i=0;i&#60;wValue/205;i++)</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;if (i&#60;0x3fff/410) putch (&#39;_&#39;); else putch(&#39;-&#39;);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;putch(&#39;\r&#39;);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;delay(1);</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;} while (!kbhit());</div><div class="code_line">}</div><div class="code_line">&nbsp;</div><div class="code_line">/*</div><div class="code_line">&nbsp;</div><div class="code_line">//////////////////////////////////</div><div class="code_line">// &nbsp;Из вольт в данные переводила вот такая простенькая процедурка...</div><div class="code_line">// Analog OUTPUT 14 bit = 0 - 8192 - 16384 &nbsp;-/+ 10V</div><div class="code_line">// РАБОТАЕМ С МИЛИВОЛЬТАМИ</div><div class="code_line">void SetU(double val)</div><div class="code_line">{</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;// значения max,min в принципе подбирал по вольтметру на каждый канал</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;// ну это по желанию... </div><div class="code_line">&nbsp;&nbsp; &nbsp;unsigned int max = 16260; &nbsp; // &nbsp;+10V ( 9.999)</div><div class="code_line">&nbsp;&nbsp; &nbsp;unsigned int min = 270; &nbsp; &nbsp; // &nbsp;-10V (-9.999)</div><div class="code_line">&nbsp;&nbsp; &nbsp;double delta=20000.0/(max-min);</div><div class="code_line">&nbsp;&nbsp; &nbsp;unsigned int wValue=(val+10000.0)/delta+min;</div><div class="code_line">&nbsp;&nbsp; &nbsp;AnalogOutput(chan0, wValue); &nbsp; &nbsp;// </div><div class="code_line">}</div><div class="code_line">&nbsp;</div><div class="code_line">*/</div></ol></div></div></div></div><script>preloadCodeButtons('1');</script></div></div><br>
Здравcтвуйте.<br>
<br>
Можете выложить этот файлик?<br>
#include &quot;..&#092;hardware&#092;PCI.H&quot;]]></description>
        <author>Tolik328</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=174353&amp;view=findpost&amp;p=1765953</guid>
        <pubDate>Thu, 15 Nov 2007 14:00:11 +0000</pubDate>
        <title>DOS, Borland C и 32 бита....</title>
        <link>https://forum.sources.ru/index.php?showtopic=174353&amp;view=findpost&amp;p=1765953</link>
        <description><![CDATA[vadymko: Вобщем выкладываю сборную солянку, собранную здесь общим коллективом, на всеобщее обозрение...<br>
Главное ее достоинство - РАБОТАЕТ &#33;&#33;  :D <br>
<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">#include &#60;dos.h&#62;</div><div class="code_line">#include &#60;stdio.h&#62;</div><div class="code_line">#include &#60;conio.h&#62;</div><div class="code_line">#include &#60;stdlib.h&#62;</div><div class="code_line">#include &quot;..\hardware\PCI.H&quot;</div><div class="code_line">&nbsp;</div><div class="code_line">/************</div><div class="code_line">&nbsp;* Global variable declare</div><div class="code_line">&nbsp;************/</div><div class="code_line">//typedef &nbsp; signed char schar;</div><div class="code_line">//typedef unsigned char byte;</div><div class="code_line">//typedef unsigned short word;</div><div class="code_line">//typedef unsigned long dword;</div><div class="code_line">&nbsp;</div><div class="code_line">#define outportv(addr,data) _DX = (addr); _EAX = (dword)(data); asm db 0x66; asm out dx,ax;</div><div class="code_line">#define inportv(addr,v) _DX = (addr); asm db 0x66; asm in ax,dx; v = _EAX;</div><div class="code_line">&nbsp;</div><div class="code_line">dword dwDACBaseAddr; &nbsp; &nbsp; &nbsp; &nbsp; //Base address</div><div class="code_line">&nbsp;</div><div class="code_line">union wrdstr</div><div class="code_line">{</div><div class="code_line">&nbsp;&nbsp; &nbsp;int &nbsp; &nbsp; wrd[2];</div><div class="code_line">&nbsp;&nbsp; &nbsp;dword &nbsp; lng;</div><div class="code_line">} dat;</div><div class="code_line">&nbsp;</div><div class="code_line">int Init1724(void)</div><div class="code_line">{</div><div class="code_line">&nbsp;&nbsp; &nbsp;int &nbsp;wVendorId, wDeviceId, wIndex;</div><div class="code_line">&nbsp;&nbsp; &nbsp;int &nbsp; iErrCode;</div><div class="code_line">&nbsp;&nbsp; &nbsp;byte &nbsp;ucBusNumber, ucDevAndFunc;</div><div class="code_line">&nbsp;&nbsp; &nbsp;dword dwData;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;wIndex = 0;</div><div class="code_line">&nbsp;&nbsp; &nbsp;wVendorId = 0x13fe;</div><div class="code_line">&nbsp;&nbsp; &nbsp;wDeviceId = 0x1724;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;/***************************</div><div class="code_line">&nbsp;&nbsp; &nbsp; * Get 1724&#39;s resource</div><div class="code_line">&nbsp;&nbsp; &nbsp; ***************************/</div><div class="code_line">&nbsp;&nbsp; &nbsp;//</div><div class="code_line">&nbsp;&nbsp; &nbsp;// Search PCI-1724</div><div class="code_line">&nbsp;&nbsp; &nbsp;//</div><div class="code_line">&nbsp;&nbsp; &nbsp;iErrCode = find_pci_device(</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;wDeviceId,</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;wVendorId,</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;wIndex,</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&amp;ucBusNumber,</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&amp;ucDevAndFunc );</div><div class="code_line">&nbsp;&nbsp; &nbsp;if (iErrCode == NOT_SUCCESSFUL )</div><div class="code_line">&nbsp;&nbsp; &nbsp;{</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;//printf(&quot;\nPCI-1724 search fail\n&quot;);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;return -1;</div><div class="code_line">&nbsp;&nbsp; &nbsp;}</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;//</div><div class="code_line">&nbsp;&nbsp; &nbsp;//Get base address, from PCI base address range 2</div><div class="code_line">&nbsp;&nbsp; &nbsp;//</div><div class="code_line">&nbsp;&nbsp; &nbsp;iErrCode = read_configuration_dword(</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;ucBusNumber,</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ucDevAndFunc,</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; PCI_CS_BASE_ADDRESS_2,</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &amp;dwData);</div><div class="code_line">&nbsp;&nbsp; &nbsp;if (iErrCode == NOT_SUCCESSFUL)</div><div class="code_line">&nbsp;&nbsp; &nbsp;{</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;//printf(&quot;\nPCI-1724 gets base address fail\n&quot;);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;return -2;</div><div class="code_line">&nbsp;&nbsp; &nbsp;}</div><div class="code_line">&nbsp;&nbsp; &nbsp;else</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;dwDACBaseAddr = dwData &amp; 0xfffffffc;</div><div class="code_line">// &nbsp;printf(&quot;\n\n\n\n\tPCI-1724 BaseAddress: %lx\r\n\n&quot;,dwDACBaseAddr);</div><div class="code_line">return 0;</div><div class="code_line">}</div><div class="code_line">&nbsp;</div><div class="code_line">int AnalogOutput(unsigned int wChannel, unsigned int wValue)</div><div class="code_line">{</div><div class="code_line">&nbsp;&nbsp; &nbsp;// MAX= 2^14 = 16383 = 0x3fff</div><div class="code_line">&nbsp;&nbsp; &nbsp;// Middle &nbsp; &nbsp;= 8191 &nbsp;= 0x1fff</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;int GroupGX,ChannelCX;</div><div class="code_line">&nbsp;&nbsp; &nbsp;if (wValue &#62; 0x3fff) </div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;wValue = 0x3fff;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;GroupGX &nbsp; = 0x0001 &#60;&#60; (wChannel/8);</div><div class="code_line">&nbsp;&nbsp; &nbsp;ChannelCX = wChannel%8;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;dat.wrd[1] = (GroupGX &#60;&#60; 4)+ ChannelCX;</div><div class="code_line">&nbsp;&nbsp; &nbsp;dat.wrd[0] = wValue + 0xC000;</div><div class="code_line">&nbsp;&nbsp; &nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;if (dwDACBaseAddr==0) </div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;return(1);</div><div class="code_line">&nbsp;&nbsp; &nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;outportv(dwDACBaseAddr, dat.lng);</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;return(0);</div><div class="code_line">}</div><div class="code_line">&nbsp;</div><div class="code_line">void main(void)</div><div class="code_line">{</div><div class="code_line">&nbsp;&nbsp;int wChannel;</div><div class="code_line">&nbsp;&nbsp; &nbsp;int wValue,ch,i;</div><div class="code_line">&nbsp;&nbsp; &nbsp;Init1724();</div><div class="code_line">&nbsp;&nbsp; &nbsp;wChannel=0;</div><div class="code_line">&nbsp;&nbsp; &nbsp;clrscr();</div><div class="code_line">&nbsp;&nbsp; &nbsp;// простой тестик - выдает по кругу значение на ЦАП...</div><div class="code_line">&nbsp;&nbsp; &nbsp;do </div><div class="code_line">&nbsp;&nbsp; &nbsp;{</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;if (wValue&#62;=0x3fff) {wValue =0;clrscr();} else wValue+=1;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;gotoxy(20,2);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;AnalogOutput(wChannel,wValue);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;putch(&#39;\n&#39;);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;for (i=0;i&#60;wValue/205;i++)</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;if (i&#60;0x3fff/410) putch (&#39;_&#39;); else putch(&#39;-&#39;);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;putch(&#39;\r&#39;);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;delay(1);</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;} while (!kbhit());</div><div class="code_line">}</div><div class="code_line">&nbsp;</div><div class="code_line">/*</div><div class="code_line">&nbsp;</div><div class="code_line">//////////////////////////////////</div><div class="code_line">// &nbsp;Из вольт в данные переводила вот такая простенькая процедурка...</div><div class="code_line">// Analog OUTPUT 14 bit = 0 - 8192 - 16384 &nbsp;-/+ 10V</div><div class="code_line">// РАБОТАЕМ С МИЛИВОЛЬТАМИ</div><div class="code_line">void SetU(double val)</div><div class="code_line">{</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;// значения max,min в принципе подбирал по вольтметру на каждый канал</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;// ну это по желанию... </div><div class="code_line">&nbsp;&nbsp; &nbsp;unsigned int max = 16260; &nbsp; // &nbsp;+10V ( 9.999)</div><div class="code_line">&nbsp;&nbsp; &nbsp;unsigned int min = 270; &nbsp; &nbsp; // &nbsp;-10V (-9.999)</div><div class="code_line">&nbsp;&nbsp; &nbsp;double delta=20000.0/(max-min);</div><div class="code_line">&nbsp;&nbsp; &nbsp;unsigned int wValue=(val+10000.0)/delta+min;</div><div class="code_line">&nbsp;&nbsp; &nbsp;AnalogOutput(chan0, wValue); &nbsp; &nbsp;// </div><div class="code_line">}</div><div class="code_line">&nbsp;</div><div class="code_line">*/</div></ol></div></div></div></div>]]></description>
        <author>vadymko</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=174353&amp;view=findpost&amp;p=1765592</guid>
        <pubDate>Thu, 15 Nov 2007 11:07:46 +0000</pubDate>
        <title>DOS, Borland C и 32 бита....</title>
        <link>https://forum.sources.ru/index.php?showtopic=174353&amp;view=findpost&amp;p=1765592</link>
        <description><![CDATA[Rodya: <strong class='tag-b'>Vadymko</strong>, можешь дать исходники, которые получились. А то такая же проблемма возникла (тоже с PCI-1724U), а насчет работы с регистрами и асемблера я ни в зуб ногой. Буду очень благодарен.]]></description>
        <author>Rodya</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=174353&amp;view=findpost&amp;p=1489398</guid>
        <pubDate>Mon, 19 Mar 2007 08:44:01 +0000</pubDate>
        <title>DOS, Borland C и 32 бита....</title>
        <link>https://forum.sources.ru/index.php?showtopic=174353&amp;view=findpost&amp;p=1489398</link>
        <description><![CDATA[vadymko: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=174353&view=findpost&p=1486211'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Adil &#064; <time class="tag-quote__quoted-time" datetime="2007-03-16T07:49:51+00:00">16.03.07, 07:49</time></span><div class='quote '>Здесь такая же ошибка, что и у меня. Только у меня поправить проще - просто добавлением строки<br>
<br>
  shld  edx,eax,16<br>
<br>
после инструкции in :)</div></div><br>
<br>
Спасибо учтем. Просто инпорт я не пользовал. Мне нужен просто вывод..вот и упустил..  :whistle:]]></description>
        <author>vadymko</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=174353&amp;view=findpost&amp;p=1486211</guid>
        <pubDate>Fri, 16 Mar 2007 07:49:51 +0000</pubDate>
        <title>DOS, Borland C и 32 бита....</title>
        <link>https://forum.sources.ru/index.php?showtopic=174353&amp;view=findpost&amp;p=1486211</link>
        <description><![CDATA[Adil: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=174353&view=findpost&p=1486170'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>vadymko &#064; <time class="tag-quote__quoted-time" datetime="2007-03-16T07:32:27+00:00">16.03.07, 07:32</time></span><div class='quote '><div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">dword inportd (word port) {</div><div class="code_line">&nbsp;&nbsp;asm {</div><div class="code_line">&nbsp;&nbsp; &nbsp;mov dx, [port]</div><div class="code_line">&nbsp;&nbsp; &nbsp;db 66h</div><div class="code_line">&nbsp;&nbsp; &nbsp;in ax, dx</div><div class="code_line">&nbsp;&nbsp;}</div><div class="code_line">}</div></ol></div></div></div></div></div></div>Здесь такая же ошибка, что и у меня. Только у меня поправить проще - просто добавлением строки<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">&nbsp;&nbsp;shld &nbsp;edx,eax,16</div></ol></div></div></div></div> после инструкции in :)]]></description>
        <author>Adil</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=174353&amp;view=findpost&amp;p=1486170</guid>
        <pubDate>Fri, 16 Mar 2007 07:32:27 +0000</pubDate>
        <title>DOS, Borland C и 32 бита....</title>
        <link>https://forum.sources.ru/index.php?showtopic=174353&amp;view=findpost&amp;p=1486170</link>
        <description><![CDATA[vadymko: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=174353&view=findpost&p=1485353'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>cppasm &#064; <time class="tag-quote__quoted-time" datetime="2007-03-15T12:02:30+00:00">15.03.07, 12:02</time></span><div class='quote '>Ну это реально мистика :)</div></div><br>
Просто я умнел на глазах с каждым примером  :lool: <br>
Программы везде под large писаны, да и пользовал я тока вывод...<br>
<br>
Кстати позже я и второй пример запустил, уже вот в таком немного отредактированном виде, ну в принципе они практически не отличаются (ни от исходного ни от примеров <strong class='tag-b'>vmp</strong>)<br>
<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">dword inportd (word port) {</div><div class="code_line">&nbsp;&nbsp;asm {</div><div class="code_line">&nbsp;&nbsp; &nbsp;mov dx, [port]</div><div class="code_line">&nbsp;&nbsp; &nbsp;db 66h</div><div class="code_line">&nbsp;&nbsp; &nbsp;in ax, dx</div><div class="code_line">&nbsp;&nbsp;}</div><div class="code_line">}</div><div class="code_line">outportd (word port, dword num) {</div><div class="code_line">&nbsp;&nbsp;asm {</div><div class="code_line">&nbsp;&nbsp; &nbsp;db 66h &nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;mov ax, dword ptr [num]</div><div class="code_line">&nbsp;&nbsp; &nbsp;mov dx, [port]</div><div class="code_line">&nbsp;&nbsp; &nbsp;db 66h</div><div class="code_line">&nbsp;&nbsp; &nbsp;out dx ,ax </div><div class="code_line">&nbsp;&nbsp;}</div><div class="code_line">}</div></ol></div></div></div></div>]]></description>
        <author>vadymko</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=174353&amp;view=findpost&amp;p=1485353</guid>
        <pubDate>Thu, 15 Mar 2007 12:02:30 +0000</pubDate>
        <title>DOS, Borland C и 32 бита....</title>
        <link>https://forum.sources.ru/index.php?showtopic=174353&amp;view=findpost&amp;p=1485353</link>
        <description><![CDATA[cppasm: Ну это реально мистика :)<br>
Вот это <div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">asm db 0x66; asm out dx,ax;</div></ol></div></div></div></div> и вот это <div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">asm out dx,eax;</div></ol></div></div></div></div> - это одно и то же...<br>
Возможно правда с моделью памяти косяк в первом варианте - она на large рассчитана (far вызов).<br>
И в чтении порта там ошибка - результат в eax возвращается, а надо dx:ax]]></description>
        <author>cppasm</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=174353&amp;view=findpost&amp;p=1484930</guid>
        <pubDate>Thu, 15 Mar 2007 06:41:15 +0000</pubDate>
        <title>DOS, Borland C и 32 бита....</title>
        <link>https://forum.sources.ru/index.php?showtopic=174353&amp;view=findpost&amp;p=1484930</link>
        <description><![CDATA[vadymko: :wub:  :wub:  :wub: <br>
Не подумайте чего плохого  :lool: <br>
<strong class='tag-b'>vmp</strong> шаман ;)<br>
Отцу русской демократии помогло <br>
<br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=174353&view=findpost&p=1483902'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>vmp &#064; <time class="tag-quote__quoted-time" datetime="2007-03-14T09:14:55+00:00">14.03.07, 09:14</time></span><div class='quote '><br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">#define outportv(addr,data) _DX = (addr); _EAX = (dword)(data); asm db 0x66; asm out dx,ax; </div><div class="code_line">#define _inportd(addr) _DX = (addr); asm db 0x66; asm in ax,dx; </div><div class="code_line">#define inportv(addr,v) _DX = (addr); asm db 0x66; asm in ax,dx; v = _EAX;</div></ol></div></div></div></div></div></div><br>
<br>
Не знаю что не так с предыдущими примерами, или что с ними не так делал я, но прокатил только последний вариант. Код х386 стоял в принципе везде, так что на это кивать вроде нечего...<br>
<br>
Спасибо всем&#33;&#33;&#33;]]></description>
        <author>vadymko</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=174353&amp;view=findpost&amp;p=1484162</guid>
        <pubDate>Wed, 14 Mar 2007 12:12:45 +0000</pubDate>
        <title>DOS, Borland C и 32 бита....</title>
        <link>https://forum.sources.ru/index.php?showtopic=174353&amp;view=findpost&amp;p=1484162</link>
        <description><![CDATA[vmp: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=174353&view=findpost&p=1484004'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Adil &#064; <time class="tag-quote__quoted-time" datetime="2007-03-14T10:10:01+00:00">14.03.07, 10:10</time></span><div class='quote '>Цитата (vmp @ Сегодня, 12:14)<br>
typedef signed char schar;<br>
Сильно...<br>
Внушает. <br>
</div></div><br>
А что делать, если приходится писать и таскать тексты программ между 5 процессорами разных архитектур и с разной длиной слова? И у 4 разных производителей компиляторов разные понятия о типе char - где знаковый, где беззнаковый, где настраивается ключем компилятора.]]></description>
        <author>vmp</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=174353&amp;view=findpost&amp;p=1484004</guid>
        <pubDate>Wed, 14 Mar 2007 10:10:01 +0000</pubDate>
        <title>DOS, Borland C и 32 бита....</title>
        <link>https://forum.sources.ru/index.php?showtopic=174353&amp;view=findpost&amp;p=1484004</link>
        <description><![CDATA[Adil: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=174353&view=findpost&p=1483902'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>vmp &#064; <time class="tag-quote__quoted-time" datetime="2007-03-14T09:14:55+00:00">14.03.07, 09:14</time></span><div class='quote '>typedef   signed char schar;</div></div>Сильно...<br>
Внушает.]]></description>
        <author>Adil</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=174353&amp;view=findpost&amp;p=1483902</guid>
        <pubDate>Wed, 14 Mar 2007 09:14:55 +0000</pubDate>
        <title>DOS, Borland C и 32 бита....</title>
        <link>https://forum.sources.ru/index.php?showtopic=174353&amp;view=findpost&amp;p=1483902</link>
        <description><![CDATA[vmp: Вот кусок рабочего кода, который я использую при работе с нашими PCI-устройствами. Именно BC31, DOS.<br>
ВАЖНО&#33; В настройках проекта поставить Option | Compiler | Advanced code generation | Instruction set -&gt; 80386.<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">typedef &nbsp; signed char schar;</div><div class="code_line">typedef unsigned char byte;</div><div class="code_line">typedef unsigned short word;</div><div class="code_line">typedef unsigned long dword;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">dword devid &nbsp;= 0x11112222; // Vendor ID, Device ID</div><div class="code_line">dword devno = 0; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; // Номер устройства (если несколько) </div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">#define outportv(addr,data) _DX = (addr); _EAX = (dword)(data); asm db 0x66; asm out dx,ax;</div><div class="code_line">#define _inportd(addr) _DX = (addr); asm db 0x66; asm in ax,dx;</div><div class="code_line">#define inportv(addr,v) _DX = (addr); asm db 0x66; asm in ax,dx; v = _EAX;</div><div class="code_line">&nbsp;</div><div class="code_line">dword inportd(word addr)</div><div class="code_line">{</div><div class="code_line">&nbsp;_DX = (addr);</div><div class="code_line">&nbsp;asm db 0x66;</div><div class="code_line">&nbsp;asm in ax,dx;</div><div class="code_line">&nbsp;return _EAX;</div><div class="code_line">}</div><div class="code_line">&nbsp;</div><div class="code_line">void outportd(word addr, dword data)</div><div class="code_line">{</div><div class="code_line">&nbsp;_DX = addr;</div><div class="code_line">&nbsp;_EAX = data;</div><div class="code_line">&nbsp;asm db 0x66;</div><div class="code_line">&nbsp;asm out dx,ax;</div><div class="code_line">}</div><div class="code_line">&nbsp;</div><div class="code_line">//-------------------------------------------------------------</div><div class="code_line">// Инициализация устройства</div><div class="code_line">//-------------------------------------------------------------</div><div class="code_line">void FindDev(void)</div><div class="code_line">{</div><div class="code_line">&nbsp;_SI = (word) devno;</div><div class="code_line">&nbsp;_DX = (word) (devid &#62;&#62; 16);</div><div class="code_line">&nbsp;_CX = (word) devid;</div><div class="code_line">&nbsp;_AX = 0xB102;</div><div class="code_line">&nbsp;asm int 0x1A;</div><div class="code_line">&nbsp;if (_AH != 0)</div><div class="code_line">&nbsp;&nbsp;{</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;_SI = (word) devno;</div><div class="code_line">&nbsp;_DX = (word) (devid1 &#62;&#62; 16);</div><div class="code_line">&nbsp;_CX = (word) devid1;</div><div class="code_line">&nbsp;_AX = 0xB102;</div><div class="code_line">&nbsp;asm int 0x1A;</div><div class="code_line">&nbsp;if (_AH != 0)</div><div class="code_line">&nbsp;&nbsp;{</div><div class="code_line">&nbsp;&nbsp; printf(&quot;Ошибка поиска устройства\n&quot;);</div><div class="code_line">&nbsp;&nbsp; exit(4);</div><div class="code_line">&nbsp;&nbsp;}</div><div class="code_line">&nbsp;&nbsp;}</div><div class="code_line">&nbsp;bx = _BX;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;_DI = 0x10;</div><div class="code_line">&nbsp;_BX = bx;</div><div class="code_line">&nbsp;_AX = 0xB108 + 2;</div><div class="code_line">&nbsp;asm int 0x1A;</div><div class="code_line">&nbsp;if (_AH != 0)</div><div class="code_line">&nbsp;&nbsp;{</div><div class="code_line">&nbsp;&nbsp; printf(&quot;Ошибка чтения устройства\n&quot;);</div><div class="code_line">&nbsp;&nbsp; exit(4);</div><div class="code_line">&nbsp;&nbsp;}</div><div class="code_line">&nbsp;bar10 = _ECX;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;base = bar10 &amp; 0xFFFC;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;_DI = 0x3C;</div><div class="code_line">&nbsp;_BX = bx;</div><div class="code_line">&nbsp;_AX = 0xB108 + 0;</div><div class="code_line">&nbsp;asm int 0x1A;</div><div class="code_line">&nbsp;irq = _CL;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;if (irq &#60; 8)</div><div class="code_line">&nbsp;&nbsp; intno = irq + 0x08;</div><div class="code_line">&nbsp;else</div><div class="code_line">&nbsp;&nbsp; intno = irq - 8 + 0x70;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;printf(&quot;BAR10 = %08lX, Base = %04X, IRQ = %d\n&quot;, bar10, base, irq);</div><div class="code_line">&nbsp;if (base == 0)</div><div class="code_line">&nbsp;&nbsp; exit(4);</div><div class="code_line">}</div></ol></div></div></div></div>]]></description>
        <author>vmp</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=174353&amp;view=findpost&amp;p=1483821</guid>
        <pubDate>Wed, 14 Mar 2007 08:10:32 +0000</pubDate>
        <title>DOS, Borland C и 32 бита....</title>
        <link>https://forum.sources.ru/index.php?showtopic=174353&amp;view=findpost&amp;p=1483821</link>
        <description><![CDATA[vadymko: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=174353&view=findpost&p=1482925'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>cppasm &#064; <time class="tag-quote__quoted-time" datetime="2007-03-13T12:42:55+00:00">13.03.07, 12:42</time></span><div class='quote '>Уточнил как?<br>
Это в PCI conf прописано или ты другими путями какими-то смотрел?</div></div><br>
Уточнил собственной программой ;) Пример получения этого адреса присутствует в приведенных примерах и работает для всех карт одинаково. Тут идет работа с обычными вордами и все уже откатано и чудно работает. Тот же адрес показывает и собственная адвантековская утилитка под виндой. <br>
Еще раз уточню чтоб вопросов в эту сторону не было - с другими платами этой серии (с теми же платами цифрового ввода/вывода) все работает, то есть и получение адреса, и вывод значений.<br>
<br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=174353&view=findpost&p=1482925'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>cppasm &#064; <time class="tag-quote__quoted-time" datetime="2007-03-13T12:42:55+00:00">13.03.07, 12:42</time></span><div class='quote '>Снять можно скажем этой утилитой:</div></div><br>
Как попаду к железу сниму и скину ;)]]></description>
        <author>vadymko</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=174353&amp;view=findpost&amp;p=1483142</guid>
        <pubDate>Tue, 13 Mar 2007 14:32:48 +0000</pubDate>
        <title>DOS, Borland C и 32 бита....</title>
        <link>https://forum.sources.ru/index.php?showtopic=174353&amp;view=findpost&amp;p=1483142</link>
        <description><![CDATA[cppasm: <span class="tag-color tag-color-named" data-value="gray" style="color: gray"><div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=174353&view=findpost&p=1482961'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>archimed7592 &#064; <time class="tag-quote__quoted-time" datetime="2007-03-13T12:57:54+00:00">13.03.07, 12:57</time></span><div class='quote '>просто в моём понимание адрес - это адрес, а никак не порт...</div></div><br>
Ну у тя ж тоже адрес есть, хоть ты и не в памяти живёш ;)</span>]]></description>
        <author>cppasm</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=174353&amp;view=findpost&amp;p=1483137</guid>
        <pubDate>Tue, 13 Mar 2007 14:29:11 +0000</pubDate>
        <title>DOS, Borland C и 32 бита....</title>
        <link>https://forum.sources.ru/index.php?showtopic=174353&amp;view=findpost&amp;p=1483137</link>
        <description><![CDATA[Adil: Базовый адрес - это базовый адрес порта :)]]></description>
        <author>Adil</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=174353&amp;view=findpost&amp;p=1482961</guid>
        <pubDate>Tue, 13 Mar 2007 12:57:54 +0000</pubDate>
        <title>DOS, Borland C и 32 бита....</title>
        <link>https://forum.sources.ru/index.php?showtopic=174353&amp;view=findpost&amp;p=1482961</link>
        <description><![CDATA[archimed7592: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=174353&view=findpost&p=1482925'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>cppasm &#064; <time class="tag-quote__quoted-time" datetime="2007-03-13T12:42:55+00:00">13.03.07, 12:42</time></span><div class='quote '><span class="tag-color tag-color-named" data-value="gray" style="color: gray">Это откуда такие выводы?<br>
Базовый адрес - это базовый адрес.</span></div></div><span class="tag-color tag-color-named" data-value="gray" style="color: gray">:) просто в моём понимание адрес - это адрес, а никак не порт...но как я упомянул выше, судя по исходникам под базовым адресом у них понимается порт...а м. б. и не у них одних :)</span>]]></description>
        <author>archimed7592</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=174353&amp;view=findpost&amp;p=1482925</guid>
        <pubDate>Tue, 13 Mar 2007 12:42:55 +0000</pubDate>
        <title>DOS, Borland C и 32 бита....</title>
        <link>https://forum.sources.ru/index.php?showtopic=174353&amp;view=findpost&amp;p=1482925</link>
        <description><![CDATA[cppasm: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=174353&view=findpost&p=1482477'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>archimed7592 &#064; <time class="tag-quote__quoted-time" datetime="2007-03-13T08:26:57+00:00">13.03.07, 08:26</time></span><div class='quote '>ну раз чудненько получается адрес, то наверное Memory Mapped IO </div></div><br>
Это откуда такие выводы?<br>
Базовый адрес - это базовый адрес.<br>
Просто адрес относительно которого отсчитываются все адреса регистров устройства.<br>
Может быть как Port IO, так и Memory Mapped IO.<br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=174353&view=findpost&p=1482834'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>vadymko &#064; <time class="tag-quote__quoted-time" datetime="2007-03-13T11:53:31+00:00">13.03.07, 11:53</time></span><div class='quote '>Вот уточнил - базовые адреса плат идут 0xC100, 0xC200 и т.д.... </div></div><br>
Уточнил как?<br>
Это в PCI conf прописано или ты другими путями какими-то смотрел?<br>
Вообще дамп конфигурационного пространства PCI этой платы очень бы помог - многое бы прояснилось...<br>
Снять можно скажем этой утилитой: http://members.datafast.net.au/dft0802/downloads/pci32.zip<br>
Запускать из консоли как-то так: <div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">PCI32.EXE -D&#62;pci.txt</div></ol></div></div></div></div><br>
Отчёт будет в pci.txt, запости сюда, а лучше приаттач.]]></description>
        <author>cppasm</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=174353&amp;view=findpost&amp;p=1482842</guid>
        <pubDate>Tue, 13 Mar 2007 11:57:04 +0000</pubDate>
        <title>DOS, Borland C и 32 бита....</title>
        <link>https://forum.sources.ru/index.php?showtopic=174353&amp;view=findpost&amp;p=1482842</link>
        <description><![CDATA[archimed7592: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=174353&view=findpost&p=1482834'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>vadymko &#064; <time class="tag-quote__quoted-time" datetime="2007-03-13T11:53:31+00:00">13.03.07, 11:53</time></span><div class='quote '>Вот уточнил - базовые адреса плат идут 0xC100, 0xC200 и т.д....</div></div>насколько я понял из примеров на которые ты дал ссылку, под базовым адресом понимается порт в который ты должен писать значения, а не адрес в памяти :) так что out 0c100h, eax тебе в помощь :)]]></description>
        <author>archimed7592</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=174353&amp;view=findpost&amp;p=1482834</guid>
        <pubDate>Tue, 13 Mar 2007 11:53:31 +0000</pubDate>
        <title>DOS, Borland C и 32 бита....</title>
        <link>https://forum.sources.ru/index.php?showtopic=174353&amp;view=findpost&amp;p=1482834</link>
        <description><![CDATA[vadymko: Вот уточнил - базовые адреса плат идут 0xC100, 0xC200  и т.д....]]></description>
        <author>vadymko</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=174353&amp;view=findpost&amp;p=1482479</guid>
        <pubDate>Tue, 13 Mar 2007 08:28:50 +0000</pubDate>
        <title>DOS, Borland C и 32 бита....</title>
        <link>https://forum.sources.ru/index.php?showtopic=174353&amp;view=findpost&amp;p=1482479</link>
        <description><![CDATA[vadymko: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=174353&view=findpost&p=1482450'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>AndNot &#064; <time class="tag-quote__quoted-time" datetime="2007-03-13T08:04:48+00:00">13.03.07, 08:04</time></span><div class='quote '>Другой вопрос если само железо не поддерживает 32-х битные операции с портами.</div></div><br>
Ну железо - промышленный комп с гигагерцовым пеньком. И естественно из под винды адвантековскими тестовыми утилитками плата чудненько управляется.<br>
Я раньше работал с их платами в досе - все чудно шло, но с вордовыми обменами. А с 32 битами вот с первой платой столкнулся... <br>
<br>
<span class="tag-color tag-color-named" data-value="gray" style="color: gray"><span class='tag-size' data-value='7' style='font-size:7pt;'>Добавлено <time class="tag-mergetime" datetime="2007-03-13T08:36:19+00:00">13.03.07, 08:36</time></span></span><br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=174353&view=findpost&p=1482475'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>cppasm &#064; <time class="tag-quote__quoted-time" datetime="2007-03-13T08:25:48+00:00">13.03.07, 08:25</time></span><div class='quote '>И какой адрес получается при чтении из конфигурационного пространства PCI?</div></div><br>
Сейчас точно не скажу - но адрес недалеко, где то что то типа 0x0C00<br>
Я говорил, что уже работал с этими платами, и с 16 разрядами все работало]]></description>
        <author>vadymko</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=174353&amp;view=findpost&amp;p=1482477</guid>
        <pubDate>Tue, 13 Mar 2007 08:26:57 +0000</pubDate>
        <title>DOS, Borland C и 32 бита....</title>
        <link>https://forum.sources.ru/index.php?showtopic=174353&amp;view=findpost&amp;p=1482477</link>
        <description><![CDATA[archimed7592: ну раз чудненько получается адрес, то наверное Memory Mapped IO :)]]></description>
        <author>archimed7592</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=174353&amp;view=findpost&amp;p=1482475</guid>
        <pubDate>Tue, 13 Mar 2007 08:25:48 +0000</pubDate>
        <title>DOS, Borland C и 32 бита....</title>
        <link>https://forum.sources.ru/index.php?showtopic=174353&amp;view=findpost&amp;p=1482475</link>
        <description><![CDATA[cppasm: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=174353&view=findpost&p=1482471'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>archimed7592 &#064; <time class="tag-quote__quoted-time" datetime="2007-03-13T08:22:56+00:00">13.03.07, 08:22</time></span><div class='quote '>адрес небось далеко за мегабайтом лежит? а ты в него ещё записывать чего-то пытаешься</div></div><br>
Вот это на мысли наводит :)<br>
А плата использует Port IO или Memory Mapped IO?<br>
И какой адрес получается при чтении из конфигурационного пространства PCI?]]></description>
        <author>cppasm</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=174353&amp;view=findpost&amp;p=1482471</guid>
        <pubDate>Tue, 13 Mar 2007 08:22:56 +0000</pubDate>
        <title>DOS, Borland C и 32 бита....</title>
        <link>https://forum.sources.ru/index.php?showtopic=174353&amp;view=findpost&amp;p=1482471</link>
        <description><![CDATA[archimed7592: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=174353&view=findpost&p=1482467'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>vadymko &#064; <time class="tag-quote__quoted-time" datetime="2007-03-13T08:19:58+00:00">13.03.07, 08:19</time></span><div class='quote '>Адрес чудненько получается,</div></div>адрес небось далеко за мегабайтом лежит? а ты в него ещё записывать чего-то пытаешься :)]]></description>
        <author>archimed7592</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=174353&amp;view=findpost&amp;p=1482467</guid>
        <pubDate>Tue, 13 Mar 2007 08:19:58 +0000</pubDate>
        <title>DOS, Borland C и 32 бита....</title>
        <link>https://forum.sources.ru/index.php?showtopic=174353&amp;view=findpost&amp;p=1482467</link>
        <description><![CDATA[vadymko: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=174353&view=findpost&p=1482422'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>cppasm &#064; <time class="tag-quote__quoted-time" datetime="2007-03-13T07:40:03+00:00">13.03.07, 07:40</time></span><div class='quote '>Проблема не в том что не работает 32-битный ввод/вывод, а в том что ты не знаеш протокола общения с устройством.</div></div><br>
<br>
Протокол состоит в банальной низкоуровневой записи в регистр платы по базовому адресу выдаваемому биосом для данной PCI платы. Адрес чудненько получается, а вот реакции на запись не происходит.<br>
<br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=174353&view=findpost&p=1482422'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>cppasm &#064; <time class="tag-quote__quoted-time" datetime="2007-03-13T07:40:03+00:00">13.03.07, 07:40</time></span><div class='quote '>Вот это не сильно понял, это таблица?</div></div><br>
нет это побитовая раскладка команды (это то мне как микроконтрольщику и понятнее всего  :D  ):<br>
то есть младшие 14 бит - это значение для ЦАПа<br>
потом 2 бита - задают режим его работы <br>
следующие 8 бит задают номер канала (их на плате 32 штуки)<br>
ну и старшие 8 бит не используются.<br>
<br>
Значение Offset задает местонахождение этого регистра относительно базового адреса платы (в данном случае 0x00 )<br>
Сформированная по этому образу команда и загоняется в этот регистр.]]></description>
        <author>vadymko</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=174353&amp;view=findpost&amp;p=1482450</guid>
        <pubDate>Tue, 13 Mar 2007 08:04:48 +0000</pubDate>
        <title>DOS, Borland C и 32 бита....</title>
        <link>https://forum.sources.ru/index.php?showtopic=174353&amp;view=findpost&amp;p=1482450</link>
        <description><![CDATA[AndNot: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=174353&view=findpost&p=1482415'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>vadymko &#064; <time class="tag-quote__quoted-time" datetime="2007-03-13T07:33:29+00:00">13.03.07, 07:33</time></span><div class='quote '>сгенерирует процессору опкод вывода 32-разрядного слова, а не любимого 16-битного  , хотя вроде по написанию должен </div></div><br>
Ясно. Для режима 16-бит перед коммандами ставится опкод 66h. Например так:<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">dword inportd (port: word) {</div><div class="code_line">&nbsp;&nbsp;asm {</div><div class="code_line">&nbsp;&nbsp; &nbsp;mov dx, [port]</div><div class="code_line">&nbsp;&nbsp; &nbsp;db 66h</div><div class="code_line">&nbsp;&nbsp; &nbsp;in ax, dx</div><div class="code_line">&nbsp;&nbsp;}</div><div class="code_line">}</div><div class="code_line">outportd (port: word; num: dword) {</div><div class="code_line">&nbsp;&nbsp;asm {</div><div class="code_line">&nbsp;&nbsp; &nbsp;db 66h &nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;mov ax, word ptr [num]</div><div class="code_line">&nbsp;&nbsp; &nbsp;mov dx, [port]</div><div class="code_line">&nbsp;&nbsp; &nbsp;db 66h</div><div class="code_line">&nbsp;&nbsp; &nbsp;out dx ,ax</div></ol></div></div></div></div><br>
И так далее, таким макаром. Так что внешние модули не нужны. Другой вопрос если само железо не поддерживает 32-х битные операции с портами.]]></description>
        <author>AndNot</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=174353&amp;view=findpost&amp;p=1482422</guid>
        <pubDate>Tue, 13 Mar 2007 07:40:03 +0000</pubDate>
        <title>DOS, Borland C и 32 бита....</title>
        <link>https://forum.sources.ru/index.php?showtopic=174353&amp;view=findpost&amp;p=1482422</link>
        <description><![CDATA[cppasm: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=174353&view=findpost&p=1482415'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>vadymko &#064; <time class="tag-quote__quoted-time" datetime="2007-03-13T07:33:29+00:00">13.03.07, 07:33</time></span><div class='quote '>то есть стек идет в минуса, а в вышеприведенном примере в плюса... </div></div><br>
Ну это кому как нравится.<br>
Просто всё зависит от того куда указывает bp.<br>
<br>
А по поводу темы в общем - приведённые выше процедуры 100% рабочие.<br>
И tasm всё нормально откомпилирует.<br>
Проблема не в том что не работает 32-битный ввод/вывод, а в том что ты не знаеш протокола общения с устройством.<br>
<br>
<br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=174353&view=findpost&p=1481142'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>vadymko &#064; <time class="tag-quote__quoted-time" datetime="2007-03-12T06:42:49+00:00">12.03.07, 06:42</time></span><div class='quote '>Offset___________PCI-1724U Register Format<br>
Address____D31~D24_____D23~D16_____D15__D14__D13~D0<br>
<br>
0x00_________N/A____Group/Channel___REG1_REG0___DAC <br>
______________________Select Bit________________Data <br>
______________________________________________Code</div></div><br>
Вот это не сильно понял, это таблица?]]></description>
        <author>cppasm</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=174353&amp;view=findpost&amp;p=1482415</guid>
        <pubDate>Tue, 13 Mar 2007 07:33:29 +0000</pubDate>
        <title>DOS, Borland C и 32 бита....</title>
        <link>https://forum.sources.ru/index.php?showtopic=174353&amp;view=findpost&amp;p=1482415</link>
        <description><![CDATA[vadymko: Функции всего две - ввод/вывод 32 битного слова  из/в внешнюю шину.<br>
В принципе все это реализовано в приведенном примере.<br>
Все красиво реализовано - и передача и обработка 32 бит, единственно <br>
меня терзают смутные сомнения, что  TASM в строке<br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=174353&view=findpost&p=1476905'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Adil &#064; <time class="tag-quote__quoted-time" datetime="2007-03-07T08:42:10+00:00">07.03.07, 08:42</time></span><div class='quote '>out dx, eax</div></div><br>
сгенерирует процессору опкод вывода 32-разрядного слова, а не любимого 16-битного  :unsure: , хотя вроде по написанию должен  :rolleyes: <br>
<br>
Watcom не применял только изза неприменения ранее ;). Сам специализируюсь на программировании микроконтролеров, поэтому это для меня где то немного чуждая задача  навязанная извне :wall: <br>
<br>
З.Ы. Кстати не судите строго (или обьясните-не спец в ассемблере под ПК), но вот команда <br>
---<br>
outport (dwBaseAddr,v_int);<br>
---<br>
в сгенеренном ассемблере выглядит:<br>
	?debug	L 11<br>
	mov	dx,word ptr [bp-8]<br>
	mov	ax,word ptr [bp-4]<br>
	out	dx,ax<br>
<br>
то есть стек идет в минуса, а в вышеприведенном примере в плюса...]]></description>
        <author>vadymko</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=174353&amp;view=findpost&amp;p=1481879</guid>
        <pubDate>Mon, 12 Mar 2007 15:27:15 +0000</pubDate>
        <title>DOS, Borland C и 32 бита....</title>
        <link>https://forum.sources.ru/index.php?showtopic=174353&amp;view=findpost&amp;p=1481879</link>
        <description><![CDATA[AndNot: Можно. Только уточни какие функции и с какими параметрами нужны. Кстати, а почему бы на ватком Си не попробовать?]]></description>
        <author>AndNot</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=174353&amp;view=findpost&amp;p=1481546</guid>
        <pubDate>Mon, 12 Mar 2007 11:33:23 +0000</pubDate>
        <title>DOS, Borland C и 32 бита....</title>
        <link>https://forum.sources.ru/index.php?showtopic=174353&amp;view=findpost&amp;p=1481546</link>
        <description><![CDATA[vadymko: Кстати может кто поможет бедному ;) скомпилирует библиотечку 32-разрядным инструментом каким либо что нибудь типа вышеприведенного?<br>Назовем ее типа &quot;Вывод INT32 в порт в DOSе&quot;  8-)]]></description>
        <author>vadymko</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=174353&amp;view=findpost&amp;p=1481142</guid>
        <pubDate>Mon, 12 Mar 2007 06:42:49 +0000</pubDate>
        <title>DOS, Borland C и 32 бита....</title>
        <link>https://forum.sources.ru/index.php?showtopic=174353&amp;view=findpost&amp;p=1481142</link>
        <description><![CDATA[vadymko: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=174353&view=findpost&p=1476962'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>vadymko &#064; <time class="tag-quote__quoted-time" datetime="2007-03-07T09:20:18+00:00">07.03.07, 09:20</time></span><div class='quote '>В вставках компилятор не узнаёт EAX, но сам tasm от BC3.1 м расширенными регистрами работает.<br>
Не проверял в работе, но компилируется и линкуется и должно прокатить</div></div><br>
С сожалением приходится констатировать - не прокатило :( Результат тот же когда я работал обычным 16-разрядным outport-ом, то есть нулевой :(<br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=174353&view=findpost&p=1477497'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>AndNot &#064; <time class="tag-quote__quoted-time" datetime="2007-03-07T15:45:23+00:00">07.03.07, 15:45</time></span><div class='quote '>Можно подобрать. Например ясно что девайс опознается так:</div></div><br>
Ну это то как раз единственное что и работает.. Так как относится скорее не к самой плате а к PCI вообще... а дальше уже идет конкретика платы....<br>
<br>
Вот оттуда же из руководства - команда выглядит так:<br>
<br>
Offset___________PCI-1724U Register Format<br>
Address____D31~D24_____D23~D16_____D15__D14__D13~D0<br>
<br>
0x00_________N/A____Group/Channel___REG1_REG0___DAC <br>
______________________Select Bit________________Data <br>
______________________________________________Code<br>
<br>
Это все надо загнать одним смыком....]]></description>
        <author>vadymko</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=174353&amp;view=findpost&amp;p=1477497</guid>
        <pubDate>Wed, 07 Mar 2007 15:45:23 +0000</pubDate>
        <title>DOS, Borland C и 32 бита....</title>
        <link>https://forum.sources.ru/index.php?showtopic=174353&amp;view=findpost&amp;p=1477497</link>
        <description><![CDATA[AndNot: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=174353&view=findpost&p=1476962'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>vadymko &#064; <time class="tag-quote__quoted-time" datetime="2007-03-07T09:20:18+00:00">07.03.07, 09:20</time></span><div class='quote '>Вот примеры в инете (500кб), такие же и на диске, но именно на эту плату нет </div></div><br>
Можно подобрать. Например ясно что девайс опознается так:<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">&nbsp;&nbsp; iErrCode = find_pci_device(</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 0x1724,</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 0x13fe,</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 0,</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &amp;ucBusNumber,</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &amp;ucDevAndFunc );</div><div class="code_line">&nbsp;&nbsp; if (iErrCode == NOT_SUCCESSFUL )</div><div class="code_line">&nbsp;&nbsp; {</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;printf(&quot;\nPCI-1724 search fail.\n&quot;);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;exit(1);</div><div class="code_line">&nbsp;&nbsp; }</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; //</div><div class="code_line">&nbsp;&nbsp; //Get base address, from PCI base address range 2</div><div class="code_line">&nbsp;&nbsp; //</div><div class="code_line">&nbsp;&nbsp; iErrCode = read_configuration_dword(</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ucBusNumber,</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ucDevAndFunc,</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; PCI_CS_BASE_ADDRESS_2,</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &amp;dwData);</div><div class="code_line">&nbsp;&nbsp; if (iErrCode == NOT_SUCCESSFUL)</div><div class="code_line">&nbsp;&nbsp; {</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;printf(&quot;\nPCI-1724 gets base address fail.\n&quot;);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;exit(1);</div><div class="code_line">&nbsp;&nbsp; }</div><div class="code_line">&nbsp;&nbsp; else</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;dwBaseAddr = dwData &amp; 0xfffffffc;</div></ol></div></div></div></div><br>
Это уже не мало. Далее можешь попытаться сделать как и для модели 1720. Скорее всего разница у них не очень большая, можно и в кон попасть. Или дизассмить VxD дрова на твою плату.]]></description>
        <author>AndNot</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=174353&amp;view=findpost&amp;p=1476962</guid>
        <pubDate>Wed, 07 Mar 2007 09:20:18 +0000</pubDate>
        <title>DOS, Borland C и 32 бита....</title>
        <link>https://forum.sources.ru/index.php?showtopic=174353&amp;view=findpost&amp;p=1476962</link>
        <description><![CDATA[vadymko: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=174353&view=findpost&p=1476894'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>AndNot &#064; <time class="tag-quote__quoted-time" datetime="2007-03-07T08:35:43+00:00">07.03.07, 08:35</time></span><div class='quote '>А конкретнее?</div></div><br>
The PCI-1724U is delivered with an easy-to-use 32-bit device driver for <br>
user programming under the Windows 2000/95/98/ME/XP operating sys-<br>
tems. We advise users to program the PCI-1724U using the 32-bit device <br>
drivers provided by Advantech to avoid the complexity of low-level reg-<br>
istry programming. <br>
<br>
Вот примеры в инете (500кб), такие же и на диске, но именно на эту плату нет :(<br>
http://taiwan.advantech.com.tw/unzipfunc/unzipfile.asp?File_Id=1%2BFW%2B2428<br>
<br>
Базовый адрес естественно я получу от биоса, но по этому адресу мне надо записать 32-разрядное слово, в два смыка (2 ворда со смещением) естественно сразу попробовал - не катит<br>
<br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=174353&view=findpost&p=1476905'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Adil &#064; <time class="tag-quote__quoted-time" datetime="2007-03-07T08:42:10+00:00">07.03.07, 08:42</time></span><div class='quote '>В вставках компилятор не узнаёт EAX, но сам tasm от BC3.1 м расширенными регистрами работает.<br>
Не проверял в работе, но компилируется и линкуется и должно прокатить</div></div><br>
<br>
А вот это уже интересно, спасибо, попробую...]]></description>
        <author>vadymko</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=174353&amp;view=findpost&amp;p=1476905</guid>
        <pubDate>Wed, 07 Mar 2007 08:42:10 +0000</pubDate>
        <title>DOS, Borland C и 32 бита....</title>
        <link>https://forum.sources.ru/index.php?showtopic=174353&amp;view=findpost&amp;p=1476905</link>
        <description><![CDATA[Adil: В вставках компилятор не узнаёт EAX, но сам tasm от BC3.1 м расширенными регистрами работает.<br>
Не проверял в работе, но компилируется и линкуется и должно прокатить<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">; FILE &#39;port32.asm&#39;</div><div class="code_line">;32bit input/output function</div><div class="code_line">&nbsp;&nbsp; &nbsp;.386p</div><div class="code_line">PORT32_TEXT segment byte public use16 &#39;CODE&#39;</div><div class="code_line">&nbsp;&nbsp; &nbsp;assume &nbsp;cs:PORT32_TEXT</div><div class="code_line">_inpdw &nbsp;proc &nbsp; &nbsp;far</div><div class="code_line">&nbsp;&nbsp; &nbsp;push &nbsp; &nbsp;bp</div><div class="code_line">&nbsp;&nbsp; &nbsp;mov bp, sp</div><div class="code_line">&nbsp;&nbsp; &nbsp;mov dx, word ptr [bp+6]</div><div class="code_line">&nbsp;&nbsp; &nbsp;in &nbsp;eax, dx</div><div class="code_line">&nbsp;&nbsp; &nbsp;shld &nbsp; &nbsp;edx, eax, 16 ;исправлена ошибка - возвращаться должно через dx:ax - спасибо [b]cppasm[/b]</div><div class="code_line">&nbsp;&nbsp; &nbsp;ret</div><div class="code_line">_inpdw &nbsp;endp</div><div class="code_line">_outpdw proc &nbsp; &nbsp;far</div><div class="code_line">&nbsp;&nbsp; &nbsp;push &nbsp; &nbsp;bp</div><div class="code_line">&nbsp;&nbsp; &nbsp;mov bp, sp</div><div class="code_line">&nbsp;&nbsp; &nbsp;mov dx, word ptr [bp+6]</div><div class="code_line">&nbsp;&nbsp; &nbsp;mov eax, dword ptr [bp+8]</div><div class="code_line">&nbsp;&nbsp; &nbsp;out dx, eax</div><div class="code_line">&nbsp;&nbsp; &nbsp;pop bp</div><div class="code_line">&nbsp;&nbsp; &nbsp;ret</div><div class="code_line">_outpdw endp</div><div class="code_line">PORT32_TEXT ends</div><div class="code_line">&nbsp;&nbsp; &nbsp;public &nbsp;_outpdw</div><div class="code_line">&nbsp;&nbsp; &nbsp;public &nbsp;_inpdw</div><div class="code_line">&nbsp;&nbsp; &nbsp;end</div></ol></div></div></div></div>Подключаешь этот файл к борландовскому проекту и можно юзать типа<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">extern &quot;C&quot; {</div><div class="code_line">&nbsp;&nbsp; &nbsp;unsigned long __cdecl inpdw(unsigned int port);</div><div class="code_line">&nbsp;&nbsp; &nbsp;void __cdecl outpdw(unsigned int port, unsigned long value);</div><div class="code_line">}</div><div class="code_line">&nbsp;&nbsp; &nbsp;unsigned long i = inpdw(25);</div><div class="code_line">&nbsp;&nbsp; &nbsp;outpdw(25, i);</div></ol></div></div></div></div>]]></description>
        <author>Adil</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=174353&amp;view=findpost&amp;p=1476894</guid>
        <pubDate>Wed, 07 Mar 2007 08:35:43 +0000</pubDate>
        <title>DOS, Borland C и 32 бита....</title>
        <link>https://forum.sources.ru/index.php?showtopic=174353&amp;view=findpost&amp;p=1476894</link>
        <description><![CDATA[AndNot: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=174353&view=findpost&p=1476178'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>vadymko &#064; <time class="tag-quote__quoted-time" datetime="2007-03-06T14:10:22+00:00">06.03.07, 14:10</time></span><div class='quote '>&quot;эта плата специально разработана для легкого использования с помощью 32 бит комманд&quot;</div></div><br>
А конкретнее?<br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=174353&view=findpost&p=1476792'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>vadymko &#064; <time class="tag-quote__quoted-time" datetime="2007-03-07T07:45:40+00:00">07.03.07, 07:45</time></span><div class='quote '>Типы то есть, но во внешний порт, коим является PCI - плата как их засунуть?</div></div><br>
Это не вопрос. Адреса и порты платы можешь узнать с помощью PCI-BIOS.<br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=174353&view=findpost&p=1476792'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>vadymko &#064; <time class="tag-quote__quoted-time" datetime="2007-03-07T07:45:40+00:00">07.03.07, 07:45</time></span><div class='quote '>На диске шли сишный файлик для работы с PCI, примеры для DOS</div></div><br>
Примеры в какую тему?]]></description>
        <author>AndNot</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=174353&amp;view=findpost&amp;p=1476792</guid>
        <pubDate>Wed, 07 Mar 2007 07:45:40 +0000</pubDate>
        <title>DOS, Borland C и 32 бита....</title>
        <link>https://forum.sources.ru/index.php?showtopic=174353&amp;view=findpost&amp;p=1476792</link>
        <description><![CDATA[vadymko: Типы то есть, но во внешний  порт, коим является PCI - плата как их засунуть?<br>На диске шли сишный файлик для работы с PCI, примеры для DOS и Вынь, и dll-ки для винды. В примерах для доса этой платы нету :(]]></description>
        <author>vadymko</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=174353&amp;view=findpost&amp;p=1476197</guid>
        <pubDate>Tue, 06 Mar 2007 14:21:25 +0000</pubDate>
        <title>DOS, Borland C и 32 бита....</title>
        <link>https://forum.sources.ru/index.php?showtopic=174353&amp;view=findpost&amp;p=1476197</link>
        <description><![CDATA[Nich: 32-битные типы в BC++ 3.1 вроде никто не отменял. Есть библиотека-то какая-нибудь для работы с этой платой?]]></description>
        <author>Nich</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=174353&amp;view=findpost&amp;p=1476178</guid>
        <pubDate>Tue, 06 Mar 2007 14:10:22 +0000</pubDate>
        <title>DOS, Borland C и 32 бита....</title>
        <link>https://forum.sources.ru/index.php?showtopic=174353&amp;view=findpost&amp;p=1476178</link>
        <description><![CDATA[vadymko: Хаюшки.<br>Вобщем тема такая - есть старая добрая программа написанная на Borland C++ 3.1, есть  компьютер на котором это все чудно работает под DOS, и появляется новое железо (а конкретно PCI плата ЦАП Advantech PCI-1724) и сразу же появляется вопрос :<br>Описание говорит что &quot;эта плата специально разработана для легкого использования с помощью 32 бит комманд&quot;  :huh: То есть чтоб задать ей какое то значение есть определенная команда длинною в жизнь... эээ в  32 бита... ;)<br>И возник тупик  :wall:  - реально ли вообще - может с помощью или его (Borland C) средств или ассемблерных вставок сделать вывод 32-битного слова в плату???<br>Если все таки реально подскажите как?]]></description>
        <author>vadymko</author>
        <category>C/C++: Общие вопросы</category>
      </item>
	
      </channel>
      </rss>
	