Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Asm для начинающих > Резидент для доса


Автор: Krask 10.12.2006, 00:32
Добрый день.
Мне надо написать резидентную программу для ДОСа, которая по введенной команде begin начинает все последующие команды записывать в файл до команды end, а после команды show изображать этот файл на экране. 

Вот я хочу спросить как организовать отлов комманды, и сделать так чтобы ДОС потом не ругался на них типа: bad command or file name. Или как это обойти. 

Автор: anwe 10.12.2006, 10:33
Для запуска не обязательно иметь в памяти этот резидент. Просто называешь свое произведение begin.exe и вводишь.
А для отлова следующих команда используй стандартные методы подмены векторов прерывания. Сначала выполняй свой код после передавай на стандарную обработку.

Автор: Krask 10.12.2006, 13:27
В том то и дело, что мне нужно сделоать именно резидент. 

Автор: anwe 10.12.2006, 20:34
Решение особо не меняется.
Цитата(anwe @  10.12.2006,  09:33 Найти цитируемый пост)
А для отлова следующих команда используй стандартные методы подмены векторов прерывания. Сначала выполняй свой код после передавай на стандарную обработку. 

Отлавливай нужные слова.

Автор: Akina 11.12.2006, 00:16
Ты должен отлавливать прерывания клавиатуры и фактически организовать свой собственный дубликат буфера клавиатуры... тут тебе сильно поможет то, что из порта клавиатуры можно читать сколько угодно раз, не сбрасывая пришедшего байта... а уж парсить этот буфер, выделять ключевые слова, чистить ненужное до начала записи и дальнейшие действия - это совсем другой разговор...

А вот 
Цитата(Krask @  10.12.2006,  01:32 Найти цитируемый пост)
сделать так чтобы ДОС потом не ругался на них типа: bad command or file name.

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

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)