<?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=239555&amp;view=findpost&amp;p=3788377</guid>
        <pubDate>Mon, 21 Jan 2019 02:50:09 +0000</pubDate>
        <title>линейный адрес для DOS UMB</title>
        <link>https://forum.sources.ru/index.php?showtopic=239555&amp;view=findpost&amp;p=3788377</link>
        <description><![CDATA[andr00: Функция mov ax,4309h int 2Fh прекрасно работает на XMS v3+<br>Существует ли чтонибуть подабное для старых версий (например XMS v2)]]></description>
        <author>andr00</author>
        <category>Assembler</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=239555&amp;view=findpost&amp;p=3783630</guid>
        <pubDate>Fri, 23 Nov 2018 14:11:11 +0000</pubDate>
        <title>линейный адрес для DOS UMB</title>
        <link>https://forum.sources.ru/index.php?showtopic=239555&amp;view=findpost&amp;p=3783630</link>
        <description><![CDATA[Jin X: <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">--------m-2F4309-----------------------------</div><div class="code_line">INT 2F U - HIMEM.SYS v3.09+ - GET XMS HANDLE TABLE</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;AX = 4309h</div><div class="code_line">Return: AL = 43h if function supported</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;ES:BX -&#62; XMS handle table (see #02747)</div><div class="code_line">Note: &nbsp; HIMEM.SYS v3.09 is part of MS-DOS 6.0.</div><div class="code_line">SeeAlso: AX=4308h</div><div class="code_line">&nbsp;</div><div class="code_line">Format of XMS handle table:</div><div class="code_line">Offset &nbsp;Size &nbsp; &nbsp;Description &nbsp; &nbsp; (Table 02747)</div><div class="code_line">&nbsp;00h &nbsp; &nbsp;BYTE &nbsp; &nbsp;??? (01h in HIMEM.SYS v3.09)</div><div class="code_line">&nbsp;01h &nbsp; &nbsp;BYTE &nbsp; &nbsp;size of one handle descriptor</div><div class="code_line">&nbsp;02h &nbsp; &nbsp;WORD &nbsp; &nbsp;number of handles (default = 20h)</div><div class="code_line">&nbsp;04h &nbsp; &nbsp;DWORD &nbsp; pointer to XMS handle array (see #02748)</div><div class="code_line">SeeAlso: #02777</div><div class="code_line">&nbsp;</div><div class="code_line">Format of XMS handle descriptor [array]:</div><div class="code_line">Offset &nbsp;Size &nbsp; &nbsp;Description &nbsp; &nbsp; (Table 02748)</div><div class="code_line">&nbsp;00h &nbsp; &nbsp;BYTE &nbsp; &nbsp;flag</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;01h=free, 02h=used, 04h=in pool but not associated with any EMB</div><div class="code_line">&nbsp;01h &nbsp; &nbsp;BYTE &nbsp; &nbsp;lock count (00h=unlocked)</div><div class="code_line">&nbsp;02h &nbsp; &nbsp;DWORD &nbsp; address of XMS block in KB (shift left by 10 for abs. address)</div><div class="code_line">&nbsp;06h &nbsp; &nbsp;DWORD &nbsp; size of XMS block in KB</div></ol></div></div></div></div><script>preloadCodeButtons('1');</script>]]></description>
        <author>Jin X</author>
        <category>Assembler</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=239555&amp;view=findpost&amp;p=3783469</guid>
        <pubDate>Thu, 22 Nov 2018 10:24:52 +0000</pubDate>
        <title>линейный адрес для DOS UMB</title>
        <link>https://forum.sources.ru/index.php?showtopic=239555&amp;view=findpost&amp;p=3783469</link>
        <description><![CDATA[andr00: Можно подробнее о функции<br>mov ax,4309h<br>int 2Fh]]></description>
        <author>andr00</author>
        <category>Assembler</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=239555&amp;view=findpost&amp;p=1992122</guid>
        <pubDate>Fri, 20 Jun 2008 16:01:10 +0000</pubDate>
        <title>линейный адрес для DOS UMB</title>
        <link>https://forum.sources.ru/index.php?showtopic=239555&amp;view=findpost&amp;p=1992122</link>
        <description><![CDATA[AndNot: Хорош вам спорить :) Абсолютно все ОС, в целях совместимости со старым програмным обеспечением, предоставляют средства для выделения памяти в первом мегабайте. Что касается следующих 15-ти метров, то не стоит на них ориентироваться, если предполагается работа в виртуальном режиме, которым управляет не ваша прога. И с VDS не стоит заморачиваться, легко нарваться на неприятности. Вчера попробовал под 98-й виндой. Прога намертво висла, т.е. функции VDS не возвращали признаков ошибок (именно поэтому и висла). Стоило только заменить сервис VDS на старый-добрый ДОС, как все нормально заработало.<br>
Для тех, кто по прежнему считает, что можно безбояненно использовать сервис VDS советую заглянуть в &quot;The x86/MSDOS Interrupt List&quot;, от Ralf Brown. Далеко ходить не нужно: <div class='tag-quote'><span class='tag-quote-prefix'>Цитата</span> <div class='quote '>INT 4B - Virtual DMA Specification - LOCK DMA REGION<br>
        AX = 8103h<br>
        DX = flags (see #03220)<br>
        ES:DI -&gt; DMA descriptor structure (see #03221,#03222,#03223)<br>
Return: CF clear if successful<br>
            DDS physical address field filled in<br>
            DDS buffer ID field filled (0000h if no buffer allocated)<br>
        CF set on error<br>
            AL = error code (see #03218)<br>
            DDS region size field filled wth maximum contiguous length in bytes<br>
<strong class='tag-b'>BUGS</strong>:   Windows 3.0 does not correctly support automatic remapping or copying<br>
          in enhanced mode<br>
        Windows 3.0 in enhanced mode does not return a correct code on error<br>
</div></div><br>
Именно на этой функции у меня и висла прога под 98-й виндой ;) <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="2008-06-20T16:10:28+00:00">20.06.08, 16:10</time></span></span><br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=239555&view=findpost&p=1991408'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>cppasm &#064; <time class="tag-quote__quoted-time" datetime="2008-06-20T06:50:02+00:00">20.06.08, 06:50</time></span><div class='quote '>Даже все современные ПК на базе х86 считаются IBM-совместимыми, и так оно по сути и есть.</div></div>А теперь подумай, почему они считаются <strong class='tag-b'>совместимыми</strong>? Да потому, что они способны выполнять код 8086-го процессора, который и назывался IBM PC. Но с программами немножко по другому. Если твоя программа сможет выполняться на 8086-м, то это IBM PC совместимая прога, если же она расчитана на более совершенные модели процессоров/систем, то это уже x86-совместимость. Так что <strong class='tag-b'>andriano</strong> прав.]]></description>
        <author>AndNot</author>
        <category>Assembler</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=239555&amp;view=findpost&amp;p=1992063</guid>
        <pubDate>Fri, 20 Jun 2008 14:41:25 +0000</pubDate>
        <title>линейный адрес для DOS UMB</title>
        <link>https://forum.sources.ru/index.php?showtopic=239555&amp;view=findpost&amp;p=1992063</link>
        <description><![CDATA[vmp: Ключевые слова для гугления - Virtual DMA Services или VDS.<br>
<a class='tag-url' href='http://support.microsoft.com/kb/93469' target='_blank'>http://support.microsoft.com/kb/93469</a>]]></description>
        <author>vmp</author>
        <category>Assembler</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=239555&amp;view=findpost&amp;p=1991408</guid>
        <pubDate>Fri, 20 Jun 2008 06:50:02 +0000</pubDate>
        <title>линейный адрес для DOS UMB</title>
        <link>https://forum.sources.ru/index.php?showtopic=239555&amp;view=findpost&amp;p=1991408</link>
        <description><![CDATA[cppasm: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=239555&view=findpost&p=1990987'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>andriano &#064; <time class="tag-quote__quoted-time" datetime="2008-06-19T18:01:38+00:00">19.06.08, 18:01</time></span><div class='quote '>1. На каком именно чипсете это работает? Или ты возмешься утверждать, что на всех без исключения?</div></div><br>
Да, на всех без исключения чипсетах рассчитанных на работу с х286 и выше.<br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=239555&view=findpost&p=1990987'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>andriano &#064; <time class="tag-quote__quoted-time" datetime="2008-06-19T18:01:38+00:00">19.06.08, 18:01</time></span><div class='quote '>2. Адресное пространство IBM PC - 1 Мбайт. Все, что выше, не является IBM-совместимым.</div></div><br>
Какой-то странный у тебя критерий совместимости. Машина с i386 уже не является IBM-совместимой?<br>
Даже все современные ПК на базе х86 считаются IBM-совместимыми, и так оно по сути и есть.]]></description>
        <author>cppasm</author>
        <category>Assembler</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=239555&amp;view=findpost&amp;p=1990987</guid>
        <pubDate>Thu, 19 Jun 2008 18:01:38 +0000</pubDate>
        <title>линейный адрес для DOS UMB</title>
        <link>https://forum.sources.ru/index.php?showtopic=239555&amp;view=findpost&amp;p=1990987</link>
        <description><![CDATA[andriano: <strong class='tag-b'>cppasm</strong><br>
1. На каком именно чипсете это работает? Или ты возмешься утверждать, что на всех без исключения?<br>
2. Адресное пространство IBM PC - 1 Мбайт. Все, что выше, не является IBM-совместимым.]]></description>
        <author>andriano</author>
        <category>Assembler</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=239555&amp;view=findpost&amp;p=1987512</guid>
        <pubDate>Tue, 17 Jun 2008 07:14:32 +0000</pubDate>
        <title>линейный адрес для DOS UMB</title>
        <link>https://forum.sources.ru/index.php?showtopic=239555&amp;view=findpost&amp;p=1987512</link>
        <description><![CDATA[cppasm: Я спорить не собираюсь.<br>Ссылку выше привёл, и таких ещё найти можно множество.<br>С флопика например данные успешно читаются в буфер в первых 16Мб.<br>И кто сказал что этот режим является IBM не совместимым?]]></description>
        <author>cppasm</author>
        <category>Assembler</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=239555&amp;view=findpost&amp;p=1987100</guid>
        <pubDate>Mon, 16 Jun 2008 17:19:11 +0000</pubDate>
        <title>линейный адрес для DOS UMB</title>
        <link>https://forum.sources.ru/index.php?showtopic=239555&amp;view=findpost&amp;p=1987100</link>
        <description><![CDATA[andriano: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=239555&view=findpost&p=1985206'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>cppasm &#064; <time class="tag-quote__quoted-time" datetime="2008-06-13T09:51:38+00:00">13.06.08, 09:51</time></span><div class='quote '>Так что в принципе можно в первых 16Мб память выделять.<br>
http://elancev.h1.ru/texno/dma/dma.htm</div></div><br>
Есть такое понятие - IBM PC совместимый компьютер.<br>
В современном &quot;совместимом&quot; ися рассыпуха, которая была в оригинальном IBM PC, сосредоточена в одной микросхеме, при этом, как правило, никакого расширения функций не наблюдается, а вот наоборот - сколько угодно: приходилось сталкиваться со случаями, когда чипсет того или иного производителя поддерживал не все режимы DMA оригинального конроллера (а только часто используемые), имеют ограничение на длину буфера в 4 Кбайта и т.п.<br>
В оригинальном IBM PC был 1 Мбайт, и нет никаких оснований считать, что ВСЕ производители чипсетов будут расширять это пространство, причем единообразным способом.<br>
Опять же, функция выделеия памяти в 1-м Мбайте есть, а вот в первых 16-ти - что-то не припоминаю.]]></description>
        <author>andriano</author>
        <category>Assembler</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=239555&amp;view=findpost&amp;p=1986495</guid>
        <pubDate>Mon, 16 Jun 2008 05:33:07 +0000</pubDate>
        <title>линейный адрес для DOS UMB</title>
        <link>https://forum.sources.ru/index.php?showtopic=239555&amp;view=findpost&amp;p=1986495</link>
        <description><![CDATA[magol: Нашел - как.<br><br>С помощью VCPI, int 67h, функция 6:<br>&quot;Получить физический адрес страницы памяти, располагающейся в пределах первого мегабайта, т.е. в стандартной памяти&quot;.<br><br>Действительно отрабатывает как надо. Получаю реальные (32 бит) адреса для сегментов C000h, D000h, E000h.<br><br>Критический случай - когда программа загружена вверх, а VCPI отсутствует (адрес int 67h==NULL или VCPI просто не отзывается). <br><br>Пока доволен  :) <br>Всем спасибо &#33;]]></description>
        <author>magol</author>
        <category>Assembler</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=239555&amp;view=findpost&amp;p=1985206</guid>
        <pubDate>Fri, 13 Jun 2008 09:51:38 +0000</pubDate>
        <title>линейный адрес для DOS UMB</title>
        <link>https://forum.sources.ru/index.php?showtopic=239555&amp;view=findpost&amp;p=1985206</link>
        <description><![CDATA[cppasm: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=239555&view=findpost&p=1985137'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>andriano &#064; <time class="tag-quote__quoted-time" datetime="2008-06-13T08:31:16+00:00">13.06.08, 08:31</time></span><div class='quote '>Насколько я помню, для работы с DMA всегда память выделялась в первом Мбайте, причем надо было еще следить за тем, чтобы граница 64К-страницы не проходила внутри буфера, для чего при необходимости выделялось 2 буфера: один, чтобы выбрать память до границы страницы и второй - рабочий.</div></div><br>
Это смотря какой DMA :)<br>
В ISA было два вида DMA - очень старые DMA1 (адрес 4+16), и DMA2 (адрес 8+16).<br>
Сейчас в составе южного моста идут вроди оба (на самом деле он один - DMA2 просто расширение DMA1, адреса IO портов разные).<br>
Так что в принципе можно в первых 16Мб память выделять.<br>
http://elancev.h1.ru/texno/dma/dma.htm]]></description>
        <author>cppasm</author>
        <category>Assembler</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=239555&amp;view=findpost&amp;p=1985137</guid>
        <pubDate>Fri, 13 Jun 2008 08:31:16 +0000</pubDate>
        <title>линейный адрес для DOS UMB</title>
        <link>https://forum.sources.ru/index.php?showtopic=239555&amp;view=findpost&amp;p=1985137</link>
        <description><![CDATA[andriano: Насколько я помню, для работы с DMA <strong class='tag-b'>всегда</strong> память выделялась в первом Мбайте, причем надо было еще следить за тем, чтобы граница 64К-страницы не проходила внутри буфера, для чего при необходимости выделялось 2 буфера: один, чтобы выбрать память до границы страницы и второй - рабочий.<br>
Проблема связана с тем, что для уменьшения стоимости IBM PC был использован процессор с 8-разрядной внешней шиной (8088) и набор периферии не от 16-разрядных, а от 8-разрядных процессоров, работающих с максимальным адресным пространством 64К. Соответственно и DMA имел адресное пространство 64К и при помощи 4 битов внешнего порта подключался к одной из шестнадцати 64К-байтных &quot;страниц&quot; Мбайтного адресного пространства процессора 8086/88.]]></description>
        <author>andriano</author>
        <category>Assembler</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=239555&amp;view=findpost&amp;p=1980555</guid>
        <pubDate>Sat, 07 Jun 2008 12:01:41 +0000</pubDate>
        <title>линейный адрес для DOS UMB</title>
        <link>https://forum.sources.ru/index.php?showtopic=239555&amp;view=findpost&amp;p=1980555</link>
        <description><![CDATA[Qraizer: Мы слегка уклонились от основой темы, не находишь? Эдак ещё в один холивар свалимся. MIDAS под виндой не юзал, а DMA юзал, проблем не заметил. Программил - работало, через SB успешно играл и писал. Траблы ИМХО не там были. Повторяю, это не MSные фичи, это EMSные (offtop - <span class='tag-u'>E</span> <span class='tag-u'>MS</span> :lol: ) фичи, введённые туда по инициативе MS, потому как они были полезны для многозадачности и виртуализации PICовых и DMAшных сущностей, и проапрувленные как стандартные, потому как никто не стал спорить, что за многозадачными ОСАми будущее, и MS не будет единственной с подобными инициативами. Реализация EMS может быть кривой, по рукам программерам давать надо вовремя, но это претензии не к EMS как таковой, согласись. И кстати, с чего ты взял, что эти функции не работали? Ты их правильно юзал? Я вот далеко не с первого раза осилил правила работы с ними, потому как имеющаяся документация была очень скудной, и то не уверен, что осилил правильно. Эти функции только помогают отслеживать параметры PIC и DMA, чтобы EMS сам следил за соответствием, когда странички перемапливал. Неважно, прямо по запросам приложений или опосредовано - путём других связанных с переотображением функций. А программить это всё равно самому надо было.<br>
Что касается основного вопроса топика возражений, надеюсь, нет? ;)]]></description>
        <author>Qraizer</author>
        <category>Assembler</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=239555&amp;view=findpost&amp;p=1980069</guid>
        <pubDate>Fri, 06 Jun 2008 19:41:33 +0000</pubDate>
        <title>линейный адрес для DOS UMB</title>
        <link>https://forum.sources.ru/index.php?showtopic=239555&amp;view=findpost&amp;p=1980069</link>
        <description><![CDATA[AndNot: Я проверял на DMA ;) Была такая либа, MIDAS, для проигрывания трекерной музыки. Если запускалась под досом, то она намеренно обходила этот сервис, юзая первый мег напрямую, если же под виндой, то юзала этот сервис, только вот несмотря на успешное завершение функций прога висла, поскольку функции работали неверно. После того, как я отрубил использование этого сервиса либа нормально заработала и под виндой. Версию EMM386 естественно уже не помню, но раз не сработало на одной, то значит есть риск нарваться. Выводы очевидны - не стоит использовать экзотические фичи от микрософта, это их девиз - стандарты пишутся для всех, кроме микрософта ;) <br>Что касается PIC, то эта фича так и не заработала ни под досом, ни под виндой. Так и пришлось напрямую контроллер перепрограммировать, поскольку никак не смог снять скриншот с одной заумной програмки :) <br>Что касается QEMM, то не проверял, использовал его только для перехвата обращений к портам (и софт-айс нафиг не нужен :) ). Но простые смертные пользовались им крайне редко, из-за проблем совместимости с виндой.]]></description>
        <author>AndNot</author>
        <category>Assembler</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=239555&amp;view=findpost&amp;p=1980025</guid>
        <pubDate>Fri, 06 Jun 2008 17:59:53 +0000</pubDate>
        <title>линейный адрес для DOS UMB</title>
        <link>https://forum.sources.ru/index.php?showtopic=239555&amp;view=findpost&amp;p=1980025</link>
        <description><![CDATA[Qraizer: Ну да, рассказывай. Win2.xx и 3.0 на всю катушку юзали все эти фичи, которые простым смертным на фиг не нужны. Если не работатет, возможно, не были разрешены ОСные функции. Это тоже через EMS выставляется. Ради этих фич MS и добивалась-то EMS4.0 в таком виде, как он получился.<br>PIC и DMA функции этой EMS4 руками не щупал, спорить не буду, а convertional кадрить - кадрил. QEMM, к примеру, кадрил почти всю convertional, EMM386 - поменьше, так что при желании можно было залинеить и младший метр. Потом через VCPI быстренько получал их физические адреса и строил свою таблицу страниц, чтобы выйти в PM через VCPI-API. Так что работает, проверено. Можно было обойтись и стандартным EMS-кадром, который 64К, только это медленнее. Да и многие DPMI-хосты и DOS-экстендеры таким образом получали карту соответствия.<br>Другое дело, что это действительно на фиг не нужно, если есть возможность распределить блок прямо в первом метре. Тут ты прав. Но может у человека выбора нет.]]></description>
        <author>Qraizer</author>
        <category>Assembler</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=239555&amp;view=findpost&amp;p=1979511</guid>
        <pubDate>Fri, 06 Jun 2008 10:08:49 +0000</pubDate>
        <title>линейный адрес для DOS UMB</title>
        <link>https://forum.sources.ru/index.php?showtopic=239555&amp;view=findpost&amp;p=1979511</link>
        <description><![CDATA[AndNot: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=239555&view=findpost&p=1979456'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Qraizer &#064; <time class="tag-quote__quoted-time" datetime="2008-06-06T09:16:13+00:00">06.06.08, 09:16</time></span><div class='quote '>Вообще же, для поддержки DMA в EMS4.0 есть дополнительные функции.</div></div>Которые лучше не использовать, все равно не работают :) Это как и в стандарте VCPI предусмотрено управление PIC, но это не значит, что эти функции сделают свое дело :) <br>
Под досом любой менеджер обеспечивает отображение первого мегабайта памяти на его физические адреса, так что все эти сервисы просто не нужны, достаточно откусить памяти в этом первом меге, что собственно и предоставляет дос.]]></description>
        <author>AndNot</author>
        <category>Assembler</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=239555&amp;view=findpost&amp;p=1979456</guid>
        <pubDate>Fri, 06 Jun 2008 09:16:13 +0000</pubDate>
        <title>линейный адрес для DOS UMB</title>
        <link>https://forum.sources.ru/index.php?showtopic=239555&amp;view=findpost&amp;p=1979456</link>
        <description><![CDATA[Qraizer: XMS только менеджит UMA, если она есть, но не управляет ею. Создаёт UMA (точнее, эмулирует за счёт Extended или XMS, потому как UMA ьывает ещё и аппаратная) менеджер EMS. Так что на предмет отображения линейных адресов на физические - это к EMS/VCPI. Вообще же, для поддержки DMA в EMS4.0 есть дополнительные функции.]]></description>
        <author>Qraizer</author>
        <category>Assembler</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=239555&amp;view=findpost&amp;p=1979364</guid>
        <pubDate>Fri, 06 Jun 2008 08:20:05 +0000</pubDate>
        <title>линейный адрес для DOS UMB</title>
        <link>https://forum.sources.ru/index.php?showtopic=239555&amp;view=findpost&amp;p=1979364</link>
        <description><![CDATA[AndNot: Ну так выделяй буфер в нижней памяти, кто мешает то? Все равно контроллер DMA работает только с 24-х битным физическим адресом, так что 32-х битный тебе не поможет.]]></description>
        <author>AndNot</author>
        <category>Assembler</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=239555&amp;view=findpost&amp;p=1979319</guid>
        <pubDate>Fri, 06 Jun 2008 07:44:47 +0000</pubDate>
        <title>линейный адрес для DOS UMB</title>
        <link>https://forum.sources.ru/index.php?showtopic=239555&amp;view=findpost&amp;p=1979319</link>
        <description><![CDATA[magol: Программа загружена &quot;вверх&quot; (область UMB).<br>Для взаимодействия с контроллером DMA и т.п., необходимо знать линейный (физический, он же 32-х битный)<br>адрес.<br><br>В случае, когда блок памяти расположен в &quot;нижней&quot; памяти - всё просто.<br>А вот в случае с UMB - засада. :wacko:<br><br>Обратившись к HIMEM.SYS по запросу<br>        mov     ax,4309h<br>        int     2Fh<br>можно получить адрес таблицы дескрипторов XMS-блоков; что-то близкое, но<br>в этой талибце нет информации об &quot;отображении&quot; UMB.<br><br>Итак, можно ли определить для сегмент:смещение (UMB)  -  его 32-х битный адрес ?]]></description>
        <author>magol</author>
        <category>Assembler</category>
      </item>
	
      </channel>
      </rss>
	