IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> [Pascal] Прерывания MS DOS 21h
сообщение
Сообщение #1


Пионер
**

Группа: Пользователи
Сообщений: 55
Пол: Мужской

Репутация: -  -1  +


Дал препод в универе процедуру:
Procedure MsDos(var Regs:Registers);

Где, Regs имеет тип
Registers record 
Case integer of
0: (AX,BX …..:Word);
1: (AL,AH,…DL,DH:Byte)
end;


blink.gif blink.gif blink.gif blink.gif Немогу вдуплить, как составить упрощенный алгоритм работы процедуры MsDos, используя следующую информацию:
- Количество символов в строке =80
- Количество строк=25
- Нумерация начинается с нуля
- Имеется возможность дать сигнал "роллинга" на одну строку вверх
- Имеется возможность получить сигнал готовности ввода от контроллера (адаптера)

Результат роботы программы точно не знаю, так как он сказал в процесе работы все поймете!!!!
Ну как я догадуюсь программа должна выдавать на экран любой символ, например $.
Но смисла я понять вообще немогу!!!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Гуру
*****

Группа: Пользователи
Сообщений: 1 168
Пол: Мужской
Реальное имя: Сергей Андрианов

Репутация: -  28  +


Вообще-то MsDos - это выполнение прерывания MS DOS. Применяется обычно в тех случаях, когда в Борланд Паскале нет прямых аналогов этих функций (типа write[ln], read[ln], assign/reset, readkey, keypressed и т.п.) либо паскалевские аналоги слишком высокоуровневые, а нужны именно низкоуровневые процедуры (например, посекторное чтение диска).
Насколько я понимаю, для выполнения задания нужен справочник по функциям MS DOS, а также указание преподавателя, какую именно из всего многообразия функций нужно имиировать.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Пионер
**

Группа: Пользователи
Сообщений: 55
Пол: Мужской

Репутация: -  -1  +


Цитата(andriano @ 9.12.2007 18:05) *

Вообще-то MsDos - это выполнение прерывания MS DOS. Применяется обычно в тех случаях, когда в Борланд Паскале нет прямых аналогов этих функций (типа write[ln], read[ln], assign/reset, readkey, keypressed и т.п.) либо паскалевские аналоги слишком высокоуровневые, а нужны именно низкоуровневые процедуры (например, посекторное чтение диска).
Насколько я понимаю, для выполнения задания нужен справочник по функциям MS DOS, а также указание преподавателя, какую именно из всего многообразия функций нужно имиировать.



Используя функцию 2
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Гуру
*****

Группа: Пользователи
Сообщений: 1 168
Пол: Мужской
Реальное имя: Сергей Андрианов

Репутация: -  28  +


С номером функции определились, остальсь выяснить, что именно эта функция должна делать.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Пионер
**

Группа: Пользователи
Сообщений: 55
Пол: Мужской

Репутация: -  -1  +


Цитата(andriano @ 9.12.2007 19:11) *

С номером функции определились, остальсь выяснить, что именно эта функция должна делать.

Выдать на экран любой символ, например $ , используя функцию 2, прерывания 21h
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Гуру
*****

Группа: Пользователи
Сообщений: 1 168
Пол: Мужской
Реальное имя: Сергей Андрианов

Репутация: -  28  +


И какие у нее входные параметры?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Пионер
**

Группа: Пользователи
Сообщений: 55
Пол: Мужской

Репутация: -  -1  +


Цитата(andriano @ 9.12.2007 19:22) *

И какие у нее входные параметры?

Я не знаю!!!! Препод не дал ничего кроме того что я написал в первом посту!!!!

Количество символов в строке =80
- Количество строк=25
- Нумерация начинается с нуля
- Имеется возможность дать сигнал "роллинга" на одну строку вверх
- Имеется возможность получить сигнал готовности ввода от контроллера (адаптера)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8


Гуру
*****

Группа: Пользователи
Сообщений: 1 168
Пол: Мужской
Реальное имя: Сергей Андрианов

Репутация: -  28  +


Наверное преподаватель хотел, чтобы ты самостоятельно посмотрел в справочнике по MS DOS.
(мне, честно говоря, лень идти за ним в другую комнату или искать в И-нете, а под DOS я уже много лет не пишу, так что навскидку не помню)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #9


Пионер
**

Группа: Пользователи
Сообщений: 55
Пол: Мужской

Репутация: -  -1  +


Цитата(andriano @ 9.12.2007 20:14) *

Наверное преподаватель хотел, чтобы ты самостоятельно посмотрел в справочнике по MS DOS.
(мне, честно говоря, лень идти за ним в другую комнату или искать в И-нете, а под DOS я уже много лет не пишу, так что навскидку не помню)


Так ли я понимаю что у каждой функции (1,2,3 и т.д даже не знаю сколько их)есть свои параметры.......и в данном случае функция 2 тоже имеет свои параметры какие я должен использывать для написаний алгоритма (программи) используя Procedure MsDos ?????
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #10


Гуру
*****

Группа: Пользователи
Сообщений: 1 168
Пол: Мужской
Реальное имя: Сергей Андрианов

Репутация: -  28  +


Естественно.
На самом деле функция MsDos - есть лишь интерфейс к функциям DOS, которые предназначены для выхова их из языка Ассемблера и параметры в котороые передаются в регистрах процессора.
То есть с точки зрения Паскаля, у всех у них единственный параметр - переменная типа Registers, но в различные поля этой переменной должны быть записаны соответствующие значения (разные для разных функций).
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #11


Пионер
**

Группа: Пользователи
Сообщений: 55
Пол: Мужской

Репутация: -  -1  +


Цитата(andriano @ 9.12.2007 20:38) *

Естественно.
На самом деле функция MsDos - есть лишь интерфейс к функциям DOS, которые предназначены для выхова их из языка Ассемблера и параметры в котороые передаются в регистрах процессора.
То есть с точки зрения Паскаля, у всех у них единственный параметр - переменная типа Registers, но в различные поля этой переменной должны быть записаны соответствующие значения (разные для разных функций).

Ти меня окончательно запутал!!! wacko.gif wacko.gif mega_chok.gif mega_chok.gif mega_chok.gif mega_chok.gif Короче щас буду по инету шарится шо тто искать!!

Посмотри пожалуста ето не оно случаем????? http://redacid.org.ua/ftp/media1/all_docs/...b/ch1.html#b1.5

Сообщение отредактировано: metamfetamin -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #12


Гуру
*****

Группа: Пользователи
Сообщений: 1 168
Пол: Мужской
Реальное имя: Сергей Андрианов

Репутация: -  28  +


Оно.
Судя по :
Цитата
02h Отобразить символ Отображаемый символ посылается на стандартное устройство вывода
Это именно вывод единственного символа на экран. Осталось найти описание входных регистров и особенности работы (типа переходит на другую строку или нет, производит скроллинг или нет и т.п.).
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 23.11.2020 23:36
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name