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

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

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

> Порты, определить их число
Catty
сообщение 21.02.2005 23:49
Сообщение #1


Бывалый
***

Группа: Пользователи
Сообщений: 239
Пол: Женский
Реальное имя: Юлия

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


Надо написать прогу на паскале которая бы определяла число
подключенных последовательных портов. :flowers:


--------------------
For every evil under the sun
There is a remedy or there is none
If there is one - try to find it
If there is none - never mind it!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов(1 - 15)
volvo
сообщение 22.02.2005 0:37
Сообщение #2


Гость






Catty, насколько я помню, это делается вот так:
Байт по адресу 0000:0411h в первом, втором и третьем битах содержит общее количество установленных COM-портов, а в шестом и седьмом - количество LPT-портов. Отсюда -
Код
var
 counter: byte absolute $0000:$0411;
begin
 writeln('Число установленных COM портов: ',(counter shr 1) and $07);
 writeln('Число установленных LPT портов: ', counter shr 6)
end.
 К началу страницы 
+ Ответить 
Romtek
сообщение 22.02.2005 0:44
Сообщение #3


Знаток
****

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

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


Загляни в http://pascal.sources.ru/comm/index.htm - Коммуникации


--------------------
Romiras HomeLab- материалы и статьи по разработке ПО, моделирование алгоритмов, обработка и анализ информации, нейронные сети, машинное зрение и прочее.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Catty
сообщение 22.02.2005 0:53
Сообщение #4


Бывалый
***

Группа: Пользователи
Сообщений: 239
Пол: Женский
Реальное имя: Юлия

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


Спасибо!! :flowers:
если у кого еще есть какие-то соображения на это счет то кидайте тоже, не стесняйтесь!


--------------------
For every evil under the sun
There is a remedy or there is none
If there is one - try to find it
If there is none - never mind it!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Catty
сообщение 22.02.2005 21:02
Сообщение #5


Бывалый
***

Группа: Пользователи
Сообщений: 239
Пол: Женский
Реальное имя: Юлия

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


volvo a что означает такое объявление типа данных- counter: byte absolute $0000:$041?
и что такое shr?


--------------------
For every evil under the sun
There is a remedy or there is none
If there is one - try to find it
If there is none - never mind it!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 22.02.2005 21:11
Сообщение #6


Гость






Catty, объявляем counter типа byte, но располагаться он будет не там, где захочет компилятор, а по адресу, который указан после Absolute (то есть, фактически мы говорим компилятору, что все действия, которые программа производит с counter-ом на самом деле производятся с байтом, находящимся по адресу $0000:$0411 - в BIOS)...

А shr - это сдвиг на указанное число бит вправо... Надо же как-то выделить нужные биты из байта... вот и сдвигаем байт так, что нужные биты находятся в крайних справа позициях.
 К началу страницы 
+ Ответить 
Catty
сообщение 22.02.2005 21:53
Сообщение #7


Бывалый
***

Группа: Пользователи
Сообщений: 239
Пол: Женский
Реальное имя: Юлия

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


Понятно! Спасибо! :flowers:


--------------------
For every evil under the sun
There is a remedy or there is none
If there is one - try to find it
If there is none - never mind it!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Catty
сообщение 23.02.2005 21:33
Сообщение #8


Бывалый
***

Группа: Пользователи
Сообщений: 239
Пол: Женский
Реальное имя: Юлия

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


А вот мне еще нужно определить объем дополнительной памяти!
Объем дополнительной памяти:
Ячейки 16H и 17H содержат соответственно младший и старший
байты размера дополнительной памяти (расположенной выше 1М) в кило-
байтах.
можно написать data: byte absolute $16:$17, а потом вывесли значение data, или это будет не правильно?


--------------------
For every evil under the sun
There is a remedy or there is none
If there is one - try to find it
If there is none - never mind it!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 23.02.2005 21:54
Сообщение #9


Гость






Catty
Цитата
Ячейки 16H и 17H содержат соответственно младший и старший байты

Немного не так: Ячейки 17h и 18h содержат, соответственно, младший и старший байты размера дополнительной памяти (расположенной выше границы 1 М) в килобайтах...
Код
var data: word absolute $0000:$0017;
begin
 writeln('Дополнительная память:', data)
end.
 К началу страницы 
+ Ответить 
Catty
сообщение 23.02.2005 22:04
Сообщение #10


Бывалый
***

Группа: Пользователи
Сообщений: 239
Пол: Женский
Реальное имя: Юлия

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


Мне выводит 2, значит что доп. рамять 2 Кб??


--------------------
For every evil under the sun
There is a remedy or there is none
If there is one - try to find it
If there is none - never mind it!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 23.02.2005 22:06
Сообщение #11


Гость






Catty, посмотри внимательно: я написал word а не byte smile.gif
нам же нужны 2 байта, а это уже Word...
 К началу страницы 
+ Ответить 
Catty
сообщение 23.02.2005 22:07
Сообщение #12


Бывалый
***

Группа: Пользователи
Сообщений: 239
Пол: Женский
Реальное имя: Юлия

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


я забыла сменить byte на word .
С word выводит 16386!
это в Кб?
--------
зы Олежик почему я не могу удалит свое сообщение!!??


--------------------
For every evil under the sun
There is a remedy or there is none
If there is one - try to find it
If there is none - never mind it!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Catty
сообщение 23.02.2005 22:11
Сообщение #13


Бывалый
***

Группа: Пользователи
Сообщений: 239
Пол: Женский
Реальное имя: Юлия

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


еще такой вопрос, а почему мы пишем $0000:$0017?почему именно так?


--------------------
For every evil under the sun
There is a remedy or there is none
If there is one - try to find it
If there is none - never mind it!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 23.02.2005 22:17
Сообщение #14


Гость






А нам нужны 2 последовательных байта: 17Н (это $0000:$0017) и 18Н (то же, что $0000:$0018), то есть слово (Word), которое начинается здесь: $0000:$0017
 К началу страницы 
+ Ответить 
Altair
сообщение 23.02.2005 22:17
Сообщение #15


Ищущий истину
******

Группа: Модераторы
Сообщений: 4 824
Пол: Мужской
Реальное имя: Олег

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


offtop
Цитата
Олежик почему я не могу удалит свое сообщение!!??

сделал.


--------------------
Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Catty
сообщение 23.02.2005 22:42
Сообщение #16


Бывалый
***

Группа: Пользователи
Сообщений: 239
Пол: Женский
Реальное имя: Юлия

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


Кажеться поняла! :flowers:


--------------------
For every evil under the sun
There is a remedy or there is none
If there is one - try to find it
If there is none - never mind it!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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

 



- Текстовая версия 19.07.2025 22:50
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"