|
Модератор
|
|
16-bit Real Mode в 202030.07.2018, 16:00. Показов 12333. Ответов 51
Весь 16-битный код в реальном режиме, разработка которого в ближайшее время имеет практический смысл, сосредоточен где-то здесь:
https://github.com/tianocore/e... /Vtf0/Ia16 Если вы разрабатываете firmware для компьютеров с архитектурой x86-64, задача, которую решает код - привести оборудование в рабочее состояние, т.е. в случае процессора - как можно раньше распрощаться с реальным режимом и перевести процессор в штатный Long mode или, как вариант для небольших систем, в защищённый 32-битный режим. Всё остальное - разновидности музейно-педагогического программирования. В чистом виде залежи музейно-педагогического программирования можно изучать в другом разделе форума: https://www.cyberforum.ru/turbo-pascal/
0
|
|
| 30.07.2018, 16:00 | |
|
Ответы с готовыми решениями:
51
Нельзя преобразовать тип function(x: real): real к real |
|
Прощай, Мир!
1673 / 831 / 253
Регистрация: 26.05.2012
Сообщений: 3,056
|
|
| 13.08.2020, 18:40 | |
|
предлагаю переименовать (сократить) название раздела
"Assembler: DOS/Real Mode/16-bits" в просто "Assembler: DOS", т.к. хвост даже ежу понятен.. ![]() что скажете??
1
|
|
|
Asm/C++/Delphi/Py/PHP/VBA
|
|
| 13.08.2020, 20:26 | |
|
proc3nt, у нас была тема про переименование подразделов. Но до конца так и не довели. Можно поднять и продолжить там. Найти только её надо.
Музейное программирование ещё очень активно имеет место быть на демосцене. Это такое компьютерное искусство. Устраиваются демопати (в этом году, правда, онлайн), на которых проводятся конкурсы, в т.ч. онлайн. https://www.pouet.net/prodlist... %5D=MS-Dos Причём, x86/MS-DOS – не самая распространённая платформа. Популярны Спектрумы, Amiga, Commodore 64, Atari, встречаются также БК, NES (Dendy), Sega, Nintendo, MSX и т.д. Ну и современные платформы, разумеется, тоже. Windows, шейдеры и пр.
3
|
|
|
Прощай, Мир!
1673 / 831 / 253
Регистрация: 26.05.2012
Сообщений: 3,056
|
|
| 13.08.2020, 20:31 | |
|
0
|
|
|
Asm/C++/Delphi/Py/PHP/VBA
|
|
| 13.08.2020, 20:36 | |
|
Один чувак сделал тетрис на паяльнике: http://gamebomb.ru/gbnews/20867
Другое – демо на АОН Русь: https://habr.com/ru/post/421961/
0
|
|
|
3410 / 1829 / 489
Регистрация: 28.02.2015
Сообщений: 3,696
|
||
| 13.08.2020, 21:25 | ||
|
Если Вы говорите, что ОСь эмулирует Dos, так это началось с WIN'ь 98, 95-я, ещё позволяла перейти в чистый DOS.
0
|
||
|
Модератор
|
||
| 13.08.2020, 22:17 [ТС] | ||
|
Термин Real Address Mode появился в интеловской документации к iAPX 286 (стр. 3-20)
http://bitsavers.org/component... 6_1982.pdf для описания аппаратной эмуляции работы iAPX 86 and iAPX 88
0
|
||
|
Asm/C++/Delphi/Py/PHP/VBA
|
||
| 14.08.2020, 17:28 | ||
|
Один чувак сделал тетрис на паяльнике: http://gamebomb.ru/gbnews/20867
Другое – демо на АОН Русь: https://habr.com/ru/post/421961/ http://dims.karelia.ru/x86/initial.shtml В 286, поскольку не было выхода из PM обратно в RM, переход делали через сброс. Исследование способов сброса процессора Добавлено через 4 часа 56 минут Не по теме: politoto, Tripple Fault не исследовал :)
0
|
||
|
3410 / 1829 / 489
Регистрация: 28.02.2015
Сообщений: 3,696
|
||
| 14.08.2020, 22:04 | ||
|
О том как Комп переходит от POST - до OS-Load - я знаю. Вопрос, в другом - RM будет всегда, пока CPU не научат запускаться сразу в PM. ![]() И RM будем терпеть и отвечать на неадекватные вопросы. ![]() хотя, мне нравится писать на асме под IDE(с некоторых пор). До этого - чистый асм.
0
|
||
|
28 / 20 / 0
Регистрация: 30.06.2020
Сообщений: 40
|
|||||
| 02.09.2020, 23:00 | |||||
![]() Просто, например когда видишь человека который, считает что может и хочет полноценно работать, у него есть силы и ясность ума, а его насильно на пенсию, это грустно. Тоже самое и в отношении архитектуры которую, со всеми её интересными плюсами и некоторыми неудобствами, активно использовал не один десяток лет... Такое ощущение что окончательно расстаёшься со старым верным другом. Но это уже лирика... Тем-не менее даже в 2020-м имеется по крайней мере один пример применения архитектуры x86 16-bit Real Mode как и навыков низкоуровневого программирования для неё в серьёзной работе. Если относительно просто и не дорого без существенных затрат производственных площадей частная фирма для себя делает микрочипы, то мне кажется, что такая возможность со временем может сделаться доступной и широкому кругу населения. То есть будет дома стоять агрегат размером с холодильник или даже меньше и делать чипы с той архитектурой которая удобна интересна приятна владельцу данного агрегата.. В этом случае данная архитектура x86 16-bit Real Mode могла бы стать «народной архитектурой» в той или иной степени. Получит, альтернативное развитие, придумают альтернативные средства для работы в Интернет. Ну это, как говорится, поживём увидим. А вот производители Персональных Компьютеров безусловно «выпиливают» постепенно x86 16-bit Real Mode архитектуру. Ну это уже на усмотрение производителей. По моему субъективному мнению, это немного грустный, но в какой-то степени нормальный процесс. СОВСЕМ НЕ ПО ТЕМЕ. А что действительно особенно не приятно часто не заслуженно негативно говорят о DOS и программировании связанном с данной операционной системой. Вопрос применения в Образовании, который поднимался... Образование, в том числе и высшее, в странах СНГ как-бы это мягче сказать без использования не нормативной лексики... В очень не приятном положении на четвереньках... Пожилой преподаватель может знать много интересных вещей из области математики с которыми было-бы полезно ознакомиться его студентам, но дальше основ x86 16-bit Real Mode, дальше Turbo Pascall он не воспринимает программирование... Тогда у студентов рождается ложное чувство превосходства. И на выходе из заведения высшего образования может получиться «Митрофанушка» с повышенным чувством собственной важности. А потом преподаёт «Митрофанушка»... Плюс в «Митрофанушкино» время подключаются ещё и другие негативные стороны современных заведений высшего образования... Что создаёт в итоге ложное негативное отношение к x86 16-bit Real Mode и Дисковым Операционным Системам. А они то тут не виноваты. Добавлено через 21 минуту
1
|
|||||
|
Модератор
|
||||
| 03.09.2020, 06:08 [ТС] | ||||
|
Не по теме: То, что IBM называла DOS в 1960-е, до сих пор никто в музей сдавать не собирается: Добавлено через 10 минут
0
|
||||
|
3410 / 1829 / 489
Регистрация: 28.02.2015
Сообщений: 3,696
|
|
| 03.09.2020, 10:51 | |
|
0
|
|
|
28 / 20 / 0
Регистрация: 30.06.2020
Сообщений: 40
|
|||||
| 04.09.2020, 00:37 | |||||
|
адресс памяти = сегмент shl 4 + смещение Отличие только в наличие дополнительных команд в реальном режиме у более поздних процессоров. Но в целом в реальном режиме работа 8086 8088 80286 практически не отличается. Просто в архитектуре 80286 появился новый защищённый режим для 24 разрядной шины. А фраза до 80286-го все процессоры семейства x86 x88 работали в реальном режиме не имеет ни каких противоречий. Добавлено через 50 минут Хотя ещё есть одно отличие, начиная с 80286-го доступны 64 килобайта без 16 байт за пределами первого мегабайта. ![]() DOS= HIGHT, UMB ![]() Но суть "защищённый" "реальный" не в этом. А в способе адресации программы к памяти. Добавлено через 21 минуту В реальном режиме просто суммируются сегмент и смещение, адресс памяти = сегмент shl 4 + смещение. А в защищённом адрес определяет процессор на основе селектора смещения и таблицы дескрипторов. Память "защищена" от не допустимых способов её использования. Добавлено через 1 минуту В реальном память используется как угодно. В этом и заключается сильная и одновременно слабая сторона реального режима. Добавлено через 1 час 13 минут Я и не отрицал что не существует других подходов даже в первом своём сообщении. Как и существенной необходимости. Можно эмулировать, перепрограммировать, прошивать устройства для работы с той или иной архитектурой. Просто констатировал факт что другой подход эффективен, надёжен и поэтому дожил в плане серьёзной работы до настоящего времени. В настоящее время о наличии такой возможности для населения у меня сведений нет, и я утверждаю что в настоящее время это скорее всего не доступно. Поэтому я просто выразил своё мнение, что доступность для обычного человека легко самостоятельно на некотором приобретённом удобном агрегате, изготавливать чипы на своё усмотрение это тоже интересная и востребованная возможность решать свои задачи, организовывать своё развлечение так-как тебе захочется иметь тот компьютер который хочется тебе, ну и 16-bit Real Mode x86 с моей точки зрения в рамках этого направления получит дальнейшее альтернативное развитие. Обсуждение того как это будет практически уже выходит за рамки темы. Единственное почему я упомянул об этому, так потому, что по моему мнению такая возможность продолжит применение и развитие 16-bit Real Mode x86. Но тут как говорится поживём увидим. P.S. Сляпы казау пабачым ![]() Добавлено через 31 минуту НЕ ПО ТЕМЕ. Да это как раз в точку... О реальной исторической личности и просто хорошем человеке. Которого не заслуженно недолюбливали отдельные категории тех кого он вынужден был учить в силу исторических обстоятельств, пока окончательно не ушёл на пенсию. И я позволил себе использовать элементы реальной личности в образе иллюстрирующем непристойное положение на четвереньках пост.советского образования.
0
|
|||||
|
Модератор
|
||
| 04.09.2020, 05:24 [ТС] | ||
|
Адрес, который выставляется на эту шину, всегда получается просто суммированием смещения и базового 24-разрядного адреса используемого сегмента. Документированный способ программного изменения этого адреса - инструкции, изменяющие содержимое соответствующего 16-разрядного сегментного (или селекторного?) регистра: INT, межсегментные CALL, JMP, RET. При этом в Real Address Mode и в [bjProtected Mode[/b] базовый адрес устанавливается так, как Вы описали: сдвигом на 4 бита влево в реальном режиме и копированием из дескрипторной таблицы в "защищённом" режиме. Диагностическими менее документированными инструкциями можно в "теневые" базовые регистры можно поместить нужное 24-разрядное значение в любом режиме работы 80286 независимо от 16-разрядных регистров сегмента/селектора. Внешними сигналами на отладочных стендах, скорее всего, тоже это можно сделать. И MS-DOS эти отличия Real Address Mode от режима работы 8088/86/186/188 использовала, не переключая процессор в защищённый режим.
0
|
||
|
28 / 20 / 0
Регистрация: 30.06.2020
Сообщений: 40
|
||
| 28.09.2020, 01:00 | ||
|
Вообще очевидно... Если на компьютере есть память выше первого мегабайта, то почему должны отсутствовать способы её использования в Реальном Режиме 80286-го. Тем более что практически у всех на 286-м в своё время использовался старый добрый DOS. На 32-х разрядных процессорах используются три известных мне способа доступа к памяти выше первого мегабайта совместно с работой под DOS. Первый, это самый очевидный, работать в реальном режиме, а для обмена данными с дополнительной памятью временно переходить в защищённый режим, запрещая прерывания, загружая таблицу дескрипторов и устанавливая нулевой бит (флаг PE) регистра CR0. А потом вновь устанавливать 64КБ селекторы и возвращаться в реальный режим обнуляя бит 0 регистра CR0. Этот способ очень часто рассматривается в книжках им пользовался и я. При его реализации используются только хорошо документированные возможности процессора. Этот способ, используется windows 386 которая работает в реальном режиме и использует защищённый режим для обмена данными между памятью выше первого мегабайта и памятью первого мегабайта. В реализации доступа к памяти выше первого мегабайта и заключается основное отличие между Windows 386 и Windows 286. Второй способ - это перейти в защищённый режим и работать в частности с теми же функциями DOS и BIOS через V86 на сколько я знаю это используют расширители DOS, но я такое сам не программировал и могу только пересказывать информацию от других лиц и литературы. Ну и третий самый интересный, это Не реальный режим. Режим работы со сброшенным нулевым битом регистра CR0 (флаг PE) и установленным битом гранулярности (G). Этот режим в частности реализуется при возвращении в реальный режим без замены 4 ГБ селекторов используемых в защищённом режиме 64 КБ селекторами реального режима. Чаще всего переход в нереальный режим и описывается данным способом в литературе. С ним я экспериментировал в рамках книжных примеров. Кстати ту же работу с LOADALL 286-го тоже можно назвать "нереальным режимом" 286-го... Ну в принципе по любому поводу можно иметь своё, иногда обоснованное, иное мнение. А любую работу с изменённой "скрытой частью" сегментного регистра с целью расширения возможностей в плане доступа к памяти в реальном режиме можно смело отнести в UnReal Mode. И более-менее строго разделить рассматриваемые вопросы на Реальный, Защищённый и Не Реальный режим. Но поскольку находясь преимущественно в реальном режиме полезно использовать и память выше первого мегабайта, то в одной из тем данного раздела можно было бы затронуть и вопрос о различных нестандартных способах использования памяти выше первого мегабайта для случая преимущественной работы в реальном режиме. Ну это уже на ваше усмотрение, лично мне в этом вопросе кроме достаточно известных вещей скорее всего рассмотренных в других разделах форума добавить нечего. Моё сугубо личное мнение - есть внешняя архитектура реального режима как набор достаточно простых и понятных команд процессора и то как мы эту архитектуру реализуем, это уже можно назвать по разному внутренняя архитектура, аппаратная эмуляция и т.д. и т.п. в зависимости от ситуации. Для корректного исполнения программы главную роль всё же играет строгое соответствие внешней архитектуры определённым правилам и удовлетворительная скорость выполнения команд, а не то каким путём это достигается. Под клоном... Я всё же понимаю ситуацию когда для создания аналога используют ту же либо очень-очень похожую с оригиналом схему чипа, аналогичное его устройство. Как правило это делается по лицензии создателей оригинального чипа. В случае о котором я писал ранее речь идёт о 100% compatible но со своей простой реализацией ни как не связанной с оригиналом. Поэтому в данном случае это не клон а аналог. Аналог позволяющий так-же в качестве дополнительных возможностей не связанных и не совместимых с оригиналам использовать простой, прямой способ использования дополнительной памяти без всяких защищённых режимов. Иногда это более удобно. И разумеется это гораздо легче и проще реализовать аппаратно. А основные используемых возможности внешней архитектуры тех устройств о которых я говорил и реального режима обычного процессора идентичны. Удобная или скорее привычная архитектура, это хорошо... Но... Дело скорее в другом что дальше с ней делать в 2020-м году? Кроме каких-то узких задач которые удобно и надёжно решаются есть ещё большой внешний мир включающий: форматы файлов, взаимодействие с внешними устройствами сторонних производителей, ну и работа во враждебном интернете,"на чужом поле" ![]() Куда же без него... Вот от этих вопросов будет немного грустно...
2
|
||
|
28 / 20 / 0
Регистрация: 30.06.2020
Сообщений: 40
|
||
| 28.09.2020, 18:29 | ||
|
Короче говоря, вопросы использования Не Реального Режима и возможно другие менее документированные способы получения памяти выше первого мегабайта, как и хорошо документированные методы связанные со временным переходом в защищённый режим и применения V86, чаще используемые при работе в DOS, решили отнести преимущественно к данному разделу на данном форуме и удалили отдельные разделы? Просто я давно не заходил. Раньше, достаточно давно, я так мельком просмотрел, были отдельно DOS Protected и UnReal. А теперь несколько иначе.
Добавлено через 13 минут И всё же, истинно реальным и удобным режим бы был, если-бы был простой, быстрый, хорошо документированный и понятный доступ к памяти выше первого мегабайта без всяких селекторов, обходных манёвров, хитрых команд. А так имеем то что имеем. В результате особенностей, возможно недочётов, изменённую скрытую часть селекторов можно получить не только в защищённом режиме, это приносит определённую пользу... Добавлено через 14 минут P.S. Реальный режим адресации к памяти подразумевает лишь наличие защищённого...
1
|
||
|
3410 / 1829 / 489
Регистрация: 28.02.2015
Сообщений: 3,696
|
||
| 28.09.2020, 18:33 | ||
|
1
|
||
|
Модератор
|
||
| 28.09.2020, 22:49 [ТС] | ||
|
http://www.cyberforum.ru/low-l... 45070.html А в нём нет V86 и, тем более, Unreal. После удаления NTVDM из Windows основным средством запуска студенческих 16-разрядных работ стали dosbox, emu8086 и подобные симуляторы. Со своими особенностями.
0
|
||
| 28.09.2020, 22:49 | |
|
Помогаю со студенческими работами здесь
40
Нельзя преобразовать тип function(x real) real к real Операция '*' не применима к типам real и function(x: real): real Нельзя преобразовать тип function(x: real): real к real Нельзя преобразовать тип function(x: real): real к real Given real numbers a, b, c. Find if a quadratic inequality ах2 + bx + с = 0 has real roots. If it does, output them Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта
Симптом:
После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
|
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
|
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
|
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут.
В век Веб все очень привыкли к дизайну Single-Page-Application .
Быстренько разберем подход "на фреймах".
Мы делаем одну. . .
|