|
nedoPC.orgCommunity for electronics hobbyists, established in 2002 |
|
Last visit was: 06 Oct 2024 02:42
|
It is currently 06 Oct 2024 02:42
|
Author |
Message |
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
В новом ноуте при загрузке в DOS под НЕ UEFI BIOS запуск некоторых старых программ
вызывает:
Machine Check Error - да-да... вот такой - как в режиме видео 13Н.
Я погуглил эту проблему - а она случается у многих - и даже не под DOS - BIOS и выяснил, что
Я затащил под DOS-загрузку старую утилиту ndiags и выяснил, что все видео-режимы VESA
не вызывают краха системы под новым BIOS.
Прогон программы под debug - так же не выявил, что именно вызывет Machine Check Error...
Вопрос вот в чем - получается, что новый НЕ UEFI BIOS безо всяких виндей понимает эти функции процессора? Или это не с этим связанная ошибка?
( Хотя совершенно непонятно, что может быть некорректного в программе на Паскале, если это не работа с видео-режимами... до них - не доходит...)
И второй вопрос - так получается, что новые ноуты и спикер не поддерживают?
Все программы, работающие с таймером и на спикер - молчат как рыба...
Тест спикера из ndiags - также молчалив...
В старом ноуте звук спикера у меня великолепно выводился на встроенные динамики.
_________________ iLavr
|
12 Dec 2013 04:31 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
Совсем непонятно, но обслуживание клавиатуры через INT 16H тормозит в голом DOS феноменально...
В Венде 7 клавиатура видна правильно своими обычными портами.
Встроенная звуковая карта Realtek High Definition Audio в голом DOS не видна.
Даже как 8-битный DAC.
Странно, но и под Вендой 7 у нее нет аппаратных портов. Видна как " устройство на внутренней шине".
Спикер на звуковую карту, видимо, не выводится совсем, если такой порт есть реально в принципе...
Поствил DOSBOX-v0.74 - спикер и аудиокарта эмулируются шустрее, но, судя по всему, формируется
файл выборок, которые проигрываются встроенной звуковухой через драйверы Венды.
Звук более приятный, но отрезками с перерывом.
DOSBOX-v0.74 совсем не умеет в полноэкранный режим развернуть. Просто - черный экран.
У DOSBOX-v0.72 полноэкранный режим через раз на третий всё ж получался. Но оставшиеся
разы он просто напрочь портил видео-режим.
PS. Я вот думаю - не поставить ли DIRECT_X... "Протезус" прямо указал, что с DIRECT_X будет работать быстрее...
_________________ iLavr
|
12 Dec 2013 10:59 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
Покурил я мануалы, даташыты и прочие хелпы...
Получается, что к аудиокарте, которую Венда показывает как:
Audio Device on High Definition Audio Bus просто так и не подлезешь,
потому как у неё нет привычных для DOS портов...
Но... пишут, что есть заплатка от М$, частично эту проблему снимающая:
_________________ iLavr
|
14 Dec 2013 04:28 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
Две ссылочки, где программно пытаются заставить звуковые карты
on High Definition Audio Bus работать под чистым DOS:
DOS ain't dead - SOUND support in DOS (HDA)
APOCALYPTIC SOFTWAREMIXING SOUNDSYSTEM FOR DOS
Интересно, что
То есть, автор посматривал в исходники дровишек linux...
А вот куда, интересно, дровописцы linux подсматривали?
Я сам-то заглянул в MSDN, но там - всё под Венду, а в ней
у меня проблем не имеется...
_________________ iLavr
|
14 Dec 2013 08:59 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
Запустил я на новом ноуте утилиту ICHINIT.EXE из пакета:
APOCALYPTIC SOFTWAREMIXING SOUNDSYSTEM FOR DOS
По идее, она должна сделать вот что:
Ну и вот что она мне выдала:
Ну и поскольку она с исходниками, то я посмотрел, что она только с ICH4 взаимодействовать способна.
Но теперь хоть понятно, в чем проблема: BIOS не инициаллизирует Intel ICH7 ( In/Out Controller Hub Rev.7)
для работы с High Definition Audio Bus.
_________________ iLavr
|
15 Dec 2013 03:32 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
_________________ iLavr
|
15 Dec 2013 10:15 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 23357 Location: Silicon Valley
|
А может общими усилиями сделаем страждущим дософилам недоком-конструктор на 286+287?
|
15 Dec 2013 10:51 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
Ну разве что " страждущим дософилам" - у меня он лично - есть.
Ты только не путай средство и цель.
Мне в этом топике интересно - а что же изменилось для DOS в системах на
новых чипах. И как люди это преодолевают.
Хоть спикера и нет, но, читаю я, - люди программно подключают его выход к
звуковой карте...
_________________ iLavr
|
15 Dec 2013 11:19 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
И кажется мне - я догадался, откуда растут уши у Machine Check Error!
У паскалевских программ был такой грешок на быстрых процессорах: Error 200: Divisiоn by zero.
Для его коррекции, помнится, придумали некий патч, который не очень корректно, но устранял
проблему.
Теперь, видимо, Machine Check Error выскакивает снова, как реакция на Divisiоn by zero.
PasP2fixСейчас попробую - проверю это нарошно... PS. Угадал-угадал!!! Просто забавно становится! вызывает Error 200: Divisiоn by zeroА вот
вызывает Machine Check Error!!!
_________________ iLavr
|
15 Dec 2013 14:00 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 23357 Location: Silicon Valley
|
дос то конечно жив, но новое пц-железо о нём уже и не задумывается даже
для нового пц-железа существует только вынь8
ну или линух, если производитель пц-железа ещё не потерял остатки разума...
|
15 Dec 2013 16:26 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
Ну а люди, поддерживающие Free DOS, - задумываются...
И у них, порой, весьма неплохо получаются их задумки!
_________________ iLavr
|
15 Dec 2013 17:00 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
Продебужил эмулятор " Специлиста" Шевцова до точки выпадения в Machine Check Error.
Странно, но причина в прямом обращении к регистрам видеоадаптера:
На манипуляциях с ними и выскакивает Machine Check Error. Странно, потому как начиная с EGA-карт, эмулятор " Специлиста" Шевцова всегда очень корректно работал с видео, на мой взгляд... Точно отслеживать не стал - в Паскале это внутри его графических модулей и вряд ли это можно исправить. От задержки CRT избавился вот так:
но, как оказалось - причина была не в ней...
Сразу решил попробовать под Atom и голым DOS эмулятор emu80 Пыхонина.
Он на удивление работает нормально, но очень сжат к центру, что странно и некрасиво...
Насколько я помню, в нём задается режим 800х600 и в этом режиме укладывается удвоенный
экран "Специалиста" 384*2 х 256*2 = 768х512.
На моём старом ноутбуке это выглядeло прямо-таки практически родным экраном в матрице 1024х768!
А на новом ноуте 1024х600 по идее должно бы лечь крупно посредине экрана, но почему-то сжато.
Звука, конечно же, под голым DOS - нет...
Сразу же попробовал и пыхонинский emu80sdl под Вендой 7.
Можно сказать, что работает неплохо, звучок, в отличие от DOSBOX, ровный и приятный.
Но "артефакты" есть... и курсор, бывает, исчезает и отображение на экран замирает, порой...
_________________ iLavr
|
16 Dec 2013 05:34 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
| | | | Lavr wrote: Продебужил эмулятор " Специлиста" Шевцова до точки выпадения в Machine Check Error. Странно, но причина в прямом обращении к регистрам видеоадаптера: На манипуляциях с ними и выскакивает Machine Check Error. Странно, потому как начиная с EGA-карт, эмулятор " Специлиста" Шевцова всегда очень корректно работал с видео, на мой взгляд... | | | | |
Нет - сам эмулятор, оказывается, работает нормально!
А то было даже непонятно в чем замес: я же проверял, как устроена отрисовка графики и в
Шевцовском и в Пыхонинском эмулях - всё казалось весьма корректным!
Оказалось, что глюк в Шевцовской библиотеке окон-рамочек:
Если их под дебаггером обойти, то сам эмуль не конфликтует ни с чем под Atom и голым DOS.
Ну это уже лучше... при случае - можно посмотреть, в чем там глюк с рамочками...
Скорее всего в паскалевской графике, т.к. сам эмулятор через регистры контроллера
отрабатывает графику экрана корректно.
_________________ iLavr
|
16 Dec 2013 07:11 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
Приподниму тему, раз уж об ней неожиданно вспомнили... Проверил две ссылки, они рабочие: DOS ain't dead!... DOS Alive !
_________________ iLavr
|
10 Apr 2017 07:14 |
|
|
Vic3Dexe
Doomed
Joined: 16 Dec 2014 11:58 Posts: 370 Location: Киев
|
Эмм... честно признаюсь, выкладки не читал, т.к. незачем.
Machine Check Exception - это исключение проца (такое же как #GP или #PF). И возникает оно безотносительно выполнения кода, так что отладчиком это ловить бесполезно. Это какие-то ошибки железа (контроллера памяти или кэша например), не более. Подозреваю, что биос этого ноута просто забывает его отключить, рассчитывая на то, что будет загружена винда, которая с ними разберется (или тоже выключит).
Выключается путем снятия бита 6 в регистре CR4. Если надо - напишу код, но он тривиален. Проверьте, если не тот случай - будем искать дальше.
Подробнее об MCE см. Intel Software Developer Manual, раздел 15.
|
10 Apr 2017 22:56 |
|
Who is online |
Users browsing this forum: Claude AI [Bot] and 1 guest |
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot post attachments in this forum
|
|