Рубрики: КОМПЬЮТЕРНАЯ ЛИТЕРАТУРА

про компютерное железо, документация, языки программирования

Фортран. Вce типы oпepaтopoв, coдepжaщиxcя в MC-Фортране.

КОМПЬЮТЕРНАЯ ЛИТЕРАТУРА

LIB.com.ua [электронная библиотека]: : ФОРТРАН — B этoй глaвe oпиcaны вce типы oпepaтopoв, coдepжaщиxcя в MC-Фортране, в oбщeпpинятыx тepминax.

логического массива. Выполнение оператора
INQUIRE с операндом FILE= установит переменную
в состояние .TRUE., если указанный файл суще-
ствует, или в состояние .FALSE. если указанного
файла нет.
Выполнение оператора INQUIRE с операндом UNIT=
установит переменную в состояние .TRUE. если
указанное устройство есть или в состояние
.FALSE. в противном случае.
логическое- логическая переменная или элемент поименовано
логического массива. Выполнение оператора
INQUIRE с операндом UNIT= установит переменную
в состояние .TRUE. если файл был открыт по
имени и к устройству присоединен временный
файл.
целое- целое или элемент целого массива, которое
проверка- становится определенным, как
выхода а) нуль, если не было ошибок или не встретились
условия конца файла.
b) машинно-зависимая положительная целая
величина если встретилось состояние ошибки.
с) машинно зависимая отрицательная целая ве-
личина если ошибки не было и встретился конец
файла.
логическое- логическая переменная или элемент логического
открыто массива. В проверке по файлу устанавливается
.TRUE., если именованный файл в текущий момент
соединен с любым устройством. В противном слу-
чае устанавливается .FALSE. В проверке по уст-
ройству устанавливается .TRUE., если для дан-
ного устройства открыт любой файл, в противном
случае — .FALSE.
целое-что- целая переменная или элемент целого массива.
соединено Она становится неопределенной, если к файлу не
присоединено устройство. Иначе, при проверке
по файлу она равна номеру устройства, соединен-
ному с файлом.
имя-файла- символьная величина или элемент символьного
соединения массива. При проверке устройства в нее засы-
лается имя файла. Она становится неопределен-
ной, если у файла нет имени или файл не присо-
единен к устройству.
имя-типа- символьная переменная или элемент символьного
доступа массива. Присваивается значение ‘SEQUENTAL’,
если присоединен файл последовательного дос-
тупа, и -‘DIRECT’, если присоединен файл пря-
мого доступа.
Если к заданному устройству не присоединен
файл переменная становится неопределенной.
имя-последо- символьная переменная или элемент символьного
вательного массива. Устанавливается ‘YES’, если среди
набора допустимых режимов доступа к присоедине-
нному файлу есть последовательный. В противном
случае — ‘NO’ или ‘UNKNOWN’.
имя-прямого символьная переменная или элемент символьного
массива. Устанавливается ‘YES’, если среди
набора допустимых режимов доступа к присоеди-
ненному файлу есть прямой. В противном случае —
‘NO’ или ‘UNKNOWN’.

имя-формата символьная переменная или элемент символьного
массива, которой присваивается FORMATTED’ если
присоединен файл для форматного ввода/вывода
и — ‘UNFORMATTED’ в противном случае.
имя-формати- символьная переменная или элемент символьного
рованного массива, которой присваивается ‘YES’, если
среди набора допустимых видов файла есть фор-
матный, и — ‘NO’ или ‘UNKNOWN’ в противном
случае.
имя-неформати- символьная переменная или элемент символьного
рованного массива, которой присваивается ‘YES’, если
среди набора допустимых видов файла есть не-
форматный и — ‘NO’ или ‘UNKNOWN’ в противном
случае.
целое-длина целая переменная или элемент массива, которая
определяет длину (в байтах) каждой записи
файла, присоединенного для прямого доступа.
Если файл присоединен для неформатного вво-
да/вывода длина будет в машинно-зависимых еди-
ницах.
целое-номер- целая переменная или элемент целого массива,
которая присваивается номер следуюей записи в
файле, присоединеном для прямого доступа.
Первая запись в таком файле имеет номер 1.
имя-пробела символьная переменная или элемент символьного
массива, которой присваивается значение ‘NULL’
если действует редактирующий описатель BN или
значение ‘ZERO’если действует BZ.
имя-состояния- символьная переменная, которой передается зна-
совместного- чение строки операнда SHARE= в операнде OPEN
доступа (COMPAT,DENYRW,DENYWR,DENYRD или DENYNONE).
Если к заданному устройству не присоединен
файл-становится неопределенной.
имя-типа- символьная переменная, которой передается зна-
работы чение строки операнда MODE= оператора OPEN
(READ,WRITE,READWRITE). Если к заданному уст-

ройству не присоединен файл становится неопре-
деленной.

Особенности.
Оператор INQUIRE может быть выполнен в любой момент. Возвра-
щаемые им величины соответствуют моменту обращения.
Элементы в списке описателей/назначений могут следовать в
любом порядке.

ЬДДДДДДДДДДДДДДДДДДДД
Ы INTERFACE
ЯДДДДДДДДДДДДДДДДДДДД

Позволяет связь с процедурами, написанными на других языках.
Может быть также использован для вызова подпрограммы с
заданными параметрами.
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
INTERFACE TO оператор подпрограммы
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
Где оператор подпрограммы — это оператор FUNCTION или
SUBROUTINE

Особенности.
Оператор определяет для связи подпрограмму или функцию,
описанную после слов INTERFACE TO. Оператор подпрограммы или фун-
кции имеет обычный синтаксис. В INTERFACE могут появляться только
такие операторы как INTERFACE, EXTERNAL, INTRINSIC, DIMENSION,
END написания типа.

Например:
INTERFACE TO INTEGER FUNCTION F(I,J,K)
INTEGER*2 I
REAL J
EXTERNAL K
END
описывает функцию
INTEGER FUNCTION F(I,J,K)
INTEGER*2 I
REAL J
EXTERNAL K
END
Если Вы планируете компилировать отдельно части Вашей програм-
мы, Вы можете включить оператор связи в каждую компилируемую часть,
которая использует или определяет подпрограммы. Связь должна вста-
вляться перед любой ссылкой на используемую подпрограмму. Рекомен-
дуется, чтобы Вы завели в отдельном файле все тексты связей и
использовали $INCLUDE в каждом файле, использующем связи, для обе-
спечения точно таких же определений в местах использования.
Компилятор обеспечивает совместимость параметров в вызовах
подпрограмм с их определениями в INTERFACE. Когда INTERFACE ссы-
лается на подпрограмму в этом же самом текстовом файле, компилятор
обеспечивает совмещение имен, типов и числа параметров.
Атрибуты (описанные в части 7), используемые в INTERFACE,
меняют определения по умолчанию в описании подпрограммы. Однако,
если Вы используете атрибут в описании подпрограммы или ее пара-
метров, те же самые атрибуты должны появиться в INTERFACE. Нап-
ример, Вы можете заменить параметры подпрограммы на конкретные
значения параметров с помощью INTERFACE без изменения описания
подпрограммы.

ЬДДДДДДДДДДДДДДДД
Ы INTRINSIC
ЯДДДДДДДДДДДДДДДД

Объявляет, что имя является именем встроенной функции.
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
INTRINSIC имя1[,имя2]…
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
Где имя — это имя встроенной функции.

Особенности.
В операторе INTRINSIC каждое пользовательское имя может
появиться только однажды. Имя, упомянутое в операторе INTRINSIC,
не может быть использовано в операторе EXTERNAL. Все имена, испо-
льзуемые в операторе INTRINSIC, должны быть системно-определенными
встроенными функциями. Список этих функций приведен в таблице 5-1
в части 5.
Вы должны определить имя встроенной функции в операторе
INTRINSIC, если Вы хотите использовать ее как параметр (т.е. как
фактический параметр в программной единице).
Пример:
С Пример оператора INTRINSIC
INTRINSIC SIN, COS
C SIN и COS — это параметры CALC2
X=CALC2(SIN,COS)

ЬДДДДДДДДДДДДДДДДДДДД
Ы LOCKING
ЯДДДДДДДДДДДДДДДДДДДД

Закрывает файлы и записи прямого доступа
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
LOCKING ([UNIT=]устройство,[REC=номер-записи,]
[RECORDS=число-записей,][LOCKMODE=’режим’,]

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

Фортран. Вce типы oпepaтopoв, coдepжaщиxcя в MC-Фортране.

КОМПЬЮТЕРНАЯ ЛИТЕРАТУРА

LIB.com.ua [электронная библиотека]: : ФОРТРАН — B этoй глaвe oпиcaны вce типы oпepaтopoв, coдepжaщиxcя в MC-Фортране, в oбщeпpинятыx тepминax.

[ERR=метка-обработки-ошибки,][IOSTAT=состояние])
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
Где
устройство — это целое, являющееся номером закрываемого устрой-
ства. Файл, связанный с устройством должен быть
открыт для прямого доступа.
номер-записи — целое выражение, определяющее номер первой записи
в группе записей, которые должны быть закрыты. Если
номер-записи отсутствует закроется следующая запись
(следующая, которая должна была читаться)
число-записей целое выражение определяющее число закрываемых за-
писей. По умолчанию равно единице.
режим строковое выражение, имеющее одно из следующих
значений:
‘UNLCK’ не закрывать заданную область
‘LOCK’ закрыть заданную область
‘NBLCK’ не блокированное закрытие. Закрывает
заданную область. Если она уже закрыта другим
процессом, дает ошибку. Действует по умолчанию.
‘RLCK’ закрыть по чтению. То же, что и
LOCK кроме закрытия доступа для записи.
‘NBRLCK’ не блокированное закрытие по чтению.
Тоже, что и NBLCK кроме закрытия доступа для
записи.
метка- это метка любого оператора. Если она определена,
обработки- то ошибка ввода/вывода передает управление на вы-
ошибки полняемый оператор с этой меткой. Если не опреде-
лены ни метка-обработки-ошибки, ни состояние, то
ошибка ввода/вывода переходит в ошибку исполнения.
Оператор с меткой-обработки-ошибки должны нахо-
диться в той же программной единице, что и оператор
LOCKING.
состояние — это целая переменная или элемент целого массива,
принимающая значения:
а) нуль, если не встретилось ошибок или
конца файла
в) номер ошибки исполнения, если встре-
лась ошибка
с) отрицательное целое, если встретился
конец файла.

Особенности.
UNIT должен быть первым операндом, остальные могут следовать
в любой последовательности.
Если не определены ни состояние, ни метка-обработки-ошибки,
в программе возникнет авост при встрече с концом файла или ошибкой.

ЬДДДДДДДДДДДД
Ы OPEN
ЯДДДДДДДДДДДД

Приводит в соответствие номер устройства с внешним устройством
или файлом на внешнем устройстве.
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
OPEN (номер-устройства [,FILE=’имя-файла’]
[,STATUS=’тип’][,ACCESS=’тип-доступа’][,FORM=
‘Формат’][,IOSTAT= состояние][,RECL=длина]
[,SHARE=’совместно’][,MODE=’режим’])
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
Где
номер-устройства это определитель требуемого устройство. Он
должен быть первым параметром и не должен быть
внутренним определителем устройства.
Для получения более подробной информации об
определителе устройства и других элементах
операторов ввода/вывода смотрите часть 4 «Сис-
тема ввода/вывода».
имя-файла это символьное выражение. Это не обязательный
параметр, но он должен быть вторым, если при-
сутствует. Если он отсутствует, компилятор
создает временный вспомогательный файл с именем
таким же как устройство.
Вспомогательный файл уничтожается либо
при полном закрытии, либо при нормальном окон-
чании программы.
Все параметры после имени-файла необя-
зательны и могут появляться в любом порядке.
За исключением IOSTAT= и RECL=, являющихся
символьными константами с возможными пробе-
лами; эти разделы должны быть заключены в оди-
ночные кавычки.
тип это OLD(по умолчанию) или NEW. OLD — для чтения
или записи в существующие файлы. NEW — для за-
писи новых файлов.
тип-доступа SEQUENTIAL(по умолчанию) или DIRECT
формат это FORMATTED,UNFORMATTED или BINARY. Если
доступ-SEQUENTIAL, по умолчанию — FORMATTED;
если доступ-DIRECT, по умолчанию — UNFORMATTED.
состояние целая переменная или элемент целого массива,
заполняемый как:
а) нуль если не было ошибки или
конца файла
в) машинно-зависимая целая положительная
величина, если встретилась ошибка
с) машинно-зависимая целая отрицательная
величина, если встретился конец файла

и не было ошибки.
длина (длина записи) целое выражение, определяющее
длину каждой записи в байтах. Этот параметр
применим только для файлов с прямым доступом,
для которых он необходим.
совместно это символьное выражение, определяющее, как
другие процессы могут иметь доступ к файлу,
пока файл еще открыт.
Допустимые значения «совместно» следующие (без
учета возможных пробелов):

‘COMPAT’ режим совместимости по умолчанию
когда файл открывают в режиме совм-
естимости, начальный USER (процесс,
открывший файл) может открыть файл
в режиме совместимости сколько угодно
раз. Никакой другой USER не может
открыть файл. Файл, который был от-
крыт не в режиме совместимости, не
может быть открыт в режиме совмес-
тимости.
‘DENYRW’ режим отказа от чтения записи.
Когда файл открыт в режиме отказа
от чтения/записи, никакой процесс
не может открыть файл.
‘DENYWR’ режим отказа от записи. Когда
файл открыт в режиме отказа от
записи, никакой процесс не может
открыть файл для записи.
‘DENYRD’ режим отказа от чтения. Когда
файл открыт в режиме отказа от чте-
ния, никакой процесс не может открыть
файл для чтения.
‘DENYNONE’ произвольный режим. Когда файл
открыт в произвольном режиме, любой
процесс может открыть файл в любом
режиме (кроме режима совместимости).
режим это символьное выражение, определяющее какой
вид доступа получает начальный процесс
(процесс, первоначально открывший файл).
Допустимыми значениями режима являются (без
учета возможных пробелов):’READ’ процесс может
читать из файла ‘WRITE’ процесс может писать
в файл ‘READWRITE’ процесс может читать и
писать в файл

Особенности.
Соединение нулевого устройства с файлами ни на что не дейст-
вует: нулевое устройство — это постоянно соединенные клавиатура и
экран.
Если имя файла определено пробелами (FILE=»), программа пы-
тается прочитать имя файла из списка имен в командной строке, вы-
звавшей программу. При хорошей работе операторов OPEN из командной
строки читается нужное число параметров. Если таких операторов
OPEN больше чем параметров в командной строке, программа спрашивает
Вас имена файлов. Например, если в командной строке нет параметров
(или они уже все прочитаны предыдущими операторами OPEN), оператор
OPEN (10, FILE=»)
вызовет сообщение:
File name missing or blank
Please enter name
UNIT 10?
(Имя файла отсутствует или пустое
Пожалуйста введите имя
для устройства 10?)
Если Вы не обеспечили оператор OPEN файлом, и первая операция,
использующая такой файл, — это READ или WRITE, то программа
пытается открыть файл, как если бы он был описан пустым именем.
Программа читает командную строку или выдает запрос имени файла,
описанный выше.

Отметим, что Вы также можете писать на принтер, открывая файл с
FILE=’PRN’
Если Вы открыли файл, не указав MODE, система счета в Фортране
всегда будет пытаться открывать с MODE ошибочно, система счета
попытается открыть файл снова, сначала используя WRITE, а затем
READ. Отметим, что это не то же самое, что при определении
MODE=’READWRITE’. Если Вы определили MODE=’READWRITE’, а файл не
может быть открыт ни по доступу на чтение ни на запись, возникает
ошибка открытия. Поведение по умолчанию (сначала с READWRITE, затем
с WRITE, а потом с READ) более гибкое.
Если для одной из программ вычислительной среды установлено
по умолчанию READWRITE, то это не всегда самый лучший выбор, если
файл будет использоваться совместно. Например, предположим, что
некоторые процессы хотят читать из файла, и чтобы при этом никакой
процесс не мог изменять файл во время чтения. Первый процесс может
открыть файл с SHARE=’DENYWR’ и с MODE=’READWRITE’ по умолчанию.
Величина SHARE будет препятствовать другим процессом писать в файл,
а величина MODE позволит первому процессу читать из файла. Но дру-
гие процессы не могут открыть файл с SHARE=’DENYWR’, потому что
начальный процесс получил доступ к файлу с записью. Однако, если
бы первый процесс открыл файл с SHARE=’DENYWR’и MODE=’READ’, любое
число процессов могло бы тоже открыть файл с SHARE=’DENYWR’ и
MODE=’READ’.
В таблице 3-5 приведены ограничения, существующие для открытия
файла, который уже был открыт с конкретными значениями SHARE и
MODE.
ЪДДДДДДДДДДДДДДДДДДДДДДДДДДВДДДДДДДДДДДДДДДДДДДДДДДДДДДДДї
і Файл открыт с указанными і Можно последовательно отк- і
і величинами SHARE и MODE і рыть с указанными величина- і
і і ми SHARE и MODE і

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

Фортран. Вce типы oпepaтopoв, coдepжaщиxcя в MC-Фортране.

КОМПЬЮТЕРНАЯ ЛИТЕРАТУРА

LIB.com.ua [электронная библиотека]: : ФОРТРАН — B этoй глaвe oпиcaны вce типы oпepaтopoв, coдepжaщиxcя в MC-Фортране, в oбщeпpинятыx тepминax.

ГДДДДДДДДДДДДДДДДДДДДДДДДДДЕДДДДДДДДДДДДДДДДДДДДДДДДДДДДДґ
і SHARE= MODE= і SHARE= MODE= і
і і і
і COMPAT READWRITE і COMPAT READWRITE і
і READ і только READ і
і і начального WRITE і
і і процесса і
АДДДДДДДДДДДДДДДДДДДДДДДДДДБДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ

ЪДДДДДДДДДДДДДДДДДДДДДДДДДДВДДДДДДДДДДДДДДДДДДДДДДДДДДДДДї
і Файл открыт с указанными і Можно последовательно отк- і
і величинами SHARE и MODE і рыть с указанными величина- і
і і ми SHARE и MODE і
ГДДДДДДДДДДДДДДДДДДДДДДДДДДЕДДДДДДДДДДДДДДДДДДДДДДДДДДДДДґ
і DENYRW READWRITE і Не может быть последова- і
і READ і тельно открыт і
і WRITE і і
і DENYWR READWRITE і DENYNONE READ і
і READ і DENYNONE READ і
і і DENYWR і
і WRITE і DENYNONE READ і
і і DENYRD і
і DENYRD READWRITE і DENYNONE WRITE і
і READ і DENYNONE WRITE і
і і DENYWR і
і WRITE і DENYNONE WRITE і
і і DENYRD і
і DENYNONE READWRITE і DENYNONE READWRITE і
і і READ і
і і WRITE і
і READ і DENYNONE READWRITE і
і і DENYWR READ і
і і WRITE і
і WRITE і DENYNONE READWRITE і
і і DENYRD READ і
і і WRITE і
АДДДДДДДДДДДДДДДДДДДДДДДДДДБДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ
Таблица 3-5. Величины SHARE и MODE.

Если, например, если файл открыт с SHARE=’DENYRD’ и
MODE=’READ’, то этот файл может быть также открыт с SHARE равным
либо DENYNONE, либо DENYWR и MODE равным WRITE.

Примеры:
С Приглашение пользователю ввести имя файла
WRITE (*,'(A\)’)’ Outrit file name?
C Предлагаем, что имя файла в виде CHARACTER*64
C Чтение имени файла с клавиатуры
READ(*,'(A)’) FNAME
C Откроем файл как форматный, последовательный,
С связанный с устройством 7. Отметим, что указание
С доступа необязательно, так как оно совпадает со
С значением по умолчанию. Форматный — тоже
С по умолчанию.
OPEN (7,FILE=FNAME,ACCESS=’SEQUENTIAL’
+STATUS=’NEW’)
C Открытие существующего файла, созданного EDITOROM
C с именем DATA3.TXT, как устройства 3.
OPEN (3,FILE=’DATA3.TXT’)

ЬДДДДДДДДДДДДДДДДДД
Ы PARAMETER
ЯДДДДДДДДДДДДДДДДДД

Присваивает имя константе.
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
PARAMETER ( P=e[,P=e]. . .)
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
Где
P — имя
e — константа или константое выражение.
Константа может быть логической, символьной или относиться к
любому арифметическому типу. Константное выражение может быть толь-
ко логическим или целым.

Особенности.
Имя должно соответствовать по типу константе или константному
выражению. Если имя не имеет типа по умолчанию, а длина константы —
длина по умолчанию, имя должно быть описано в операторе описания
типа или в IMPLICIT до использования в тексте программы.
Имя может быть использовано в выражениях только той программ-
ной единицы, в которой оно определено.
Имя не может быть использовано в определении формата и в не-
которых других константах, например, в комплексной константе.
Примеры:
PARAMETER (NBLOCKS=10)
INTEGER REMAIN
PARAMETER (REMAIN=10/3, DIV=7.66)

ЬДДДДДДДДДДДДДД
Ы PAUSE
ЯДДДДДДДДДДДДДД

Приостанавливает выполнение программы до того, будет нажата
клавиша RETURN.
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
PAUSE [n]
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
Где
n — это символьная константа, либо строка из не более чем пяти
цифр.

Особенности.
Оператор PAUSE приостанавливает выполнение программы до ко-
манды продолжать. Параметр n, если он есть, выдается на экран как
приглашение, требующее ввода с клавиатуры. Если n нет, на экран
выдается такое сообщение :
PAUSE. Please press to continue.
(ПАУЗА. Пожалуйста для продолжения нажмите ).
После нажатия на клавишу Ввод (ENTER) выполнение программы
возобновится, как если бы был выполнен оператор CONTINUE.

Пример :
С Пример оператора PAUSE
IF (IMARN.EQ.0) GO TO 300
PAUSE ‘WARNING : INARM IS NONZERO’
300 CONTINUE

ЬДДДДДДДДДДДДДДДД
Ы PROGRAM
ЯДДДДДДДДДДДДДДДД

Определяет программную единицу как основную программу и при-
сваивает ей имя.
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
PROGRAM имя программы
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
Где
имя программы — это имя, которое Вы дали своей основной программе.
Имя программы — это глобальное имя. Поэтому оно не
может совпадать с именем любой внешней процедуры
или именем COMMON-блока.(Оно также является локаль-
ным именем основной программы и не должно вступать
в противоречие с любым локальным именем в основной
программе.) Оператор PROGRAM может быть только
первым оператором в основной программе.

Особенности.
Если у основной программы нет оператора PROGRAM, ей будет
присвоено имя MAIN. Имя MAIN тогда нельзя будет использовать для
именования любого другого объекта.
Пример :
PROGRAM GAUSS
REAL COEF (10,10), COST (10)
.
.
.
END

ЬДДДДДДДДДДДДД
Ы READ
ЯДДДДДДДДДДДДД

Передает данные из файла, связанного с определителем устрой-
ства, в объекты списка-ввода/вывода, при условии, что нет конца
файла или ошибки.
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
READ (определитель устройства [,определитель формата]
[,IOSTAT=состояние] [,REC=номер записи] [,END=метка1]
[,ERR=метка2]) список-ввода/вывода
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
Где
определитель-
устройства- это определитель требуемого устройства,
который должен быть первым параметром.
определитель-
формата- требуется для формального чтения как второй
параметр. Не должен появляться для неформатного
чтения. Остальные параметры если они есть, могут
появляться в любом порядке. состояние-
это целая переменная или элемент целого массива,
которому присваивается :

а) нуль, если встретилась ошибка или конец файла;
b) машинно-зависимая положительная целая величина,
если встретилась ошибка ;
с) машинно-зависимая отрицательная целая величина,
если встретится конец файла и не было ошибки.
номер записи — определен только для файлов прямого доступа если
номер записи определен для файла не типа прямого
доступа возникнет ошибка. Номер-записи — это
положительное целое выражение определяющее
положение записи (первая запись в файле имеет номер
равный 1) перед началом передачи данных. Если для
файла прямого доступа этого параметра нет, чтение
продолжится последовательно от позиции в файле.
метка 1- это необязатальная метка оператора в той же са-
мой программной единице, что и оператор READ. Если
этот параметр отсутствует, чтение дошедшее до конца
файла порождает ошибку счета. Если он есть, встре-
тившееся условие конца файла передает управление
на указанный выполняемый оператор.

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

Фортран. Вce типы oпepaтopoв, coдepжaщиxcя в MC-Фортране.

КОМПЬЮТЕРНАЯ ЛИТЕРАТУРА

LIB.com.ua [электронная библиотека]: : ФОРТРАН — B этoй глaвe oпиcaны вce типы oпepaтopoв, coдepжaщиxcя в MC-Фортране, в oбщeпpинятыx тepминax.

метка 2 — необязательная метка оператора в той же самой
программной единице, что и оператор READ. Если
этот параметр отсутствует, ошибка ввода/вывода
порождает ошибку счета. Если он есть, ошибка вво-
да/вывода передает управление на указанный выпол-
няемый оператор.
Список-ввода-вывода- определяет объекты, в которые
передаются величины из файла.
Он может быть пустым, но обычно содержит
объекты для ввода и неявные циклы, разделенные
запятыми.
Особенности.
Если чтение внутреннее, источником ввода служит символьная
переменная или массив символьных элементов; если чтение не внут-
реннее, источником ввода является внешнее устройство. Для более
подобной информации об определении внешних устройств и других эле-
ментов операторов ввода/вывода смотрите часть 4.
Если файл не был открыт оператором OPEN, выполняется операция
OPEN по умолчанию. Эта операция эквивалентна выполнению следующего
оператора :
OPEN (оператор устройства, FILE=», STATUS=’OLD’,
ACCESS=’SEQUENTIAL’,FORM=’формат’
Формат — это FORMATTED для форматного READ и UNFORMATTED для
не форматного READ. Смотрите описание оператора OPEN для понимания
действия параметра FILE=.

Пример:
С Описание двухмерного массива
DIMENSION IA(10,20)
С Чтение в границы массива. Эти границы не превышают
С 10 и 20 соответственно. Затем чтение в массив неявным
С циклом DO с вводным форматом 8 колонок по 5 цифр.
READ (3,990) IL, JL, ((IA(I,J), J=1, JL), I=1, IL)
990 FORMAT (215/,(8I5))

ЬДДДДДДДДДДДДДДД
Ы RETURN
ЯДДДДДДДДДДДДДДД

Возвращает управление в вызываемую программную единицу.
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
RETURN
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД

RETURN может появляться только в функции или подпрограмме.

Особенности.
Выполнение оператора RETURN заканчивает выполнение всей под-
программы или функции. Если оператор RETURN находится в функции,
величине функции присваивается текущее значение переменной с тем
же именем, что и функция.
Выполнение оператора END в функции или подпрограмме эквива-
лентно выполнению оператора RETURN. Поэтому для окончания функции
или подпрограммы требуется или RETURN или END,но не оба:

Пример
С Пример оператора RETURN
С Эта подпрограмма выполняет цикл
С пока вы не наберете «Y»
SUBROUTINE LOOP
CHARACTER IN
C
10 READ (*,'(A1)’) IN
IF (IN.EG.’Y’) RETURN
GO TO
C Неявный RETURN
END

ЬДДДДДДДДДДДДДДД
Ы REWIND
ЯДДДДДДДДДДДДДДД

Возвращает в начальную точку файл, связанный с определенным
устройством.
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
REWIND определитель устройства
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
Где определитель-устройства
— это заданный определитель внешнего устройства.
Для более подробной информации об определителях
устройств и других элементах операторов ввода/вы-
вода смотрите часть 4 «Система ввода/вывода».
Пример
INTEGER A(80)
.
WRITE (7,'(80I1)’)A
.
.
REWIND
.
READ (7,'(80I1)’)A

ЬДДДДДДДДДДДД
Ы SAVE
ЯДДДДДДДДДДДД

Заставляет переменные запоминать их значения при вызовах
процедур, в которых они определены.
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
SAVE имя1 [,имя]…
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
Где имя — это имя COMMON-блока (заключенное в косые чер-
точки), переменной или массива. После заполнения,
если в текущую процедуру еще раз войти, то назван-
ные переменные и все переменные в названном COMMON-
блоке содержит определенные величины.
Пример
С Пример оператора SAVE
SAVE /MYCOM/, MYVAR

ЬДДДДДДДДДДДДДДДДДДДДДДДДД
Ы Функция-оператор
ЯДДДДДДДДДДДДДДДДДДДДДДДДД

Определяет функцию в виде одного оператора.
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
имя-функции ([параметр[,параметр]…])=выражение
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
Где имя-функции параметр выражение
— это имя функции-оператора
— это имя формального параметра
— это любое выражение
Особенности.
Функция оператор подобна по виду оператору присваивания. Фун-
кция-оператор может стоять только после операторов определения
типа и перед любыми исполняемыыми операторами в програмной еденице,
в которой она используется.
Функция-оператор — это невыполняемый оператор, хотя она и
является первым оператором в программной единице. Однако, тело
функции-оператора служит для определения значения функции-опера-
тора. Как и другие любые функции функция-оператор вычисляется по
ссылке в выражении.
Тип выражения должен быть совместим с типом имени функции-
оператора. Список имени формальных параметров служит для
определения числа и типа параметров функции-оператора. Областью
действия имен фармальных параметров является сама функция оператор.
Поэтому имена формальных параметров могут быть переопределены как
другие имена пользователя в оставшейся части программной единици,
за исключением определителя функции-оператора.
Имя функции-оператора, однако, локально, по отношению к
программной единице; оно не должно быть использовано где либо еще,
кроме имени COMMON-блока или имени формального параметра в другой
функции-операторе. Впоследнем случае тип такого использования
должен быть одинаковым.
Если имя формального параметра совпадает с любым другим ло-
кальным именем, то следует иметь в виду, что ссылка на это время
в функции-операторе определяет его как формальный параметр и ни в
каком другом смысле.

В выражении допустимы ссылки на переменные, формальные
параметры, другие функции, элементы массивов и константы. Ссылки
на функции-операторы, однако, должны относится к функциям,
описанным до того, как они употреблены здесь. На функцию-оператор
не может быть вызвана рекурсивно, как прямо так и косвенно.
На функцию-оператор можно ссылаться только в той программной
единице, где она описана. Имя функции-оператора не должно появлять-
ся ни в каких описывающих операторах, за исключением описания типа
(которые не могут описывать это имя, как массив) и оператора COMMON
(как имя COMMON-блока).
Функция-оператор не может быть типа CHARACTER.

Пример
С Пример оператора функция-оператор
DIMENSION X(10)
ADD(A,B)=A+B
C
DO 1 I=1,10
X(I)=ADD(Y,Z)
1 CONTINUE

ЬДДДДДДДДДДДДД
Ы STOP
ЯДДДДДДДДДДДДД

Оканчивает программу.
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
STOP [n]
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
Где
n — это либо символьная константа, либо строка из не более чем
пяти цифр.

Особенности.
Параметр n, если он есть, высвечивается на экран, когда про-
грамма оканчивается. Если n нет, высвечивается такое сообщение:
STOP — Program terminated
(STOP — Программа окончена)

Пример
С Пример оператора STOP
IF (IERROR.TQ.0) GO TO 200

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

Пpогpаммно-технические сpедства пеpсональных ЭВМ семейства IBM PC

КОМПЬЮТЕРНАЯ ЛИТЕРАТУРА

LIB.com.ua [электронная библиотека]: : Пpогpаммно-технические сpедства пеpсональных ЭВМ семейства IBM PC

— 133 —

SW2 (PC-1)
ON Ц1В2В3В4В5В6В7В8· ON Ц1В2В3В4В5В6В7В8·
єЯіЯіЯіЯі і і і є 64K єЯіЬіЯіЬі і і і є 384K
УДБДБДБДБДБДБДБДЅ УДБДБДБДБДБДБДБДЅ
ON Ц1В2В3В4В5В6В7В8· ON Ц1В2В3В4В5В6В7В8·
єЯіЬіЯіЯі і і і є 128K єЯіЯіЬіЬі і і і є 448K
УДБДБДБДБДБДБДБДЅ УДБДБДБДБДБДБДБДЅ
ON Ц1В2В3В4В5В6В7В8· ON Ц1В2В3В4В5В6В7В8·
єЯіЯіЬіЯі і і і є 192K єЯіЬіЬіЬі і і і є 512K
УДБДБДБДБДБДБДБДЅ УДБДБДБДБДБДБДБДЅ
ON Ц1В2В3В4В5В6В7В8· ON Ц1В2В3В4В5В6В7В8·
єЯіЬіЬіЯі і і і є 256K єЬіЬіЬіЬі і і і є 544K
УДБДБДБДБДБДБДБДЅ УДБДБДБДБДБДБДБДЅ
ON Ц1В2В3В4В5В6В7В8·
єЯіЯіЯіЬі і і і є 320K
УДБДБДБДБДБДБДБДЅ

Полный размер ОЗУ (SW2 для PC-2):
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД

Для PC-2 ключи 6 — 8 всегда в положении OFF. Максимальный
размер ОЗУ — 640К. Если Ваша ПЭВМ имеет позиции для адаптерных
плат или жесткий диск, то это PC-2.

SW2 (PC-2)
ON Ц1В2В3В4В5В6В7В8· ON Ц1В2В3В4В5В6В7В8·
єЯіЯіЯіЯіЯі і і є 64K єЯіЬіЯіЬіЯі і і є 384K
УДБДБДБДБДБДБДБДЅ УДБДБДБДБДБДБДБДЅ
ON Ц1В2В3В4В5В6В7В8· ON Ц1В2В3В4В5В6В7В8·
єЯіЬіЯіЯіЯі і і є 128K єЯіЯіЬіЬіЯі і і є 448K
УДБДБДБДБДБДБДБДЅ УДБДБДБДБДБДБДБДЅ
ON Ц1В2В3В4В5В6В7В8· ON Ц1В2В3В4В5В6В7В8·
єЯіЯіЬіЯіЯі і і є 192K єЯіЬіЬіЬіЯі і і є 512K
УДБДБДБДБДБДБДБДЅ УДБДБДБДБДБДБДБДЅ
ON Ц1В2В3В4В5В6В7В8· ON Ц1В2В3В4В5В6В7В8·
єЯіЬіЬіЯіЯі і і є 256K єЯіЯіЯіЯіЬі і і є 576K
УДБДБДБДБДБДБДБДЅ УДБДБДБДБДБДБДБДЅ
ON Ц1В2В3В4В5В6В7В8· ON Ц1В2В3В4В5В6В7В8·
єЯіЯіЯіЬіЯі і і є 320K єЯіЬіЯіЯіЬі і і є 640K
УДБДБДБДБДБДБДБДЅ УДБДБДБДБДБДБДБДЅ

Примечания:

1. Задание размера ОЗУ всегда было отдельным развлечением
для пользователей IBM PC. Если Вы не знаете точного размера
памяти Вашей ПЭВМ, то можете использовать следующий прием.
Установите минимальный размер памяти, загрузите ДОС и вызовите
CHKDSK, чтобы проверить, что ДОС находит столько памяти, сколько
Вы установили. Затем увеличивайте размер ОЗУ до тех пор, пока не
произойдет ошибка.

2. Если Вы зададите размер ОЗУ более 640К, то BIOS будет
прекрасно работать, но ДОС потерпит крах при загрузке, т. к.
часть COMMAND.COM грузится в старшие адреса памяти.

— 134 —

Переключатели IBM PC XT
ДДДДДДДДДДДДДДДДДДДДДДД

IBM PC XT имеет одну колодку переключателей (SW1):

SW1 (XT)
ON Ц1В2В3В4В5В6В7В8·
єЬі і і і є
УТБТБДБДБДБДБДБДЅ
є є ИЛј ИЛј ИНКН 7-8: количество НГМД
є є є ИНННННН 5-6: активный дисплей
є є ИНННННННННН 3-4: размер ОЗУ на системной плате
є ИННННННННННННН 2: наличие 8087
ИННННННННННННННН 1: всегда OFF

Ключи 2, 5-6 и 7-8 имеют тот же смысл, что на IBM PC. Ключи
3-4 задают размер ОЗУ на системной плате:

SW1 (XT)
ON Ц1В2В3В4В5В6В7В8·
є і іЬіЯі і і і є 128K
УДБДБДБДБДБДБДБДЅ
ON Ц1В2В3В4В5В6В7В8·
є і іЯіЬі і і і є 192K
УДБДБДБДБДБДБДБДЅ
ON Ц1В2В3В4В5В6В7В8·
є і іЬіЬі і і і є 256K
УДБДБДБДБДБДБДБДЅ

Примечание. BIOS IBM PC XT сканирует память в процессе
начального тестирования ПЭВМ. Поэтому при добавлении новых схем
памяти Вам не нужно менять положение переключателей.

Переключатели IBM PC AT
ДДДДДДДДДДДДДДДДДДДДДДД

IBM PC AT не имеет DIP-переключателей. Конфигурация
оборудования хранится в CMOS и может быть изменена с помощью
программы SETUP. Описание CMOS см. в п. 13.

В передней части системной платы имеется перемычка J18,
управляющая использованием ОЗУ на системной плате:

ЙJ18»
1 єЪoїє Разрешить второй банк емкостью 256K
2 єАoЩє (512К на системной плате)
3 є o є
ИНННј
ЙJ18»
1 є o є Запретить второй банк емкостью 256K
2 єЪoїє (256К на системной плате)
3 єАoЩє
ИНННј

Еще один переключатель, помеченный SW1, находится в задней

— 135 —

части системной платы и задает первичный дисплей ПЭВМ:

ЙSW1»
єЮЫЭє ON ON (назад) — CGA
є є OFF
ИНННј
ЙSW1»
є є ON
єЮЫЭє OFF OFF (вперед) — монохромный адаптер
ИНННј

Примечание. Документация на EGA содержит ошибку, рекомендуя
противоположное использование этого переключателя!

Переключатели адаптера EGA
ДДДДДДДДДДДДДДДДДДДДДДДДДД

DIP-переключатели на адаптере EGA указывают тип дисплея,
подключенного к адаптеру, и наличие других дисплейных адаптеров.
Ниже «первичный» дисплей означает тот дисплей, с которым будет
работать ПЭВМ при включении; «вторичный» относится к
дополнительному адаптеру и дисплею, которые могут быть
подключены к ЭВМ.

Самое важное: никогда не подключайте к адаптеру EGA
монохромный дисплей (MDA), если ключи не выставлены должным
образом. Вы можете физически разрушить дисплей!

ON Ц4В3В2В1· Первичный EGA с цветным монитором 40×25
єЯіЬіЬіЯє Вторичный MDA
УДБДБДБДЅ
ON Ц4В3В2В1· Первичный EGA с цветным монитором 80×25
єЯіЬіЬіЬє Вторичный MDA
УДБДБДБДЅ
ON Ц4В3В2В1· Первичный EGA с расширенным цветным монитором
єЬіЯіЯіЯє (эмуляция CGA)
УДБДБДБДЅ Вторичный MDA
ON Ц4В3В2В1· Первичный EGA с расширенным цветным монитором
єЬіЯіЯіЬє (в режиме EGA)
УДБДБДБДЅ Вторичный MDA
ON Ц4В3В2В1· Первичный EGA с монохромным монитором
єЬіЯіЬіЯє Вторичный CGA с цветным монитором 40х25
УДБДБДБДЅ
ON Ц4В3В2В1· Первичный EGA с монохромным монитором
єЬіЯіЬіЬє Вторичный CGA с цветным монитором 80х25
УДБДБДБДЅ
ON Ц4В3В2В1· Первичный MDA
єЯіЯіЯіЯє Вторичный EGA с цветным монитором 40х25
УДБДБДБДЅ
ON Ц4В3В2В1· Первичный MDA
єЯіЯіЯіЬє Вторичный EGA с цветным монитором 80х25
УДБДБДБДЅ
ON Ц4В3В2В1· Первичный MDA
єЯіЯіЬіЯє Вторичный EGA с расширенным цветным монитором
УДБДБДБДЅ (эмуляция CGA)

— 136 —

ON Ц4В3В2В1· Первичный MDA
єЯіЯіЬіЬє Вторичный EGA с расширенным цветным монитором
УДБДБДБДЅ (в режиме EGA)
ON Ц4В3В2В1· Первичный CGA с цветным монитором 40х25
єЯіЬіЯіЯє Вторичный EGA с монохромным монитором
УДБДБДБДЅ
ON Ц4В3В2В1· Первичный CGA с цветным монитором 80х25
єЯіЬіЯіЬє Вторичный EGA с монохромным монитором
УДБДБДБДЅ

EGA имеет три перемычки (P1 — P3):

ЙP1Н»
1 єЪoїє Поддержка расширенного цветного монитора
2 єАoЩє (640×350 и 64 цвета)
3 є o є

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36

Пpогpаммно-технические сpедства пеpсональных ЭВМ семейства IBM PC

КОМПЬЮТЕРНАЯ ЛИТЕРАТУРА

LIB.com.ua [электронная библиотека]: : Пpогpаммно-технические сpедства пеpсональных ЭВМ семейства IBM PC

ИНННј
ЙP1Н»
1 є o є
2 єЪoїє Поддержка стандартного цветного монитора
3 єАoЩє (640×200 и 16 цветов)
ИНННј

P2 (не показанный здесь) — это коннектор светового пера.

ЙP3Н»
1 єЪoїє Задает порты в/в EGA в адресах 3xxH
2 єАoЩє (стандартная установка)
3 є o є
ИНННј
ЙP3Н»
1 є o є
2 єЪoїє Задает порты в/в EGA в адресах 2xxH
3 єАoЩє (не поддерживается BIOSом EGA)
ИНННј

— 137 —

EГлоссарийF

Адаптеp (adapter).
См. контpоллеp.

Ассемблеp (assembly language).
Язык пpогpаммиpования на уpовне команд центpального
пpоцессоpа.

Байт (byte).
Минимальная адpесуемая единица памяти ЭВМ pазмеpом 8 бит.

Бит (bit).
Двоичный pазpяд, пpинимающий значения 0 или 1.

Блок (block).
Совокупность данных, котоpые вводятся или выводятся за одну
опеpацию ввода-вывода.

Дисплей (display).
Устpойство отобpажения символьной и гpафической инфоpмации.

Интеpфейс (interface).
Аппаpатное сопpяжение двух устpойств, обеспечивающее их
электpическое и логическое согласование.

Интеpфейс паpаллельный (parallel interface).
Сопpяжение ПЭВМ с внешним устpойством, пpи котоpом байт
инфоpмации пеpедается одновpеменно по восьми линиям. Обычно
используется для подключения печатающих устpойств.

Интеpфейс последовательный (serial interface);
Сопpяжение ПЭВМ с внешним устpойством, пpи котоpом
инфоpмация пеpедается побитно. Используется для подключения
мыши, гpафопостpоителя и для межмашинной связи.

Канал (channel).
Устpойство или независимая часть устpойства, используемое
для пеpедачи данных между ЭВМ и пеpифеpией.

Контpоллеp (controller).
Микpопpоцессоpное устpойство, обеспечивающее связь ЭВМ с
пеpифеpийным устpойством.

Накопитель дисковый (disk drive).
Устpойство внешней памяти на магнитных дисках, подключается
к ЭВМ чеpез контpоллеp. Диски ПЭВМ делятся на гибкие (дискеты) и
жесткие (винчестеpские).

Память опеpативная, ОЗУ (random access memory, RAM).
Часть ЭВМ, используемая для хpанения данных в пpоцессе
pаботы ЭВМ. Пpи выключении ЭВМ содеpжимое ОЗУ теpяется.

Память постоянная, ПЗУ (read-only memory, ROM).
Часть ЭВМ, используемая для хpанения неизменяемой инфоp-

— 138 —

мации и доступная только для чтения.

Поpт ввода-вывода (i/o port).
Адpес в пpостpанстве ввода-вывода, обеспечивающий доступ к
связанному с данным поpтом pегистpом внешнего устpойства.

Позиции адаптеpных плат (expansion slots).
Свободные позиции в коpпусе ЭВМ, в котоpые могут быть
вставлены платы контpоллеpов устpойств ввода-вывода.

Пpеpывание (interrupt).
Внешнее событие, вызывающее пpеpывание pаботы ЦП и пеpедачу

упpавления пpогpамме обpаботки данного пpеpывания.

Пpямой доступ в память, ПДП (direct memory access, DMA).
Способ доступа к памяти ЭВМ, пpи котоpом пеpифеpийный
пpоцессоp pаботает с памятью, «воpуя» циклы шины у центpаль-
ного пpоцессоpа.

Регистpы (registers).
Аппаpатные компоненты ЭВМ, пpедназначенные для обpаботки
данных с высокой скоpостью.

Слово (word).
Адpесуемая единица машинной памяти, состоящая из двух
соседних байтов.

Центpальный пpоцессоp, ЦП (central processing unit, CPU).
Основное устpойство ЭВМ, осуществляющее выбоpку,
декодиpование и исполнение команд, а также упpавление
пеpифеpийными устpойствами чеpез системную шину.

DIP-пеpеключатели (DIP-switchs).
Пеpеключатели на контактных колодках плат, позволяющие
изменить конфигуpацию соответствующего устpойства.

— 139 —

E
Пеpечень pекомендуемых матеpиалов цикла
«ПРОГРАММНО-АППАРАТНЫЕ СРЕДСТВА
ПЕРСОНАЛЬНЫХ ЭВМ СЕМЕЙСТВА IBM PC»
F

А1. Микpопpоцессоpы фиpмы Intel.

А3. Базовая система ввода-вывода (BIOS).

Б1. MS-DOS. Спpавочник пользователя.

Б2. MS-DOS. Справочник программиста.

Г2. Макpоассемблеp.

Г6. Сpедства отладки пpогpамм.

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36

Пpогpаммно-технические сpедства пеpсональных ЭВМ семейства IBM PC

КОМПЬЮТЕРНАЯ ЛИТЕРАТУРА

LIB.com.ua [электронная библиотека]: : Пpогpаммно-технические сpедства пеpсональных ЭВМ семейства IBM PC

і26h і 38і L і50h і 80істр. вниз [2]і
і27h і 39і ; : і51h і 81і PgDn [3] і
і28h і 40і ‘ » і52h і 82і Ins [0] і
і29h і 41і ` ~ і53h і 83і Del [.] і
і2Ah і 42і левый Shift і54h і 84і SysReq і
АДДДДБДДДБДДДДДДДДДДДДДБДДДДБДДДБДДДДДДДДДДДДДЩ

— 129 —

EПриложение 2. Типы жестких дисковF

В этом приложении приведена информация о жестких дисках,
поддерживаемых BIOS IBM PC AT в порядке их номеров, присваи-
ваемых в CMOS. Для каждого диска приводится количество
цилиндров, количество головок, предкомпенсация записи, область
парковки, количество секторов на цилиндре и объем диска в Мб.

ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
Номер Кол-во Кол-во Предкомп. Область Кол-во Объем
типа цилиндров головок записи парковки секторов диска, Мб
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
1 306 4 128 305 17 10,1
2 615 4 300 615 17 20,4
3 615 6 300 615 17 30,6
4 940 8 512 940 17 62,4
5 940 6 512 940 17 46,8
6 615 4 нет 615 17 20,4
7 462 8 256 511 17 30,6
8 733 5 нет 733 17 30,4
9 900 15 нет 901 17 112,0
10 820 3 нет 820 17 20,4
11 855 5 нет 855 17 35,4
12 855 7 нет 855 17 49,6
13 306 8 128 319 17 20,3
14 733 7 нет 733 17 42,5
15 Заpезеpвиpован — см. 13.2
16 612 4 все 663 17 20,3
17 977 5 300 977 17 40,5
18 977 7 нет 977 17 56,7
19 1024 7 512 1023 17 59,5
20 733 5 300 732 17 30,4
21 733 7 300 732 17 42,5
22 733 5 300 733 17 30,4
23 306 4 все 336 17 10,1
24 615 4 300 615 26 31,2
25 615 4 все 615 17 20,4
26 1024 4 нет 1023 17 34,0
27 1024 5 нет 1023 17 42,5
28 1024 8 нет 1023 17 68,0
29 512 8 256 512 17 34,0
30 1024 5 512 1024 26 65,0
31 989 5 все 989 17 41,0
32 1020 15 нет 1024 17 127,0
33 ? ? ? ? ? ?
34 ? ? ? ? ? ?
35 1024 9 1024 1024 17 76,5
36 1024 5 512 1024 17 42,5
37 830 10 нет 830 17 68,8
38 823 10 256 824 17 68,3
39 615 4 128 664 17 20,4
40 615 8 128 664 17 40,8
41 917 15 нет 918 17 114,1
42 1023 15 нет 1024 17 127,3
43 823 10 512 823 17 68,3

— 130 —

44 820 6 нет 820 17 40,8
45 1024 8 нет 1024 17 68,0
46 925 9 нет 925 17 69,1
47 699 7 256 700 17 40,6
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД

Примечания.
1. Тип 1 — это жесткий диск первых PC XT, тип 2 —
стандартный жесткий диск первых PC AT.

2. Типы 33 — 47 не являются стандартными и не поддержива-
ются ПЭВМ фирмы IBM.

— 131 —

EПриложение 3. Подготовка ПЭВМ к работеF

В этом приложении описана установка DIP-переключателей на
системной плате ПЭВМ и адаптере EGA-дисплеев. Обычно ЭВМ
поступает заказчику уже с установленной конфигурацией, но при
изменении оборудования (например, при установке большей памяти
или дополнительных дисководов) может потребоваться изменение
переключателей.

Приведенное здесь описание относится к ПЭВМ фирмы IBM;
компьютеры других фирм могут иметь другие стандарты. Например,
переключатели Compaq Portable имеют другой смысл и нигде не
описаны. Переключатели Deskpro подписаны внутри корпуса ЭВМ.

Переключатели IBM PC
ДДДДДДДДДДДДДДДДДДДД

Первоначальная модель IBM PC, имевшая 64К ОЗУ на системной
плате (далее назывемая PC-1), настраивается двумя колодками
переключателей, помеченными SW1 и SW2.

SW1
ON Ц1В2В3В4В5В6В7В8·
є і і і і є
УТБТБДБДБДБДБДБДЅ
є є ИЛј ИЛј ИНКН 7-8: количество НГМД
є є є ИНННННН 5-6: активный дисплей
є є ИНННННННННН 3-4: pазмеp ОЗУ на системной плате
є ИННННННННННННН 2: наличие сопpоцессоpа 8087
ИННННННННННННННН 1: наличие НГМД

SW2 (PC-1)

ON Ц1В2В3В4В5В6В7В8·
є іЬіЬіЬіЬє
УДБДБДБДБДБДБДБДЅ
ИННЛННј ИНННННКН 5-8: всегда OFF
ИНННННННННННН 1-4: полный pазмеp ОЗУ

Более поздняя веpсия IBM PC (называемая здесь PC-2)
интеpпpетиpует пеpеключатели несколько иначе. Точнее говоpя, SW1
имеет то же назначение, а SW2 показано ниже:

SW 2 (PC-2)
ON Ц1В2В3В4В5В6В7В8·
є іЬіЬіЬє
УДБДБДБДБДБДБДБДЅ
ИНННЛНННј ИНННКН 6-8: всегда OFF
ИННННННННННН 1-5: полный pазмеp ОЗУ

Опишем подpобно назначение пеpеключателей.

— 132 —

Количество накопителей на гибких дисках (НГМД):
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД

SW1
ON Ц1В2В3В4В5В6В7В8· ON Ц1В2В3В4В5В6В7В8·
єЬі і і і і іЯіЯє 1 НГМД єЬі і і і і іЯіЬє 3 НГМД
УДБДБДБДБДБДБДБДЅ УДБДБДБДБДБДБДБДЅ
ON Ц1В2В3В4В5В6В7В8· ON Ц1В2В3В4В5В6В7В8·
єЬі і і і і іЬіЯє 2 НГМД єЬі і і і і іЬіЬє 4 НГМД
УДБДБДБДБДБДБДБДЅ УДБДБДБДБДБДБДБДЅ

Примечание. Ключ 1 в позиции ON означает отсутствие НГМД.

Активный дисплей:
ДДДДДДДДДДДДДДДДД

SW1
ON Ц1В2В3В4В5В6В7В8·
є і і і іЯіЯі і є Нет или EGA
УДБДБДБДБДБДБДБДЅ
ON Ц1В2В3В4В5В6В7В8·
є і і і іЬіЯі і є 40×25 CGA
УДБДБДБДБДБДБДБДЅ
ON Ц1В2В3В4В5В6В7В8·
є і і і іЯіЬі і є 80×25 CGA
УДБДБДБДБДБДБДБДЅ
ON Ц1В2В3В4В5В6В7В8·
є і і і іЬіЬі і є Монохромный адаптер (MDA) либо и MDA, и CGA
УДБДБДБДБДБДБДБДЅ

Наличие сопроцессора 8087:
ДДДДДДДДДДДДДДДДДДДДДДДДД

SW1
ON Ц1В2В3В4В5В6В7В8· ON Ц1В2В3В4В5В6В7В8·
є іЬі і і і і і є есть 8087 є іЯі і і і і і є нет 8087
УДБДБДБДБДБДБДБДЅ УДБДБДБДБДБДБДБДЅ

Размер ОЗУ на системной плате:
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД

SW1
ON Ц1В2В3В4В5В6В7В8·
є і іЬіЬі і і і є 64K или больше
УДБДБДБДБДБДБДБДЅ

Полный размер ОЗУ (SW2 для PC-1):
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД

Для PC-1 ключи 5 — 8 всегда в положении OFF. Максимальный
размер ОЗУ — 544К.

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36

Пpогpаммно-технические сpедства пеpсональных ЭВМ семейства IBM PC

КОМПЬЮТЕРНАЯ ЛИТЕРАТУРА

LIB.com.ua [электронная библиотека]: : Пpогpаммно-технические сpедства пеpсональных ЭВМ семейства IBM PC

3. Режим передачи по требованию (Demand Transfer Mode).
Данный режим является промежуточным между двумя первыми:
передача идет непрерывно до тех пор, пока активен сигнал

— 9 —

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

4. Каскадный режим (Cascade Mode). Режим позволяет включить
в подсистему ПДП более одного контроллера в тех случаях, когда
недостаточно четырех каналов ПДП. В этом режиме один из каналов
ведущего контроллера используется для каскадирования с
контроллером второго уровня. Для работы в каскаде сигнал HRQ
(«Запрос на захват») ведомого контроллера подается на вход DREG
(«Запрос на канал ПДП») ведущего, а сигнал DACK («Подтверждение
запроса») ведущего подается на вход HDLA («Потверждение
захвата») ведомого.

Такая схема подключения аналогична подключению ведущего
(первого) контроллера к микропроцессору, с которым он
обменивается сигналами HRQ и HDLA.

— 10 —

E2.2. Типы передачF

1. Передача память-память (Memory-to-memory DMA).
Используется для передачи блока данных из одного места
памяти в другое. Исходный адрес определяется в регистрах
нулевого канала, выходной — в регистрах первого канала. Число
циклов обмена (число байт минус 1) задается в регистре числа
циклов канала 1. Передача происходит с использованием рабочего
регистра контроллера в качестве промежуточного звена для
хранения информации. При передачe память-память может быть задан
специальный режим фиксации адреса (Address hold), при котором
значение текущего адреса в регистре нулевого канала не
изменяется, при этом весь выходной блок памяти заполняется одним
и тем же элементом данных, находящимся по заданному адресу.

2. Автоинициализация (автозагрузка, Autoinitialization).
После завершения обычной передачи использованный канал ПДП
маскируется и должен быть перепрограммирован для дальнейшей
работы с ним. При автоинициализации маскировка канала после
окончания передачи не происходит, а регистры текущего адреса и
счетчик циклов автоматически загружаются из соответствующих
регистров с начальными значениями. Таким образом для продолжения
(повторения) обмена достаточно выставить сигнал запроса на ПДП
по данному каналу.

3. Режим фиксированных приоритетов.
В этом режиме канал 0 всегда имеет максимальный приоритет,
а канал 3 — минимальный. Это означает, что любая передача по
каналу с более высоким приоритетом будет выполняться раньше, чем
по каналу с более низким приоритетом.

4. Циклический сдвиг приоритетов.
Позволяет избежать «забивания» шины одним каналом при
одновременной передачe по нескольким каналам. Каждому каналу, по
которому прошла передача, автоматически присваивается низший
приоритет, после чего право на передачу получает канал с
наивысшим приоритетом, для которого передача в данный момент
возможна. Таким образом, если в начале работы распределение
приоритетов было обычным (канал 0 — наивысший), и пришли сигналы
запроса на ПДП по 1-му и 2-му каналам, то сначала будет
выполняться передача по первому каналу, затем он получит низший
приоритет (а канал 2, соответственно, высший, т. к. сдвиг
приоритетов циклический) и передача выполнится по 2-му каналу,
который затем получит низший приоритет, а высший приоритет
получит, сответственно, канал 3, который и будет обладать
преимущественным правом на передачу.

5. Сжатие времени передачи (Compressed transfer timing).
В случае, если временные характеристики быстродействия
обменивающихся устройств совпадают, ПДП может сократить время
выполнения каждого такта передачи на 2 цикла часов за счет
тактов ожидания, входящих в каждый цикл передачи.

— 11 —

E2.3. Описание внутренних регистров ПДПF

Контроллер имеет 344 бита внутренней памяти, организованной
в виде регистров. Описание внутренних регистров ПДП приведено в
таблице.

ЪДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДВДДДДДДДДДДДДДДВДДДДДДДДДДДї
і Наименование і Разрядность і Число і
і регистра і (бит) і регистров і
ГДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЕДДДДДДДДДДДДДДЕДДДДДДДДДДДґ
і Регистр начального адреса і 16 і 4 і
і (Base Address Register) і і і
і і і і
і Регистр начального счетчика циклові 16 і 4 і
і (Base Word Count Register) і і і
і і і і
і Регистр текущего адреса і 16 і 4 і
і (Current Address Register) і і і
і і і і
і Регистр текущего счетчика циклов і 16 і 4 і
і (Current Word Count Register) і і і
і і і і
і Рабочий регистр адреса і 16 і 1 і
і (Temporary Address Register) і і і
і і і і
і Рабочий регистр счетчика циклов і 16 і 1 і
і (Temporary Word Count Register) і і і
і і і і
і Регистр состояния і 8 і 1 і
і (Status Register) і і і
і і і і
і Регистр команд і 8 і 1 і
і (Command Register) і і і
і і і і
і Регистр режима (Mode Register) і 6 і 4 і
і і і і
і Рабочий регистр і 8 і 1 і
і (Temporary Register) і і і
і і і і
і Регистр масок (Mask Register) і 4 і 1 і
і і і і
і Регистр запросов і 4 і 1 і
і (Request Register) і і і
АДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДБДДДДДДДДДДДДДДБДДДДДДДДДДДЩ

Регистр начального адреса (Base Address Register).
В этом регистре задается стартовый адрес ОЗУ, с которого
начинается передача. Регистр содержит 16 разрядов и определяет
адрес внутри заданной страницы памяти размером 64К. Задание
номера страницы памяти осуществляется через специальные
страничные регистры (Page Registers), поддерживаемые внешней
логикой. Каждый канал ПДП имеет свой регистр начального адреса и
страничный регистр. Такое деление памяти на страницы не
позволяет осуществить обмен с блоком памяти, находящимся на
пересечении двух страниц. Каждая страница начинается с

— 12 —

сегментного адреса, кратного 1000h (0, 1000h, 2000h, …,
9000h).

Регистр начального счетчика циклов (Base Word Count
Register).
В этом регистре задается начальное число циклов передачи
для программируемого канала. Фактическое число передаваемых во
время работы ПДП элементов данных на единицу превышает заданное
число циклов, т. е. если Вы задаете 100 циклов передачи, а
размер элемента будет равен 1 байту, то за сеанс обмена будет
передан 101 байт информации.

Регистр текущего адреса (Current Address Register).
Начальное значение заносится в этот регистр одновременно с
регистром начального адреса. В дальнейшем в ходе передачи
значение текущего адреса автоматически увеличивается или
уменьшается (конкретное направление изменения задается при
программировании в регистре режима). Если разрешена автоини-
циализация, то после окончания передачи в регистр автоматически
устанавливается значение из регистра начального адреса.

Регистр текущего счетчика циклов (Current Word Count
Register).
Регистр содержит текущее значение счетчика циклов (число
оставшихся циклов передачи). Отображаемое в нем число циклов
всегда на единицу меньше числа еще не переданных элементов
данных, так как изменение значения в этом регистре проиводится в
конце цикла передачи, уже после фактической передачи элемента
данных, а конец передачи фиксируется в момент переполнения
счетчика (изменение его значения с 0 на 0FFFFh).

Регистр режима (Mode Register).
Данный регистр задает режимы работы своего канала
контроллера.

7 6 5 4 3 2 1 0
ЪДВДВДДВДДВДДВДДВДДВДДї
іXіXі і і і і Биты:
АДБДБДДЕДДБВДБВДБДДВДДЩ ДДДДД
і і і АДДДД> 0-1: Режим работы: 00=проверка,
і і і 01=запись (в память),
і і і 10=чтение (из памяти),
і і і 11=недопустимая комбинация
і і АДДДДДДДДД> 2: Автоинициализация: 1=разрешена,
і і 0=запрещена
і АДДДДДДДДДДДД> 3: Изменение текущего адреса при
і обмене: 0=увеличение, 1=уменьшение
АДДДДДДДДДДДДДДДД> 4-5: Тип передачи:

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36

Пpогpаммно-технические сpедства пеpсональных ЭВМ семейства IBM PC

КОМПЬЮТЕРНАЯ ЛИТЕРАТУРА

LIB.com.ua [электронная библиотека]: : Пpогpаммно-технические сpедства пеpсональных ЭВМ семейства IBM PC

mov bl,7
sub bl,cl
mov cl,bl ; CL = номер бита в байте
xor bl,bl ; накопитель цвета
mov ah,3 ; счетчик битовых плоскостей
mov al,4 ; R4 = регистр выбора плоскости
mov dx,3CEh ; графический контроллер
Read_Plane:
out dx,ax ; выбираем плоскость AH
mov bh,es:[di] ; читать байт
and bh,ch ; выбрать бит
shr bh,cl ; сдвинуть цвет в бит 0
shl bl,1 ; сдвинуть выбранные цвета
or bl,bh ; и добавить считанный
dec ah ; следующая плоскость
jge Read_Plane ; повторить для всех плоскостей
mov al,bl
xor ah,ah ; AX = цвет пикселя
pop es
pop dx
pop cx
pop bx
pop ax
ret
Get_Pixel endp

— 71 —

E7.7. Графический видеомассив VGAF

Адаптер VGA (Video Graphics Array) представляет собой даль-
нейшее развитие EGA. В основном он полностью совместим с
адаптером EGA, поэтому мы приведем только его основные отличия.

1. Если EGA-дисплеи имеют цифровой вход, то VGA — это
дисплей с аналоговым входом. Поэтому при формировании цвета
пикселя из битовых плоскостей цвет слагается из трех основных
цветов (красного, зеленого и синего), интенсивность каждого из
которых может плавно варьироваться от нуля до максимального
значения.

2. VGA имеет большее разрешение, чем EGA, и предоставляет
пользователю три дополнительных режима:

640 x 480, 2 цвета
640 x 480, 16 цветов
320 x 200, 256 цветов

В режимах 640 х 480 имеется одна графическая страница
размером 153600 байт. В режиме 320 х 200 с 256 цветами
используется несколько иной метод формирования цвета пикселя,
чем в других режимах; за счет этого видеопамять разбивается на 4
страницы размером по 16К. Этот режим возможен только на
аналоговых дисплеях или дисплеях с переменной частотой.

3. Частота генератора пикселей VGA принимает значения 25
или 28 Мгц (в отличие от 14 и 16 Мгц у EGA).

4. VGA имеет дополнительный порт ввода 3CCh, позволяющий
считать содержимое многоцелевого регистра (см. описание порта
3C2h в п. 7.6). Графические позиции 3CAh и 3CCh, имеющиеся в
EGA, у VGA отсутствуют.

— 72 —

E8. Контроллер накопителей на гибких дискахF

E8.1. Основные сведения о контроллереF

Управление гибкими дисками в PC-подобных ПЭВМ
осуществляется микросхемой 8272А фирмы Intel, выполняющей
функции контроллера гибких дисков (Floppy Disk Controller, FDC).
Информация на дискете хранится на дорожках, дорожки разбиты на
сектора. В зависимости от типа дисковода число дорожек на одной
стороне дискеты может быть равно 40 или 80, число секторов на
дорожке колеблется от 8 до 26. Кроме того существуют дисководы,
имеющие одну головку чтения/записи (при этом вторая сторона
дискеты не используется). Контроллер управляет дисководами для
дискет диаметром 8, 5.25 и 3.5 дюйма, поддерживает запись на
дискету методами ЧМ и МЧМ, программируемую длину секторов (128,
256, 512 или 1024 байта), мультисекторные и мультидорожечные
операции обмена с дисками, операции поиска. Одновременно к
одному контроллеру может быть подключено до четырех дисководов
любого из поддерживаемых типов. Обмен с диском может
осуществляться как с использованием ПДП, так и без него. В
последнем случае используются 2 метода: опрос состояния
контроллера через регистры или использование аппаратных
прерывания контроллера. FDC генерирует аппаратные прерывания
уровня 6 (IRQ6), связанные с вектором прерываний 0Eh. Управление
контроллером и накопителями осуществляется через 3 порта

ввода-вывода.

— 73 —

E8.2. Порты контроллера накопителей на гибких дискахF

Материалы данного и следующего разделов полностью описывают
возможности контроллера 8272А, система команд которого является
базовой для всех более поздних моделей. Дополнительные
возможности контроллера 82072 не описаны, т. к. этот контроллер
полностью поддерживает описываемую систему команд, а его
неописанные функции практически не используются в стандартных
средствах.

Назначение портов ввода-вывода контроллера гибких дисков
приведено в таблице.

ЪДДДДДДВДДДДДДДДВДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДї
і Порт і Режим і Назначение і
ГДДДДДДЕДДДДДДДДЕДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДґ
і і і і
і 3F2h і запись і Передача команд по управлению режимом работыі
і і і контроллера и накопителей і
і і і і
і 3F4h і чтение і Чтение регистра состояния контроллера і
і і і і
і 3F5h і запись і Передача команд по управлению накопителями і
і і і і
і 3F5h і чтение і Чтение данных с диска в режиме работы і
і і і без ПДП і
і і і і
і 3F5h і запись і Запись данных на диск в режиме работы і
і і і без ПДП і
і і і і
і 3F5h і чтение і Чтение результатов выполнения команды во і
і і і всех режимах і
АДДДДДДБДДДДДДДДБДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ

Порт 3F2h.

7 6 5 4 3 2 1 0
ЪДДДВДДДВДДДВДДДВДДДВДДДВДДДВДДДї
і і і і і Биты:
АДВДБДВДБДВДБДВДБДВДБДВДБДВДБДВДЩ ДДДДД
і і і і і і АДДДБД> 0-1: выбор накопителя:
і і і і і і 00-первый
і і і і і і 01-второй
і і і і і і 10-третий
і і і і і і 11-четвертый
і і і і і АДДДДДДДДД> 2: 0=сброс контроллера,
і і і і і 1=разблокировать контроллер
і і і і АДДДДДДДДДДДДД> 3: 1=разрешить работу с ПДП и
і і і і прерывания контроллера
АДДДБДДДБДДДБДДДДДДДДДДДДДДДДД> 4-7: включить мотор:
0001 — первый накопитель
0010 — второй
0100 — третий
1000 — четвертый

— 74 —

На АТ-подобных ПЭВМ обычно допускается не 4, а только 2
накопителя, вследствии чего комбинации, использующие третий и
четвертый накопители, игнорируются. Бит 2, равный 0, прекращает
выполнение текущей команды в момент вывода в порт. Если команда
не завершилась, ее выполнение прерывается. Если не были считаны
результаты выполнения команды, они пропадают. Если не закончился
ввод команды, он пропадает и должен быть начат заново. В любом
случае продолжение работы возможно только после установки этого
бита обратно в 1.

Порт 3F4h.
Через этот порт осуществляется чтение регистра основного
состояния FDC.

7 6 5 4 3 2 1 0
ЪДДДВДДДВДДДВДДДВДДДВДДДВДДДВДДДї
і і і і і і і і і Биты:
АДВДБДВДБДВДБДВДБДВДБДВДБДВДБДВДЩ ДДДДД
і і і і АДДДБДДДБДДДБД> 0-3: накопитель занят в режиме
і і і і поиска:
і і і і 0001-первый, 0010-второй
і і і і 0100-третий, 1000-четвертый
і і і АДДДДДДДДДДДДДДДДД> 4: 0=контроллер свободен,
і і і 1=контроллер занят выполне-
і і і нием команды чтения или
і і і записи
і і АДДДДДДДДДДДДДДДДДДДДД> 5: режим работы контроллера:
і і 0=с использованием ПДП,
і і 1=без ПДП
і АДДДДДДДДДДДДДДДДДДДДДДДДД> 6: направление обмена:
і 0=процессор —> контроллер
і 1=контроллер —> процессор
АДДДДДДДДДДДДДДДДДДДДДДДДДДДДД> 7: готовность к обмену:
0=не готов, 1=готов

Бит 7, равный 1, говорит о том, что контроллер при вводе

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36

Пpогpаммно-технические сpедства пеpсональных ЭВМ семейства IBM PC

КОМПЬЮТЕРНАЯ ЛИТЕРАТУРА

LIB.com.ua [электронная библиотека]: : Пpогpаммно-технические сpедства пеpсональных ЭВМ семейства IBM PC

00=Режим передачи по требованию,
01=Режим одиночной передачи,
10=Режим блочной передачи,
11=Каскадный режим.

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

— 13 —

общих для всех каналов.

Регистр команд (Command Register).
Этот 8-битный регистр управляет работой контроллера. Он
программируется, когда контроллер находится в состоянии
программирования и очищается командами сброса «Reset» и «Master
Clear». Назначение битов регистра команд приведено на рисунке.

7 6 5 4 3 2 1 0
ЪДДВДДВДДВДДВДДВДДВДДВДДї
і і і і і і і і і Бит:
АВДБВДБВДБВДБВДБВДБВДБВДЩ ДДД
і і і і і і і АД> 0: 0=запретить передачу память-память,
і і і і і і і 1=разрешить
і і і і і і АДДДД> 1: 0=запретить фиксацию адреса в канале
і і і і і і 0, 1=разрешить
і і і і і АДДДДДДД> 2: 0=разблокировать, 1=заблокировать
і і і і і контроллер
і і і і АДДДДДДДДДД> 3: 0=нормальная временная диаграмма,
і і і і 1=сжатие времени передачи; если бит
і і і і 0 установлен, то игнорируется
і і і АДДДДДДДДДДДДД> 4: 0=режим фиксированных приоритетов,
і і і 1=режим циклического сдвига
і і і приоритетов
і і АДДДДДДДДДДДДДДДД> 5: 1=Режим расширенной записи,
і і 0=задержки при записи; если бит 3
і і установлен, то игнорируется
і АДДДДДДДДДДДДДДДДДДД> 6: 0=активным считается высокий уровень
і сигнала запроса (DREQ), 1=низкий
АДДДДДДДДДДДДДДДДДДДДДД> 7: активным считается высокий уровень
сигнала подтверждения запроса на
ПДП (DACK), 1=низкий

Регистр состояния (Status Register).
Регистр отражает текущее состояние запросов и передач по
всем четырем каналам. Биты 0 — 3 устанавливаются в единицу после
завершения передачи по каналам 0 — 3 (бит 0 — канал 0, бит 1 —
канал 1 и т.д.), если не задан режим автоинициализации. Эти биты
очищаются после команды сброса контроллера и после каждой
операции считывания состояния из регистра состояния. Биты 4 — 7
указывают по какому из каналов 0 — 3 активен в текущий момент
сигнал запроса на ПДП.

Регистр масок (Mask Register).
Каждый бит этого 4-битового регистра маскирует/демаскирует
свой канал ПДП, при этом значение 1 маскирует канал, значение 0
демаскирует канал и разрешает прием сигнала запроса по этому
каналу.

Регистр запросов (Request Register).
Сигнал запроса на ПДП (DREQ) может быть издан как
обслуживаемым устройством, так и программно. Для программного
издания сигнала запроса по одному из 4-х каналов ПДП необходимо
установить соответствующий бит в 4-разрядном регистре запросов.
Запрос на ПДП может быть отменен записью нулевого значения в

— 14 —

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

Рабочий регистр (Temporary Register).
Этот 8-разрядный регистр используется для хранения
элемента данных, передаваемого в режиме фиксированного адреса
при передаче память-память или для временного хранения
передаваемого байта при всех остальных режимах передачи.

— 15 —

E2.4. Программное управление контроллером ПДПF

Программное управление контроллером ПДП осуществляется
через порты ввода-вывода. Доступ к каждому регистру контроллера
может быть осуществлен через свои порты ввода-вывода. В разделах
2.4.1 и 2.4.2 описывается программное управление контроллерами
на XT- и АТ-подобных ПЭВМ соответственно.

E2.4.1. Организация и управление ПДП на XT-подобных ПЭВМF

IBM PC XT и XT-совместимые ПЭВМ имеют один 4-канальный
контроллер ПДП 8237А. Назначение каналов следующее:

0 — обмен память-память;
1 — свободен (может использоваться сетевыми адаптерами);
2 — обмен с контроллером гибких дисков;
3 — обмен с контроллером жестких дисков.

В таблице приведено описание портов ввода-вывода,
предназначенных для управления контроллером ПДП.

ЪДДДДДДВДДДДДДДДВДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДї
і Порт і Режим і Назначение і
ГДДДДДДЕДДДДДДДДЕДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДґ
і 0h і запись і Запись начального адреса в регистр начально-і
і і і го адреса и регистр текущего адреса канала 0і
і і і і
і 2h і запись і то же для канала 1 і
і і і і
і 4h і запись і то же для канала 2 і
і і і і
і 6h і запись і то же для канала 3 і
і і і і
і 0h і чтение і Чтение начального адреса из регистра началь-і
і і і ного адреса канала 0 і
і і і і
і 2h і чтение і то же для канала 1 і
і і і і
і 4h і чтение і то же для канала 2 і
і і і і
і 6h і чтение і то же для канала 3 і
і і і і
і 1h і запись і Запись в регистр начального счетчика циклов і
і і іи в регистр текущего счетчика циклов канала 0і
і і і і
і 3h і запись і то же для канала 1 і
і і і і
і 5h і запись і то же для канала 2 і
і і і і
і 7h і запись і то же для канала 3 і
АДДДДДДБДДДДДДДДБДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ

— 16 —

ЪДДДДДДВДДДДДДДДВДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДї
і Порт і Режим і Назначение і
ГДДДДДДЕДДДДДДДДЕДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДґ
і і і і
і 1h і чтение і Чтение текущего значения из регистра теку- і
і і і щего счетчика циклов канала 0 і
і і і і
і 3h і чтение і то же для канала 1 і
і і і і
і 5h і чтение і то же для канала 2 і
і і і і
і 7h і чтение і то же для канала 3 і
і і і і
і 8h і запись і Запись регистра команд ПДП і
і і і і
і 8h і чтение і Чтение регистра состояния ПДП і
і і і і
і 9h і запись і Запись в регистр запросов ПДП і
і і і і
і 0Ah і запись і Запись бита маски для одного из каналов ПДП і
і і і і
і 0Bh і запись і Запись регистра режимов для одного из і
і і і каналов ПДП і
і і і і
і 0Ch і запись і Очистка (сброс) триггера-защелки (триггера і
і і і первого/последнего) і
і і і і
і 0Dh і запись і Программный сброс контроллера і
і і і і
і 0Eh і запись і Очистка битов масок всех 4-х каналов і
і і і і
і 0Fh і запись і Запись регистра масок для всех 4-х каналов і
і і і і
і 0Dh і і і
і или і чтение і Чтение рабочего регистра ПДП і
і 0Fh і і і
ГДДДДДДЕДДДДДДДДЕДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДґ
і 81h і запись і Задание номера страницы для канала 2 і
і і і і
і 82h і запись і то же для канала 3 і
і і і і
і 83h і запись і то же для канала 1 і
і і і і
і 87h і запись і то же для канала 0 і
АДДДДДДБДДДДДДДДБДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ

Порты 0h — 7h предназначены для записи исходных значений в
регистры начального и текущего адреса, начального и текущего
счетчика циклов для всех 4-х каналов. Так как порты
восьмиразрядные, а регистры, в которые через них заносятся
данные, 16-разрядные, то запись производится в два приема. Перед
первой командой вывода в требуемый порт необходимо сбросить
триггер-защелку, для чего выполняется команда вывода
произвольного значения в порт 0Ch, после чего в требуемый порт

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36