Модераторы: bsa

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> система прерываний 
:(
    Опции темы
mvo
Дата 21.2.2009, 00:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 20.2.2009

Репутация: нет
Всего: нет



Помогите написать программу с помощью системы прерываний, которая будет читать информацию из определенного сектора гибкого диска и выводить на экран.
PM MAIL   Вверх
Dmi3ev
Дата 21.2.2009, 00:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1698
Регистрация: 28.11.2007

Репутация: 13
Всего: 41



не вопрос!
сколько платишь?
 smile


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

PM MAIL   Вверх
Anikmar
Дата 21.2.2009, 00:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2513
Регистрация: 26.11.2006
Где: Санкт-Петербург

Репутация: 5
Всего: 59



Цитата(Dmi3ev @  21.2.2009,  00:54 Найти цитируемый пост)
не вопрос!
сколько платишь?
  

Под виндами?
С помощью прерываний?
PM MAIL ICQ   Вверх
mvo
Дата 21.2.2009, 01:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 20.2.2009

Репутация: нет
Всего: нет



да
PM MAIL   Вверх
Anikmar
Дата 21.2.2009, 01:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2513
Регистрация: 26.11.2006
Где: Санкт-Петербург

Репутация: 5
Всего: 59



Цитата(mvo @  21.2.2009,  01:15 Найти цитируемый пост)
да 

Прерываний в понятии ДОС под виндами нет. Только Win API. Так что я пас, а вот Dmi3ev, цену набивает (видимо страшную тайну знает)  smile .

А если серьезно, то спрошу стандартный вопрос: А чего надо-то? Может как-то и без прерываний можно?
PM MAIL ICQ   Вверх
Dmi3ev
Дата 21.2.2009, 01:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1698
Регистрация: 28.11.2007

Репутация: 13
Всего: 41



Цитата

Прерываний в понятии ДОС под виндами нет. Только Win API. Так что я пас, а вот Dmi3ev, цену набивает (видимо страшную тайну знает)  

Dmi3ev тайны не знает, просто бесплатно полностью программу писать мало кто будет, я, например, не буду...
а без если без денег, то пусть товарищ выкладывает свои наработки, изыски в данной области... поможем...



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

PM MAIL   Вверх
THandle
Дата 21.2.2009, 01:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Хранитель Клуба
Group Icon
Награды: 1



Профиль
Группа: Админ
Сообщений: 3639
Регистрация: 31.7.2007
Где: Moscow, Dubai

Репутация: нет
Всего: 372



mvo, хотя бы опредилился бы сначала на чем тебе сие чудо надо:

http://forum.vingrad.ru/forum/topic-248539.html
http://forum.vingrad.ru/forum/topic-248558.html

А за дублирование тем можно схлопотать и предупреждение.
PM   Вверх
Anikmar
Дата 21.2.2009, 01:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2513
Регистрация: 26.11.2006
Где: Санкт-Петербург

Репутация: 5
Всего: 59



Цитата(Dmi3ev @  21.2.2009,  01:29 Найти цитируемый пост)
Dmi3ev тайны не знает, просто бесплатно полностью программу писать мало кто будет, я, например, не буду...
а без если без денег, то пусть товарищ выкладывает свои наработки, изыски в данной области... поможем...


 smile  А еще Dmi3ev, шуток не понимает.  smile 
PM MAIL ICQ   Вверх
Alexiski
Дата 21.2.2009, 03:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 12.12.2008

Репутация: нет
Всего: 1



Anikmar, ты зачем волну гонишь? В самой винде прерываний, конечно, нет, а в досбоксе таки есть.
Если написать программу на древнем паскале или турбо с, то она отлично читает дискету через прерывания.
Человек ведь не сам придумал, ему. небось препод задание дал.

А насчет денег - согласен на 100%. Или наработки и помощь - или деньги и результат.
PM MAIL   Вверх
Anikmar
Дата 21.2.2009, 04:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2513
Регистрация: 26.11.2006
Где: Санкт-Петербург

Репутация: 5
Всего: 59



Цитата(Alexiski @  21.2.2009,  03:22 Найти цитируемый пост)
Anikmar, ты зачем волну гонишь? В самой винде прерываний, конечно, нет, а в досбоксе таки есть. Если написать программу на древнем паскале или турбо с, то она отлично читает дискету через прерывания.


1.
Ну прям цунами.
Хочу пример. Работы с террабайтовым винтом через древние прерывания Дос-бокса.

Цитата(Alexiski @  21.2.2009,  03:22 Найти цитируемый пост)
А насчет денег - согласен на 100%. Или наработки и помощь - или деньги и результат. 

2. Раздел называется С++ для новичков. Новичкам помогают, а не требуют денег. Для поиска работы есть отдельный форум. Я не прав?

3. Мой ответ относился индивидуально к Dmi3ev (см пункт 1). А конкретно у автора топика я спросил: 
Цитата(Anikmar @  21.2.2009,  01:18 Найти цитируемый пост)
А если серьезно, то спрошу стандартный вопрос: А чего надо-то? Может как-то и без прерываний можно? 


4. 
Цитата(Alexiski @  21.2.2009,  03:22 Найти цитируемый пост)
небось препод задание дал.

Я тоже когда-то учился и честно говорю, преподы бывают тоже дебилами. Поэтому см. пункт 3.

5. Конкретно претензии ко мне может высказать автор топика либо лицо, которое я чем-то обидел. (ну и модератор, наверное)...

Всех кого нечаяно обидел - приношу извинения.   smile 




PM MAIL ICQ   Вверх
mvo
Дата 21.2.2009, 15:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 20.2.2009

Репутация: нет
Всего: нет



Код

uses crt, dos;
var R:registers;
begin
clrscr;
R.AH:=02;
write('vvedite kilkist sectoriv go zchutuutca (1-128): '); readln(R.AL);
write('vvedite nomer dorigku/culidra (0-1023):         '); readln(R.CH);
write('vvedite nomer sectora (1-17):                   '); readln(R.CL);
write('vvedite nomer golivku (0-15):                   '); readln(R.DH);
R.DL:=0;
intr($13,R);
writeln(R.AH,'  ',R.AL,'  ',R.CH,'  ',R.CL,'  ',R.DH);
readln;
end.

PM MAIL   Вверх
Alexiski
Дата 22.2.2009, 03:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 12.12.2008

Репутация: нет
Всего: 1



mvo
1)Для дискеты границы номеров цилиндра и дорожки будут поменьше..
2) Нужно еще указать, куда читать сектор. Для этого надо зарезервировать место в виде массива, например, и загрузить его адрес в ES:BX
3) Соответственно, не будем спрашивать сколько секторов читать. Зарезервируем место для одного сектора, один и прочитаем.
4) Ну, и надо как-то показать, что мы прочли
Код

uses crt, dos;
var R:registers;
 s: array[0..511] of char;
begin
  clrscr;
  R.AX:=$0201;
  R.ES := seg(s);
  R.BX := ofs(s);
  write('vvedite nomer dorigku/culidra (0-79):           '); readln(R.CH);
  write('vvedite nomer golivku (0-1):                    '); readln(R.DH);
  write('vvedite nomer sectora (1-17):                   '); readln(R.CL);
  R.DL:=0;
  intr($13,R);
  writeln(R.AH,'  ',R.AL,'  ',R.CH,'  ',R.CL,'  ',R.DH);
  writeln(ord(s[0]),'  ',ord(s[1]),'  ',ord(s[2]),'  ',ord(s[3]),'  ',ord(s[4]));
  writeln(s[0],s[1],s[2],s[3],s[4]);
  readln;
end.


PM MAIL   Вверх
Alexiski
Дата 22.2.2009, 04:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 12.12.2008

Репутация: нет
Всего: 1



Цитата(Anikmar @  21.2.2009,  04:05 Найти цитируемый пост)
Хочу пример. Работы с террабайтовым винтом через древние прерывания Дос-бокса.

С терабайтовым винтом не пробовал, врать не буду, хотя принципиальных сложностей не вижу.
А в задании говорилось про дискету - так вот,  дискету отлично читает.

Цитата(Anikmar @  21.2.2009,  04:05 Найти цитируемый пост)
Новичкам помогают, а не требуют денег. Для поиска работы есть отдельный форум. Я не прав?

Помогают тому, кто работает. Кто работает, обычно спрашивает чуть более конкретно. Но здесь я согласен, чуть перегнул палку. 

Цитата(Anikmar @  21.2.2009,  04:05 Найти цитируемый пост)
Конкретно претензии ко мне может высказать автор топика либо лицо, которое я чем-то обидел. (ну и модератор, наверное)...

Ради Бога, какие претензии? Никаких претензий, просто стремление восстановить истину. Если это Вас так задело, приношу глубочайшие извинения.

PM MAIL   Вверх
Anikmar
Дата 22.2.2009, 06:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2513
Регистрация: 26.11.2006
Где: Санкт-Петербург

Репутация: 5
Всего: 59



Цитата(Alexiski @  22.2.2009,  04:07 Найти цитируемый пост)
А в задании говорилось про дискету - так вот,  дискету отлично читает.

С дискетой согласен - я не увидел слово "гибкого" (бывает).

Цитата(Alexiski @  22.2.2009,  04:07 Найти цитируемый пост)
С терабайтовым винтом не пробовал, врать не буду, хотя принципиальных сложностей не вижу.

Принципиальные возникнут там, где не хватит 16 разрядов только и всего.

Цитата(Alexiski @  22.2.2009,  04:07 Найти цитируемый пост)
Ради Бога, какие претензии? Никаких претензий, просто стремление восстановить истину. Если это Вас так задело, приношу глубочайшие извинения.
 Блин, ничего меня не задело, тон изначально был шутливый. Мир дружба жвачка. Просто первый же ответ новичку на форуме "дай денег" мне показался как-то странным. Он же не просил "Напишите мне". Он просил "Помогите написать". Лично я помогаю бесплатно. 

А если по делу:

Я что-то не понял, если этот форум С++, почему на паскале код делаем?

Вялый и беспредметный спор, на самом деле даже и не спор вовсе.
Естественно можно войти в досбокс и нормально вопсользоваться 16-разрядными сервисами ДОС и BIOS, но коль мы работаем под виндами - это все на уровне совместимости, реальных прерываний в понятии ДОСа нет естественно, но работать с дисками можно. Лично я просто хотел выяснить зачем это надо. Если просто показать код, который прочитает заданный сектор и получить оценку - это одно. А если человек принципиально не в том направлении двигается (например, создает свой дисковый оптимизатор, дефрагментатор  и т.п.) - это совсем другое, тут дучше сразу определиться на какой базе делать работу (использя windows, напрямую без всяких операционок и т.п.).


PM MAIL ICQ   Вверх
Alexiski
Дата 22.2.2009, 12:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 12.12.2008

Репутация: нет
Всего: 1



Цитата(Anikmar @  22.2.2009,  06:45 Найти цитируемый пост)
Принципиальные возникнут там, где не хватит 16 разрядов только и всего.

Скажите, а какими методами, по-Вашему, с этого самого диска загружается операционная система?
Существуют расширения интерфейса int13. Специально для преодоления этих проблем.

Цитата(Anikmar @  22.2.2009,  06:45 Найти цитируемый пост)
Я что-то не понял, если этот форум С++, почему на паскале код делаем?

Каюсь, виноват.. Автор запостил свой код в несколько веток, и я запутался следом за ним..

PM MAIL   Вверх
Anikmar
Дата 22.2.2009, 17:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2513
Регистрация: 26.11.2006
Где: Санкт-Петербург

Репутация: 5
Всего: 59



Цитата(Alexiski @  22.2.2009,  12:37 Найти цитируемый пост)
Скажите, а какими методами, по-Вашему, с этого самого диска загружается операционная система?
Существуют расширения интерфейса int13. Специально для преодоления этих проблем.

Кто-бы спорил.
Я про DOS-box
На сколько я знаю он работает в режиме эмуляции (на виртуальной машине), поэтому в понимании DOS прерывания в Windows выглядят  иначе.

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

И вообще - похоже основная работа идет в форуме дельфи, а тут на 1 пост автора 10 постов нашей воды. По поводу террабатовых винтов мне даже лень проверять было, но думаю работать не будет - хотя эмуляция DOS может и позволит. Так как последний раз я работал с дисками через прерывания DOS/BIOS лет так 15 назад, то с меня помощник хреновый получится.



PM MAIL ICQ   Вверх
Страницы: (2) [Все] 1 2 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0936 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.