LINUX.ORG.RU

ДОС, резидент и QEMU


1

0

Это мой первый скриншот на ЛОРе, поэтому прошу пинать очень сильно.

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

Собственно на скрине: FreeBSD 4.11, WindowMaker 0.92 с кучей докапов, MC в котором открыто описание функций из dos.h ну и конечно qemu с Turbo C 2.0 (единственный компилятор под дос, который сумел достать). К сожалению его пришлось использовать не только как компилятор, но и как редактор. Пробовал писать код в любимом emacs, а потом вставлять в ТС, но он почему-то игнорировал переносы строки.

>>> Просмотр (1023x767, 96 Kb)



Проверено: Shaman007 ()

Лабу надо было в Minix-е делать там и редакторы и компиляторы нормальные, вывод препод ламо, вали аттуда

anonymous
()

Два обработчика таймера, setvect() туда-сюда... брр
Я бы делал все это в одном обработчике таймера
И еще - уже не помню, но сам setvect() вроде бы вызывает int 21h/ah=25h?
В обработчике таймера лучше писать напрямую в таблицу векторов прерываний - как-то спокойнее, да и быстрее ;-)

anonymous
()
Ответ на: комментарий от Darkman

Не убивали, а на прерываниях вешали.

Macil ★★★★★
()
Ответ на: комментарий от smartly

Гы гы... а те прерывания, которые он на себя перехватывал ты долго и мучительно востанавливал?

eXOR ★★★★★
()
Ответ на: комментарий от smartly

Паскаль перехватывает довольно много прерываний.
Но там есть процедуоа SwapVectors().
Так что никаких проблем.

SwapVectors;
Keep(0); // stay resident

anonymous
()
Ответ на: комментарий от smartly

> Кто, паскаль? Какие он на себя прерывания перехватывал?

Номеров уже и не помню, но TP RunTime точно часть прерываний на себя перехватывал.

Darkman ★★★
()
Ответ на: комментарий от Darkman

Например деление на 0, нажатие Ctrl+C ...

anonymous
()
Ответ на: комментарий от grustnoe

>а как в миниксе написать резидент? :)

лаба должна не только научить как писать на С,
но также позволить поглубже заглянуть в устройство ОС,

то что препод знает только DOS и соотвественно
его студенты изучают никому ненужную ОС,
это швах.

anonymous
()
Ответ на: комментарий от anonymous

>А кому реально счаз DOS нужен? И зачем нужен опыт писания резидента?

никому, но остались динозавры которые только это и знают,
и считают это системным программированием.

anonymous
()
Ответ на: комментарий от anonymous

А подумать ? Опыт написания резидента под ДОС пригодится человеку который столкнется с жестким hardware-программингом. Например для какого-нибудь 8-разрядного микроконтроллера или DSP-шника.

BottleHunter
()
Ответ на: комментарий от anonymous

Просто есть такой предмет - операционные системы, в рамках которого изучается обработка прерываний и IPC (в линукс и в оффтопике). Это - первая лаба, она на обработку прерываний, следующие лабы будут по средствам IPC в Linux и OFFTOPIC соответственно.

Strange
() автор топика
Ответ на: комментарий от BottleHunter

Ох не помню уже чего там паскаль перехватывал. Но помню, что все проблемы успешно решались.

> Опыт написания резидента под ДОС пригодится человеку который столкнется с жестким hardware-программингом. Например для какого-нибудь 8-разрядного микроконтроллера

В принципе согласен. Опыт написания обработчиков прерываний помогает писать обработчики прерываний для микроконтроллеров.

smartly ★★★
()

Хотел было спросить, а почему не dosemu для ДОСа
используется, но упс, это ж БСД... ну тогда почему
не dosbox?

anonymous
()
Ответ на: комментарий от anonymous

Сейчас как раз использую DosBox, он оказался гораздо удобнее, т.к. нинадо делать никаких образов, можно просто маунтить каталог. Но все равно тестить прогу не получается, т.к. не дают напрямую писать в регистры и менять вектора. Приходится юзать еще одну тачку с голым досом.

Strange
() автор топика
Ответ на: комментарий от Strange

Вот никак не могу понять большой радости от шрифта Terminus. Русские буквы <<к>> и <<в>> в нем какие-то странные: первая как латинская, а вторая неоличима от заглавной.

brazhe
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.