На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
Дорогие друзья! Поздравляем вас с днём Победы!
msm.ru
Название темы должно быть информативным !
Прежде чем задать вопрос, воспользуйтесь Поиском. и проверьте в FAQ (ЧАВО) Паскаля
Чтобы получить вразумительный ответ, подробно опишите проблему: что надо сделать, что не получается и номер ошибки (если есть), которую выводит компилятор.
Для вставки кода ваших программ используйте, пожалуйста, кнопку СODE=pas или выпадающий список СODE для других языков (подсветка синтаксиса).
[!] Как правильно задавать вопросы | Руководство по языку B.Pascal 7 & Objects/LR | Borland Pascal. Руководство пользователя
Модераторы: volvo877
  
> О резидентных программах
    Всех со Старым Новым Годом !
    Рылся я, рылся в различных исходниках в поисках резидентных программ
    и естественно находил не один десяток. Но вот беда: половина из них либо
    со встроенными ассемблеровскими процедурами( ассемблер я пока, к сожалению
    не знаю) либо громоздки т.е не подходят как учебные примеры.
    А мне сейчас для понимания нужны именно они.Поэтому я
    обращаюсь за помощью к вам. Вот скажем нужно написать (к примеру):
    1. Прога, которая совершенно неожиданным образом 14 января ровно в 23 часа
    45 минут 15 секунд 10 милисекунд вдруг перезагрузит мою тачку.
    ...ну и допустим...
    2. Прога, которая скажем при переходе на "диск А" вначале заставит
    пропиликать внутренний динамик а уж затем и перейдёт на "диск А".
    Очень прошу привести примеры этих программ или хотя бы привести ТОЧНЫЙ
    алгоритм.
      Тут без Ассемблера не обойтись. Но не потому, что только средствами Turbo Pascal нельзя решить эти задачи.
      Прерывания от таймеров, дисковых контроллеров - аппаратные, и могут возникать абсолютно в любой момент(также, как и события в резидентной программе).И если команды резидентной программы или обработчика прерывания нарушат состояние данных или аппаратных схем, то последствия их дальнейшей обработки системными программами трудно предугадать, а таймеры и дисковые контроллеры - это аппаратные схемы, работа которых при том, часто привязана к определенным моментам времени(удастся ли программе уложится в отведенные для обработки состояния микросекунды?). TP же предназначен для выполнения программ в среде MS-DOS или Windows и опирается на функции, доступные в этих системах. А в резидентных программах функции ОС в общем случае недоступны(они могут быть заняты другими программами или просто требовать иных режимов).
        Нет только одной последовательности действий, приводящей к заданной цели. Их всегда бесконечное число.
          Мне нужна сейчас хотя бы одна..
            А можнт кто знает где есть исходники подобных программ ?
              В смысле на паскале и не громоздких
                Исходники вряд ли будут.
                Запуск TP-программ такого рода - самоубийство.
                Если первую еще можно запустить (и потом не трогать и ждать, пока сработает) - достаточно установить будильник через функцию 06; Int 1A, то вторая - с большой вероятностью что-то испортит(особенно если учесть, что сохранить значения регистров неизменными невозможно - программе потребуются, как минимум, DS и SP).
                В любом случае пробовать обработчики прерываний и резиденты лучше на ненужном компе(больше всего вероятность испортить диски записанным туда мусором. Самый ужасный, зато маловероятный вариант - запись мусора в РПЗУ с BIOS).
                  2 Ilia:
                  Несомненно, что _некоторые_ вещи лучше все-таки делать другими средствами, но тем не менее, на паскале МОЖНО СДЕЛАТЬ ВСЁ, что угодно.
                  2 NOPIK:
                  > Исходники вряд ли будут.
                  Вай, зачэм такой сэрдитый?
                  Будут исходники. Много исходников.
                  Захады, дарагой:
                  pascal.sources.ru/tsr/index.htm
                    2 Valery
                    Речь шла об ОТСУТСТВИИ в программе инструкций ассемблера или inline-кода.
                      Набери слово keep
                      и вызови по нему Help кнопкой Ctrl-F1
                      1 пользователей читают эту тему (1 гостей и 0 скрытых пользователей)
                      0 пользователей:


                      Рейтинг@Mail.ru
                      [ Script execution time: 0,0297 ]   [ 14 queries used ]   [ Generated: 10.05.24, 18:55 GMT ]