Доставка цветов в Севастополе: SevCvety.ru
Главная -> Появление первого микропроцессора

0 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 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 [89] 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116

F514 0Е06 F516 CDIi9F4 F519 DAEDF4

F51C 3A56F5 FCIF CDA1F4 F522 I)AEDF4

F525 3A55F5 F528 CDA1F4 F52B D2EDF4 F52E C3E4F4

F531 0E04 F533 C316F5

bbcek:

; годгрогрАтА чтения сектора с диска в ЕУФЕР НАКОГИТЕЛЯ.

j ВХОДНЫЕ ЛАРАКЕТРЫ: ncek - нонер СЕКТОРА, ндор - нонер S ДОРОЖКИ.

; выходной ПАРАМЕТР! (а) - статус за1сршения.

J ВЫДАЧА КОЛА КОКАНДЫ

mui С,6 S (О-КОД КОМАНДЫ ЧТЕНИЯ СЕКТОРА перз: call ВЫКОМ

jc гер2

; ВЫДАЧА НОМЕРА СЕКТОРА

lda ncek

call ВЫБ

jc пер2

5 ВЫДАЧА НОМЕРА ДОРОЖКИ

lda мдор

call вне

jnc tiep2

jmp пров

ВЫСЕК:

i ПОЛПРОГРАНМА ЗАПИСИ СЕКТОРА ДИСКА ИЗ БУФЕРА НАКОПИТЕЛЯ ; ВХОДНЫЕ ПАРАМЕТРЫ: ncek - НОНЕР СЕКТОРА, МЛОР - НОМЕР

; ДОРОЖКИ.

; выходной САРАНЕТР: fA) - статус ЗАВЕГ-1вв4ия.

f ВЫДАЧА КОДА КОМАНДЫ

hvi с,4 ? (с)-КОД КОМАНДЫ ЗАПИСИ СЕКТОРА jmp пёрз

5 ЕСЛИ "ЗАГСРШЕНО"

ЕСЛИ "ЗАВЕРиЕНО"

t ЕСЛИ НЕТ "ЗАВЕРШЕНО"

Программа ВВБУФ реализует чтение 128 байт из буфера НГМД в область памяти, адрес которой записан в ячейке АБУФ. Вначале подпрограммой ВЫКОМ выводится байт с кодом команды «Чтение буфера», а затем следует цикл приема 127 байт информации. На каждой итерации цикла посредством обращения к подпрограмме ВВБ вводится из НГМД один байт и записывается в память. Для адресации очередного байта используется указатель в регистровой паре (Н, L). Контроль окончания цикла производится с помощью счетчика, который располагается в регистре (В) и декрементируется на каждой итерации. После каждого вызова программы ВВБ проверяется отсутствие сигнала «Завершено». Последний, 128-й, байт вводится вне цикла, так как после него проверяется наличие сигнала «Завершено». Отрицательный статус завершения операции устанавливается в трех случаях: 1) сигнал «Завершено» появляется в процессе вьшолнения команды; 2) сигнал «Завершено» отсутствует после вьшолнения команды; 3) появляется сигнал «Ошибка».

Структура программы ВЫБУФ, выполняющей запись



128 байт информации из памяти МП системы в буфер НГМД, аналогична структуре программы ВВБУФ. Отличие лишь в том, что в первом фрагменте выводится код команды «Запись буфера» и для вывода информации используется программа ВЫБ. Программа ВВСЕК обеспечивает чтение информации из сектора на диске во внутренний буфер НГМД: в накопитель последовательно выводятся код команды «Чтение сектора» и содержимое ячеек NCEK и ЫДОР, в которых записаны номера соответственно сектора и дорожки. Отрицательный статус завершения операции устанавливается при наличии сигнала «Завершено» во время вьшолнения команды или его отсутствии в момент завершения команды. Запись информации из буфера НГМД в сектор на диске выполняет программа ВЫСЕК. Она отличается от программы ВВСЕК только одной командой, которая определяет код команды накопителя. Поэтому после загрузки кода команды в регистр (С) управление передается соответствующему фрагменту программы ВВСЕК.

Программы 3-го уровня драйвера обеспечивают с помощью программ 2-го уровня передачу информации из памяти МП системы в заданный сектор на диске и обратно. Внешние программы, которым необходимо осуществить операцию обмена с накопителем, должны записать в ячейки памяти ЫУСТ, ЫДОР и NCEK соответственно номера нужных устойства, дорожки и сектора и вызвать необходимую подпрограмму 3-го уровня:

f536 1620

f538 c014f5

f53b ccmf4 f53e с8

f53f 15 f540 c23sf5

f543 в7 f544 с9

вблск:

; тгадпрогрАММА чтения сектора с диска в память.

} входные параметры: нсек - номер сектора» ыпор - номер

j дорожки, аеуф - адрес еуфера, нуст - номер .дискового ; устройства.

5 выходной параметр: (а) - статус завершения. ;кххк«хкхх«хкхххккхкхх«кхкхк««хкхкххкххх««ххкххк5!хх»хмкх

mi с»32 : установка СЧЕТЧИКА повторении ; чтение сектора в буфер накопителя 11икл5: call ввсек

чтение еуфера накопителя в память cz ввбуф

повторная попытка

dcr в

jhz 11икл5 аварийный возврат

ora а

если успешно

если не все попытки выполнены



F545 1620

F547 CDF1F4

F54A CC31F5 F54D СЗ

F54E 15 F54F C247F5

F552 В7 F553 С9

F554 F5S5 F556 F557

i ПОДПРОГРАКНА ЗАПИСИ СЕКТОРА ИЗ ПАМЯТИ НА ДИСК. i ВХОДНЫЕ ПАРАМЕТРЫ: ГСЕК - НОМЕР СЕКТОРА. ЫДОР - НОМЕР ! ПОРОЖКИ, АВУФ - АДРЕС БУФЕРА, МУСТ - НОМЕР ДИСКОВОГО S УСТРОЙСТВА.

; ВЫХОДНОЙ ПАРАМЕТР: (А) - СТАТУС ЗАВЕРШЕНИЯ.

HVI В.32 ! УСТАНОВКА СЧЕТЧИКА ПОВТОРЕНИИ

i ЗАПИСЬ В БУФЕР НАКОПИТЕЛЯ ИЗ ПАМЯТИ «ИКЛ6: CALL ВЫБУФ ; ЗАПИСЬ СЕКТОРА ИЗ ЕУФЕРА НАКОПИТЕЛЯ

CZ ВЫСЕК

RZ ; ЕСЛИ УСПЕШНО

t ПОВТОРНАЯ ПОПЫТКА DCR В

JHZ «ИКЛ6 5 ЕСЛИ НЕ ВСЕ ПОПЫТКИ ВЫПОЛНЕНЫ ; АВАРИЙНЫЙ ВОЗВРАТ ORA А RET

! РАБОЧИЕ ЯЧЕЙКИ ПАМЯТИ.

ЫУСТ: BS 1 J НОМЕР УСТРОЙСТВА

НДОР: DS 1 ; НОМЕР ДОРОЖКИ

ГСЕК: DS 1 f НОМЕР СЕКТОРА

АБУФ: DS 2 S АДРЕС БУФЕРА

В программе ВВДСК, которая выполняет чтение содержимого сектора в память, сначала с помош,ыо подпрограммы ВВСЕК информация из сектора считывается в буфер накопителя, а затем посредством подпрограммы ВВБУФ - в память МП системы. Если хотя бы одна из этих подпрограмм возвращает в вызывающую программу отрицательный статус своего завершения, описанная процедура повторяется до 32 раз. Если все попытки оказываются неудачными, программа ВВДСК устанавливает отрицательный статус своего завершения. Запись информации из памяти МП системы в сектор на диске реализует подпрограмма ВЫДСК. В этой программе с помощью подпрограмм ВЫБУФ и ВЫСЕК информация записывается сначала в буфер накопителя, а затем на диск. Так же как и в программе ВВДСК, предусмотрен 32-кратный повтор в случае получения От вызываемых подпрограмм отрицательного статуса их завершения.

6.6. системный монитор

6.6.1. ФУНКЦИИ и СТРУКТУРА

Системное программное обеспечение не только организует управление вводом-выводом, но также должно



0 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 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 [89] 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116



0.0139
Яндекс.Метрика