nedoPC.org

Community of electronics hobbyists established in 2002

...
Atom Feed | View unanswered posts | View active topics It is currently 22 Nov 2017 06:48



Reply to topic  [ 16 posts ]  Go to page 1, 2  Next
Machine Check Error 
Author Message
Supreme God
User avatar

Joined: 21 Oct 2009 11:08
Posts: 7777
Location: Россия
Reply with quote
В новом ноуте при загрузке в DOS под НЕ UEFI BIOS запуск некоторых старых программ
вызывает:
Machine Check Error - да-да... :lol: вот такой - как в режиме видео 13Н.

Я погуглил эту проблему - а она случается у многих - и даже не под DOS - BIOS и выяснил, что
Подобное поведение вызвано тем, что процессор компьютера обнаружил неустранимую аппаратную ошибку и сообщил об этом Windows XP. Чтобы сделать это, он использовал функцию MCE (Machine Check Exception) для процессоров Pentium или функцию MCA (Machine Check Architecture) для некоторых процессоров Pentium Pro. К появлению этого сообщения об ошибке могут привести следующие факторы.
Ошибки системной шины.
Ошибки памяти, которые могут включать ошибки четности или кода исправления ошибок (ECC).
Ошибки кэша в процессоре или оборудовании системы.
Ошибки ассоциативного буфера TLB в процессоре.
Другие обнаруженные ошибки оборудования поставщиков ЦП.
Обнаруженные ошибки оборудования сторонних поставщиков.

Я затащил под DOS-загрузку старую утилиту ndiags и выяснил, что все видео-режимы VESA
не вызывают краха системы под новым BIOS.
Прогон программы под debug - так же не выявил, что именно вызывет Machine Check Error... :(

Вопрос вот в чем - получается, что новый НЕ UEFI BIOS безо всяких виндей понимает
эти функции процессора? Или это не с этим связанная ошибка
?
(Хотя совершенно непонятно, что может быть некорректного в программе на Паскале,
если это не работа с видео-режимами... до них - не доходит...
)

И второй вопрос - так получается, что новые ноуты и спикер не поддерживают?
Все программы, работающие с таймером и на спикер - молчат как рыба... :(
Тест спикера из ndiags - также молчалив...

В старом ноуте звук спикера у меня великолепно выводился на встроенные динамики.

_________________
iLavr


12 Dec 2013 07:31
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 11:08
Posts: 7777
Location: Россия
Reply with quote
Post 
Совсем непонятно, но обслуживание клавиатуры через 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 13:59
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 11:08
Posts: 7777
Location: Россия
Reply with quote
Post 
Покурил я мануалы, даташыты и прочие хелпы...

Получается, что к аудиокарте, которую Венда показывает как:
Audio Device on High Definition Audio Bus просто так и не подлезешь,
потому как у неё нет привычных для DOS портов...

Но... пишут, что есть заплатка от М$, частично эту проблему снимающая:
Quote:
Решение кроется в установке обновления Microsoft UAA (Universal Audio Architecture) Bus driver for high definition audio KB888111. Одна проблема, это обновление Microsoft не публикует на своем сайте, т.к. оно специфично для разных чипсетов.

Для ноутбуков Asus
На сайтах производителей, например на сайте Asus опубликовано это коммулятивное обновление для Windows XP на всех языках, которое занимает 50 мегабайт. Единожды выкачав эти 50 мегабайт мы решили вынуть оттуда обновление по русски и по английски, дабы упростить жизнь согражданам, покупающим ноутбуки с операционкой Free DOS. Обновление взято от серии F3, но, думается, подойдет и к другим сериям.

_________________
iLavr


14 Dec 2013 07:28
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 11:08
Posts: 7777
Location: Россия
Reply with quote
Post 
Две ссылочки, где программно пытаются заставить звуковые карты
on High Definition Audio Bus работать под чистым DOS:

DOS ain't dead - SOUND support in DOS (HDA)
APOCALYPTIC SOFTWAREMIXING SOUNDSYSTEM FOR DOS

Интересно, что
Piotr wrote:
Тhat HDA code was written after analyzing various HDA linux related sources, the drivers from ALSA project, the OSS sound system project. Although this code is different and pretty unique some similarities especially in the HDA nodes access strategy can be found.

То есть, автор посматривал в исходники дровишек linux...
А вот куда, интересно, дровописцы linux подсматривали?
Я сам-то заглянул в MSDN, но там - всё под Венду, а в ней
у меня проблем не имеется...

_________________
iLavr


14 Dec 2013 11:59
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 11:08
Posts: 7777
Location: Россия
Reply with quote
Post 
Запустил я на новом ноуте утилиту ICHINIT.EXE из пакета:

APOCALYPTIC SOFTWAREMIXING SOUNDSYSTEM FOR DOS

По идее, она должна сделать вот что:
Quote:
This is a real mode DOS initializer (V86 mode supported too) for Intel 8xx
chipsets
(or anything else with the ICH compatible southbridge access)...


Ну и вот что она мне выдала:
Code:
ICHINIT Utility:
Intel 82801G (ICH7) integrated High Definition Audio controller detected.
Error: High Definition Audio controllers not supported yet!


Ну и поскольку она с исходниками, то я посмотрел, что она только с ICH4 взаимодействовать способна.

Но теперь хоть понятно, в чем проблема: BIOS не инициаллизирует Intel ICH7 (In/Out Controller Hub Rev.7)
для работы с High Definition Audio Bus.

_________________
iLavr


15 Dec 2013 06:32
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 11:08
Posts: 7777
Location: Россия
Reply with quote
Lavr wrote:
И второй вопрос - так получается, что новые ноуты и спикер не поддерживают?
Все программы, работающие с таймером и на спикер - молчат как рыба... :(
Тест спикера из ndiags - также молчалив...


HD Audio Guidelines for Windows
Quote:
PC Beep
Windows 7 does not use the 8254 timer hardware, which was used in earlier operating systems for
PC Beep. Remember that this extra hardware is no longer necessary while you design your board.

Обидно... :-?

_________________
iLavr


15 Dec 2013 13:15
Profile
Admin
User avatar

Joined: 09 Jan 2003 02:22
Posts: 15718
Location: Colorado
Reply with quote
Post 
А может общими усилиями сделаем страждущим дософилам недоком-конструктор на 286+287? ;)

_________________
:eugeek: https://twitter.com/Shaos1973


15 Dec 2013 13:51
Profile WWW
Supreme God
User avatar

Joined: 21 Oct 2009 11:08
Posts: 7777
Location: Россия
Reply with quote
Post 
Shaos wrote:
А может общими усилиями сделаем страждущим дософилам недоком-конструктор на 286+287? ;)

Ну разве что "страждущим дософилам" - у меня он лично - есть.

Ты только не путай средство и цель.

Мне в этом топике интересно - а что же изменилось для DOS в системах на
новых чипах. И как люди это преодолевают.

Хоть спикера и нет, но, читаю я, - люди программно подключают его выход к
звуковой карте...

_________________
iLavr


15 Dec 2013 14:19
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 11:08
Posts: 7777
Location: Россия
Reply with quote
Lavr wrote:
В новом ноуте при загрузке в DOS под НЕ UEFI BIOS запуск некоторых старых программ
вызывает:
Machine Check Error - да-да... :lol: вот такой - как в режиме видео 13Н.

И кажется мне - я догадался, откуда растут уши у Machine Check Error! :lol:
У паскалевских программ был такой грешок на быстрых процессорах: Error 200: Divisiоn by zero.
Для его коррекции, помнится, придумали некий патч, который не очень корректно, но устранял
проблему.
Теперь, видимо, Machine Check Error выскакивает снова, как реакция на Divisiоn by zero.

PasP2fix
Code:
Упрощённо алгоритм
Fixing ERROR 200:
Ищем байты db 0B9h,37h,00,0F7h,0F1h
Меняем на db 0B9h,37h,00,090h,090h


Сейчас попробую - проверю это нарошно...

PS. Угадал-угадал!!! :D
Просто забавно становится!
Code:
0000D487: E83C02                       call      00000D6C6
0000D48A: F7D0                         not       ax
0000D48C: F7D2                         not       dx
0000D48E: B93700                       mov       cx,00037 ;
0000D491: F7F1                         div       cx
0000D493: A3A60C                       mov       [00CA6],ax

вызывает Error 200: Divisiоn by zero

А вот
Code:
0000D487: E83C02                       call      00000D6C6
0000D48A: F7D0                         not       ax
0000D48C: F7D2                         not       dx
0000D48E: B93700                       mov       cx,00037 ;
0000D491: 90                           nop
0000D492: 90                           nop
0000D493: A3A60C                       mov       [00CA6],ax

вызывает Machine Check Error!!!

_________________
iLavr


15 Dec 2013 17:00
Profile
Admin
User avatar

Joined: 09 Jan 2003 02:22
Posts: 15718
Location: Colorado
Reply with quote
Post 
дос то конечно жив, но новое пц-железо о нём уже и не задумывается даже :)

для нового пц-железа существует только вынь8

ну или линух, если производитель пц-железа ещё не потерял остатки разума...

_________________
:eugeek: https://twitter.com/Shaos1973


15 Dec 2013 19:26
Profile WWW
Supreme God
User avatar

Joined: 21 Oct 2009 11:08
Posts: 7777
Location: Россия
Reply with quote
Post 
Ну а люди, поддерживающие Free DOS, - задумываются...
И у них, порой, весьма неплохо получаются их задумки!

_________________
iLavr


15 Dec 2013 20:00
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 11:08
Posts: 7777
Location: Россия
Reply with quote
Post 
Продебужил эмулятор "Специлиста" Шевцова до точки выпадения в Machine Check Error.
Странно, но причина в прямом обращении к регистрам видеоадаптера:
Code:
3ceH  Write: graphics 1 and 2 address register
3cfH  Write: graphics controller data register

На манипуляциях с ними и выскакивает Machine Check Error.
Странно, потому как начиная с EGA-карт, эмулятор "Специлиста" Шевцова всегда
очень корректно работал с видео, на мой взгляд... :-?

Точно отслеживать не стал - в Паскале это внутри его графических модулей и вряд ли
это можно исправить.

От задержки CRT избавился вот так:
Code:
0000D487: E83C02                       call      00000D6C6
0000D48A: F7D0                         not       ax
0000D48C: F7D2                         not       dx
0000D48E: B93700                       mov       аx,0ffff ;
0000D491: 90                           nop
0000D492: 90                           nop
0000D493: A3A60C                       mov       [00CA6],ax

но, как оказалось - причина была не в ней...

Сразу решил попробовать под Atom и голым DOS эмулятор emu80 Пыхонина.
Он на удивление работает нормально, но очень сжат к центру, что странно и некрасиво... :(

Насколько я помню, в нём задается режим 800х600 и в этом режиме укладывается удвоенный
экран "Специалиста" 384*2 х 256*2 = 768х512.
На моём старом ноутбуке это выглядeло прямо-таки практически родным экраном в матрице 1024х768!
А на новом ноуте 1024х600 по идее должно бы лечь крупно посредине экрана, но почему-то сжато.
Звука, конечно же, под голым DOS - нет... :(

Сразу же попробовал и пыхонинский emu80sdl под Вендой 7.
Можно сказать, что работает неплохо, звучок, в отличие от DOSBOX, ровный и приятный.
Но "артефакты" есть... и курсор, бывает, исчезает и отображение на экран замирает, порой...

_________________
iLavr


16 Dec 2013 08:34
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 11:08
Posts: 7777
Location: Россия
Reply with quote
Post 
Lavr wrote:
Продебужил эмулятор "Специлиста" Шевцова до точки выпадения в Machine Check Error.
Странно, но причина в прямом обращении к регистрам видеоадаптера:
Code:
3ceH  Write: graphics 1 and 2 address register
3cfH  Write: graphics controller data register

На манипуляциях с ними и выскакивает Machine Check Error.
Странно, потому как начиная с EGA-карт, эмулятор "Специлиста" Шевцова всегда
очень корректно работал с видео, на мой взгляд... :-?

Нет - сам эмулятор, оказывается, работает нормально! :lol:

Image

А то было даже непонятно в чем замес: я же проверял, как устроена отрисовка графики и в
Шевцовском и в Пыхонинском эмулях - всё казалось весьма корректным!

Оказалось, что глюк в Шевцовской библиотеке окон-рамочек:

Image

Если их под дебаггером обойти, то сам эмуль не конфликтует ни с чем под Atom и голым DOS.
Ну это уже лучше... при случае - можно посмотреть, в чем там глюк с рамочками...
Скорее всего в паскалевской графике, т.к. сам эмулятор через регистры контроллера
отрабатывает графику экрана корректно.

_________________
iLavr


16 Dec 2013 10:11
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 11:08
Posts: 7777
Location: Россия
Reply with quote
Приподниму тему, раз уж об ней неожиданно вспомнили...

Проверил две ссылки, они рабочие: DOS ain't dead!... DOS Alive !

_________________
iLavr


10 Apr 2017 10:14
Profile
Maniac

Joined: 16 Dec 2014 14:58
Posts: 288
Location: Киев
Reply with quote
Эмм... честно признаюсь, выкладки не читал, т.к. незачем.

Machine Check Exception - это исключение проца (такое же как #GP или #PF). И возникает оно безотносительно выполнения кода, так что отладчиком это ловить бесполезно. Это какие-то ошибки железа (контроллера памяти или кэша например), не более. Подозреваю, что биос этого ноута просто забывает его отключить, рассчитывая на то, что будет загружена винда, которая с ними разберется (или тоже выключит).

Выключается путем снятия бита 6 в регистре CR4.
Если надо - напишу код, но он тривиален.
Проверьте, если не тот случай - будем искать дальше.

Подробнее об MCE см. Intel Software Developer Manual, раздел 15.


11 Apr 2017 01:56
Profile
Display posts from previous:  Sort by  
Reply to topic   [ 16 posts ]  Go to page 1, 2  Next

Who is online

Users browsing this forum: ntil and 2 guests


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

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group
Designed by ST Software.