Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

чтение байт в Билдере

1.1K
30 марта 2003 года
Растаман
11 / / 20.09.2000
Необходимо прочитать байт по какому-либо адресу (например FF00:0FFE ;), как это сделать на Си понятно - есть функция peek, а вот как для C++Builder? peek только для дос. Вообще задача - провести тест оборудования.
362
31 марта 2003 года
_kolyan
339 / / 03.12.2002
Цитата:
Originally posted by Растаман
Необходимо прочитать байт по какому-либо адресу (например FF00:0FFE ;), как это сделать на Си понятно - есть функция peek, а вот как для C++Builder? peek только для дос. Вообще задача - провести тест оборудования.



FF00:0FFE - это сектор и смещение. Во flat-модели памяти платформы Win32 это не используется. Есть просто линейный адрес и читать по нему очень просто
int *a = 0xfd34ef12; //указатель на двойное слово
int b = *a; //берем содержимое двойного слова

есть правда один ньюанс, связанный с виртуальной машиной Windows: по точно такому же адресу для каждого приложения будет лежать совершенно разная информация ;-) то есть он не определяет физический адрес в памяти, а только адрес в контексте данного приложения. Ко всей памяти программе так просто доступа не дается.

надеюсь это чем-нибудь поможет

384
31 марта 2003 года
mikeshilkin
95 / / 20.04.2000
Цитата:
Originally posted by _kolyan


FF00:0FFE - это сектор и смещение. Во flat-модели памяти платформы Win32 это не используется. Есть просто линейный адрес и читать по нему очень просто
int *a = 0xfd34ef12; //указатель на двойное слово
int b = *a; //берем содержимое двойного слова

есть правда один ньюанс, связанный с виртуальной машиной Windows: по точно такому же адресу для каждого приложения будет лежать совершенно разная информация ;-) то есть он не определяет физический адрес в памяти, а только адрес в контексте данного приложения. Ко всей памяти программе так просто доступа не дается.

надеюсь это чем-нибудь поможет



Для ВИНДОУСа ситуация немного иная, т.к. это память отведенная для ДОСа. ВИНДа ее будет использовать в своих корыстных целях, так, что по этому адресу будет действительно лежать ндругая информация.

Для данной реализации, ИМХО, необходимо написать приложение ДОС, а из под винды брать от него данные.
ИЛИ
Писать драйвер, который будет на короткое время переводить ВИНДу в реальный режим (как ВСЕМ известно ВИНДа работает в защищенном режиме :)))) ) там производить все манипуляции, а потом быстро обратно. Но у этого способа есть свои недостатки.

1
01 апреля 2003 года
kot_
7.3K / / 20.01.2000
Цитата:
Originally posted by mikeshilkin


Для данной реализации, ИМХО, необходимо написать приложение ДОС, а из под винды брать от него данные.
ИЛИ
Писать драйвер, который будет на короткое время переводить ВИНДу в реальный режим (как ВСЕМ известно ВИНДа работает в защищенном режиме :)))) ) там производить все манипуляции, а потом быстро обратно. Но у этого способа есть свои недостатки.


хм...мягко сказано...переводить Масдай в реальный режим - это круто...
А как на счет контекста устройства и прочего?

1
02 апреля 2003 года
kot_
7.3K / / 20.01.2000
Цитата:
Originally posted by mikeshilkin


Для данной реализации, ИМХО, необходимо написать приложение ДОС, а из под винды брать от него данные.
ИЛИ
Писать драйвер, который будет на короткое время переводить ВИНДу в реальный режим (как ВСЕМ известно ВИНДа работает в защищенном режиме :)))) ) там производить все манипуляции, а потом быстро обратно. Но у этого способа есть свои недостатки.


хм...мягко сказано...переводить Масдай в реальный режим - это круто...
А как на счет контекста устройства и прочего?

989
03 апреля 2003 года
Vlad232ua
182 / / 02.04.2003
Все это конечно прекрасно int *a = 0xfd34ef12, только возникла как-то проблемка, линейка 256 Mb двух-стороняя 16-ти чиповая, один чип сбоит, вопрос какой, выкачали спецификацию на память, и вот тут был извините попстон, где какой банк (а их на линейке оказалось четыре) как их считать, как чередуются. И зависит ли это добро от установок Interlive на материи т.д. и т.п. Но хорошо допустим напишем прогу, вычислим, а дальше? Следующий производитель уже с 8-ю чипами будет и со своей спецификацией, а завтра память в 512 метров поступит, дальше что? Кроме того, исходя из той-же спецификации с помощью 0xfd34ef12, просто невозможно адресоваться к физике памяти (разрядности то маловато), адресоваться ты будешь к контроллеру, а вот что он тебе обратно швырнет, с чего взял, что это физический адрес. Откуда у HDD 16 головок, когда их с роду максимум четыре. Так что прискорбно но и с памятью та-же перда, все уже давно виртуальное даже на уровне железа. А если просто память протестировать, то для этого физика не нужна, да и что будешь тестировать, если за наносекунду проходит туча тактов обновления, с таким же успехом захватил максимально доступный кусок и хрюкай его сколько хочешь.
384
03 апреля 2003 года
mikeshilkin
95 / / 20.04.2000
Цитата:
Originally posted by Vlad232ua
Все это конечно прекрасно int *a = 0xfd34ef12, только возникла как-то проблемка, линейка 256 Mb двух-стороняя 16-ти чиповая, один чип сбоит, вопрос какой, выкачали спецификацию на память, и вот тут был извините попстон, где какой банк (а их на линейке оказалось четыре) как их считать, как чередуются. И зависит ли это добро от установок Interlive на материи т.д. и т.п. Но хорошо допустим напишем прогу, вычислим, а дальше? Следующий производитель уже с 8-ю чипами будет и со своей спецификацией, а завтра память в 512 метров поступит, дальше что? Кроме того, исходя из той-же спецификации с помощью 0xfd34ef12, просто невозможно адресоваться к физике памяти (разрядности то маловато), адресоваться ты будешь к контроллеру, а вот что он тебе обратно швырнет, с чего взял, что это физический адрес. Откуда у HDD 16 головок, когда их с роду максимум четыре. Так что прискорбно но и с памятью та-же перда, все уже давно виртуальное даже на уровне железа. А если просто память протестировать, то для этого физика не нужна, да и что будешь тестировать, если за наносекунду проходит туча тактов обновления, с таким же успехом захватил максимально доступный кусок и хрюкай его сколько хочешь.



Прочитайте информацию про адресацию в защищенном режиме. В ЧАСТНОСТИ ТАМ ВОЗМОЖНА АДРЕСАЦИЯ ДО 16 Гбайт.

У винта, Вы забыли про LBA преобразование, для экономии памяти при передаче параметров.

989
05 апреля 2003 года
Vlad232ua
182 / / 02.04.2003
Цитата:
Originally posted by mikeshilkin


Прочитайте информацию про адресацию в защищенном режиме. В ЧАСТНОСТИ ТАМ ВОЗМОЖНА АДРЕСАЦИЯ ДО 16 Гбайт.

У винта, Вы забыли про LBA преобразование, для экономии памяти при передаче параметров.



:-? Я ведь про физику а не про логику. Ну адресовался, а дальше? Феном че греть будем? И как отключить сбойную головку используя LBA:)

384
05 апреля 2003 года
mikeshilkin
95 / / 20.04.2000
Цитата:
Originally posted by Vlad232ua


:-? Я ведь про физику а не про логику. Ну адресовался, а дальше? Феном че греть будем? И как отключить сбойную головку используя LBA:)



Так тебе, что контроллер памяти сделать надо?
Или хочешь дырки узнать?

989
06 апреля 2003 года
Vlad232ua
182 / / 02.04.2003
Цитата:
Originally posted by mikeshilkin


Так тебе, что контроллер памяти сделать надо?
Или хочешь дырки узнать?


-------------------------------------------------

Да нет. Все проще. Болтается в столе линейка на 256, выдает конкретный адрес по XMS типа 1A03:001F (сейчас точно не помню). Полез на Samsung, Kingston и иже с ними. Нашел спецификацию (заставили зарегистрироваться и потом на мыло фуфло всякое гнали). Ну неважно, одним словом спецификацию нашел, а вычислить чип не смог (глюпый потому-что). А жалко, линейку (Kingstone 256, 16 чипов, двухсторонняя, для BXа - раритет) одни уроды неделю в кармане таскали, видимо перегнули, можно было попытаться прогреть чип, но какой? Совсем запутался я в адресации,физических, логических и прочих банках. Стало интересно, а как-же буржуины это делают? Ну когда нашел сайтик http://www.futureplus.com/faqs/faq1107.html
все стало понятно и я эту идею забросил. Если бы у меня бэдовская память потоком шла, еще можно было бы дальше разбираться, а так подумал, что не окупит себя этот гиморой.

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог