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


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




[24]

а другой является составной частью языка БЕЙСИК. Отличаются мониторы курсором-указателем. Монитор ПЗУ имеет указатель - белый мерцающий квадрат (□), монитор языка БЕЙСИК - белый мерцающий знак подчеркивания ( ).

Запись содержимого памяти на магнитную ленту. В мониторе предусмотрены две специальные команды, которые позволяют переписывать содержимое области памяти на кассету и считывать его для дальнейшего использования. Одна из этих команд, команда WRITE (запись), записывает содержимое от 1 до 65 536 ячеек памяти на стандартные кассеты.

Чтобы записать содержимое области памяти на кассету, монитору необходимо задать начальный и конечный адреса этой области и символ W после них:

* {Начало}. {Конец} W I

Чтобы провести запись без ошибок, необходимо установить кассетное звукозаписывающее устройство в режиме "Запись", дать ленте прокрутиться

несколько секунд, нажать клавишу £

Десять секунд монитор будет записывать на ленту заголовок (частотой 3,7 кГц) и лишь потом данные. Об окончании работы монитор сообщает коротким сигналом. После записи рекомендуется перемотать ленту и разборчиво написать на кассете данные о содержании хранимых данных и их назначении. Например:

*0: FFFFAD30C088D004C601F008CAD0F6A6004G02006oI

*o.ul

0000-FFFFAD30C088D0O4 С008-С601F008CADOF6A6 0010-004G020060

*o.mwI

После десятисекундной записи заголовка для записи на ленту содержимого 4096 ячеек памяти требуется еще 35 с. Скорость записи составляет 1350 бит/с. Если значения всех величин записаны без ошибок, монитор пишет на ленту значение еще одной дополнительной величины - контрольную сумму, которая образована из значений всех величин записываемой области памяти. Команда READ использует потом эту сумму для обнаружения ошибки считывания (контрольная сумма имеет сначала значение Д FF и изменяется посредством операции "исключающего ИЛИ", т.е. сложения по модулю 2, с каждой величиной передаваемой области).

Считывание области памяти с ленты. Если с помощью команды WRITE монитора на ленту записана область памяти, то можно считать ее командой READ монитора. Не обязательно считывать записанные данные на ленту в ту же область памяти.

Формат команды READ такой же, как и команды WRITE, только на месте буквы команды стоит "R": {Начало}.{Конец} R

Прежде чем нажать 1 , необходимо установить магнитофон в режим "Воспроизведение" и дождаться воспроизведения заголовка (монотонного звукового сиг-


нала частотой 3,7 кГц). Сигнал служит для настройки команды READ на чтение.

Команда WRITE пишет этот сигнал 10 с, а команда READ настраивается в течение 3 с. Например, запишем в память с адреса 0000 по 0014 данные (см. предыдущий пример):

♦0:000000000000000000000l

♦0.14 [

0000-00 00 00 00 00 00 00 00 0008-00 00 00 00 00 00 00 00 0010-00 00 00 00 00

♦0.14R [

♦0.14 [

0000-FF FF AD 30 СО 88 D0 04 0008-С6 01 F0 08 СА DO F6 А6 0010-00 4С 02 00 60

После того, как монитор запишет в память все данные, он считывает контрольную сумму и сравнивает ее с собственной контрольной суммой. Если они различаются, то монитор дает звуковой сигнал и выводит на экран ERR. Таким образом, дается предупреждение о том, что при считывании возникли ошибки, и величины не совпадают с теми, которые были записаны на ленте. Если же контрольные суммы равны, то монитор ждет дальнейших инструкций.

Мини - ассемблер. Монитор состоит из совокупности подпрограмм, выполняющих самые разнообразные функции. Написанные пользователем программы на машинном языке могут вызывать многие подпрограммы монитора. Ниже приведена программа, которая выводит на экране буквы от А до Z:

♦300: А9 С1 20 ED FD 18 69 1 С9 DB DO F6 60 [

♦300. 30С [

0300-А9 С1 20 ED FD 18 69 01

0308-С9 DB DO F6 60

Ее выполнение задается командой G:

♦300G [

ABCDEFGHIJKLMNOPQRSTUVWXYZ

*

Фрагмент памяти в шестнадцатеричном виде неудобен для того, чтобы читать программы на машинном языке и при этом искать ошибки. Команда LIST позволяет вывести машинные программы на языке ассемблера. Ассемблер распознает 56 команд микропроцессора в мнемоническом коде при 13 способах адресации. По команде LIST на экран выводится программа:

♦300L

0300- А9 CILDA # И С1

0302- 20 ED FD JSR tf FDED 0305- 18CLC


0306-

69

01

ADC# 01

0308-

С9

DB

СМР# flDB

030А-

DO

F6

BNE 0302

030С-

60

RTS

030D-

00

BRK

Приведенная выше программа печати на экране букв от А до Z распечатана в формате языка ассемблера в виде отдельных команд.

В мониторе языка БЕЙСИК (в отличие от монитора в ПЗУ компьютера) есть подпрограмма, которая позволяет ввести программу в ПЭВМ в том же формате ассемблера, в котором ее выводит команда LIST, - это мини-ассемблер "Агат". Она называется "мини", так как не может обрабатывать условные адреса, что выполняет развитой ассемблер. Мини-ассемблер запускается следующим образом:

* F666G

!

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

Мини-ассемблер распознает счетчик команд монитора. Прежде чем ввести программу, нужно установить счетчик команд на адрес, в котором будет размещена программа. Для этого необходимо ввести этот адрес и двоеточие. Потом следует первая команда программы, представленная тремя буквами символа команды, пробел, операнд команды. Мини-ассемблер преобразует строку в шестнадцатеричные числа и размещает их в памяти начиная с адреса, на который указывает счетчик команд. Эти шестнадцатеричные числа (их может быть не более трех) переводятся, как при выполнении команды монитора LIST, снова в формат языка ассемблера и выводятся на экран. (Это дает возможность еще раз подробно просмотреть введенную строку.) Затем мини-ассемблер снова выводит восклицательный знак. Если команды следуют одна за другой, нет необходимости при вводе задавать адрес и двоеточие; можно набрать пробел, команду (символ команды, пробел, операнд) и написать клавишу J~. Эта строка преобразуется,

после чего можно ввести следующую строку и т.д.

В случае, если введенная строка содержит ошибку, мини-ассемблер сообщает об этом звуковым сигналом и выводит указатель (л) под ошибочным символом (или по крайней мере вблизи него). В основном это ошибки, возникающие при наборе: неверные символы команд, отсутствующие скобки и т.д. Мини-ассемблер не воспринимает также строки входных данных, если в них пропущен пробел перед или после символа команды или если внесен ошибочный знак в шестнад-цатеричную величину или адрес. Если адрес цели относительного перехода расположен слишком далеко от команды перехода (удален более чем на 127 адресов от адреса команды перехода), то мини-ассемблер сообщает об этом как об ошибке. Например:

!300: LDX 02 J"

0300А2 • 02LDX # о 02

!LDA W 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]