Ремонт принтеров, сканнеров, факсов и остальной офисной техники


назад Оглавление вперед




[40]

X = N х 16 или N x ft 10. Программа имеет вид: LDY Д 00

LDA Д С08Е.Х ; включить режим чтения READ: LDA Д С08С,Х ; считать байт BRL READ; если D7 * 1

STATABL.Y: поместить байт в таблицу

INY

CPY # 03

BNE READ: считывание следующего байта

RTS

Режим записи включается выполнением любой операции процессора с ячейкой ввода-вывода: # COXF. Запись байта данных-возможна только через 100 мкс после включения режима записи. Чтобы записать один байт данных на ГМД, необходимо записать байт данных в регистр записи ( Д COXD) и выполнить любую операцию процессора с адресом GOXE. Записать байт данных на ГМД можно, например, так:

LDA TABL

STA Д COSD, X ; запись в регистр записи

С RA д" C08F, х ; запись на ГМД из регистра записи

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

Процесс записи четко ограничен во времени, и каждый байт должен быть записан за 32 мкс. Микропрограммный автомат фиксирует интервалы по 4 мкс каждый, за время которых записывается соответствующий бит (0 или 1).

Рассмотрим, например, каким образом ДОС реализует операцию ЗАПИСЬ В ПОЛЕ АДРЕСА - ДАННЫХ.

Программа, используемая ДОС, выполняется за 32 мкс (между обращениями к ячейке Д C08F):

Время,

мкс Код операции

Операция

-

LDA

C08F . X

Включение режима записи

LDA

ДОАТА 1

Запись в аккумулятор

б\

JSR

WRUTE

первого байта данных

21

LDA

Д DATA 2

Запись второго байта данных

б\

JSR

WRITE

2

WRITE

CLC

Сброс флажка С

3

РНА

4

24

PLA

5

STA #

C08D. X

Ввод байта в регистр

4

ORA

С08С, X

Запись байта

6.

RET


Чтобы считать сигнал WRITE PROTECT, необходимо выполнить любую операцию процессора с адресом о C0XD и считать значение по адресу о СОХЕ. Если старший разряд считанного значения равен единице, то запись невозможна. Пример программы:

LDA # C08D, X; X = N • 16

LDA УХ С08Е, X; считывание сигнала

BMI WRERR ; запись невозможна

На контроллере НГМД в ПЗУ записана специальная программа - драйвер. ПЗУ подключено к адресным шинам таким образом, что эта программа занимает адреса CN00 - CNFF, где N = 3 (номер разъема, в котором размещен контроллер).

После включения компьютера управление передается на программу-загрузчик, (входящую в состав драйвера НГМД), которая осуществляет запись в память машины (начиная с адреса Ц 800) информации, считываемой с нулевого сектора нулевой дорожки магнитного диска (как правило, это программа загрузки ДОС). Драйвер записан в ПЗУ котроллера НГМД.

ДОС, если она есть на ГМД, расположена на дорожках 0-2.

Перед записью в память осуществляется перекодировка прочитанных с диска данных.

В дальнейшем драйвер работает под управлением ДОС, выполняя макрокоманды записи-считывания полей АДРЕСА - ДАННЫХ. Распечатать программу-драйвер можно в мониторе с помощью команды L: • СЗОО LLLLLL.

ОРГАНИЗАЦИЯ БАЗ ДАННЫХ

Организация баз данных сводится к написанию программ, обеспечивающих хранение, пополнение и корректировку информации на ГМД. Такие программы не должны зависеть от типа и объема данных, т.е. должны составить стандартный набор (пакет).

Рассмотрим возможности, которые предоставляет пользователю ДОС. для ведения баз данных.

В состав ДОС входят операторы, работающие с текстовыми файлами.

На рис. 6.12 приведена программа, создающая текстовый файл последовательной структуры и записывающая в него данные, вводимые непосредственно с клавиатуры. Оператор INPUT в строке 10 в начале работы программы выводит первый вопрос. В ответ с блока клавиатуры вводится последовательность символов - имя создаваемого файла. Следующий оператор INPUT в строке 20 запрашивает ввод данных с клавиатуры. Информация запоминается в символьной переменной А Д . Операторы в строках 30 и 40 создают текстовой файл с именем, указанным в переменной NAME Д , и переводят его в режим записи. Следующий оператор в строке 50 записывает содержимое переменной АД в созданный файл.

На рис. 6.13 представлена программа, осуществляющая обратные действия: чтение данных из последовательного текстового файла. Первый оператор в строке 10 выводит звуковой сигнал, второй распечатывает на экране ВКУ каталог ГМД, вставленный (в данный момент) в накопитель. Файл с указанным именем открывается по чтению операторами в строке 30; чтение при этом начнется с первого байта данных.


5REM 7-ИМЯ ТЕКСТОВОГО ФАЙЛА

6REM ??-ЧТО ПИСАТЬ,ВВОД С КЛАВИАТУРЫ

10 INPUT NAMEn 20 INPUT An

30 PRINT CHRn(4);OPEN; NAMSn

4C PRINT CHRn(4) ; "WRITE" ; NAMSn

50 PRINT An

60 PRINT CHRn( 4) ; "CLOSE" ; NAMEn

Рис. 6.12. Программа создания последовательного файла и запись в него

Рис. 6.13. Программа информации дан -ных из последовательного файла

5 REM 7-ИМЯ ФАЙЛА

10PRINT CHRn(7) : PRINT CHRn

(4); "CATALOG"

20INPUT NAMEn : PRINT

30PRINT CHRn(4); "OPEN" ;NAMEn

:PRINT CHRn(4); " READ;NAMEn

40N=0 : ONERR GOTO 90

50GET An

60IF ASC(An)<32 THEN 80

70 PRINT " " ;An: : N=N+1 : GOTO 50

80 RIBBON=1 : PRINT •• " ;

: RIBBON=7 : N=N+1 : GOTO 50

90 PRINT CHRn(7);PRINT CHRn(7) :

CHRn(ASC(An)+64); : ****************• .

PRINT * *****************

PRINT "EOF " ;N; " SYM.

Оператор GET А Д в строке 50 считывает один символ, распечатываемый затем операторами в строке 70. Чтение осуществляется до тех пор, пока файл не иссякнет (второй оператор в строке 40).

Для дальнейшего понимания излагаемого материала введем понятие записи. Запись - это совокупность данных, записываемая в файл одним оператором PRINT. В одной записи могут находиться несколько переменных (т.е. в один оператор PRINT можно включить любое число переменных). Признаком конца записи может служить код £~ (число 13).

В программе предусмотрен поиск кода £~ (конца записи) и печать его на

экране в виде красной буквы М.

Отметим, что в операторе INPUT код клавиши £~ служит признаком конца

читаемой записи, т.е. за одно обращение INPUT читает константы от начала очередной записи до конца £~ включительно.

Примером использования этого оператора служит программа, приведенная на рис. 6.14.

Особенность последовательного файла заключается в том, что записи создаются последовательно. Нельзя прочитать вторую запись, не прочитав первую, и т.д.

Во всех рассмотренных выше программах оператор OPEN позиционирует головку чтения-записи на начало файла. Таким образом, чтобы записать в файл дополнительную информацию, необходимо повторить все предыдущие записи. Это неудобно, а иногда просто невозможно. Применение оператора APPEND дает возможность исключить лишние команды записи при дописывании информации в



[стр.Начало] [стр.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]