Слаботочка Книги

[1] 2 3 4 5 6 7 8 9 10 11 12 13

устройство компьютера SINCLAIR ZX SPECTRUM

Автор компьютера К.Синклер заложил в него следующие возможности:

- 16К или 48К оперативной памяти (RAM);

- 16К постоянной памяти (ROM) - встроенный интерпретатор Бейсик ;

- цветное изображение (16 цветов);

- звук;

- полноразмерная клавиатура - 40 клавиш;

- графика высокого разрешения;

- совместимость с системой Teletex ;

- высокоскоростная загрузка программ с магнитофона;

В руководстве по СПЕКТРУМУ подробно описан разъем расположенный на задней стенке компьютера. Этот разъем дает возможность подключаться к 1 б адресным линиям, 8 линиям данных, источнику питания и линиям управления микропроцессора Z80. Цель этой Главы о&ьяснить назначение указанных сигналов, их использование для внутреннего управления СПЕКТРУМА , а также способы подключения внешних устройств к компьютеру.

1.1, РАСПОЛОЖЕНИЕ ЭЛЕМЕНТОВ

Компьютер собран на двухсторонней печатной плате, обеспечивающей соединение выводов интегральных микросхем и других элементов между собой. На плате установлены следующие основные элементы:

Z80 - центральная управляющая микросхема (микропроцессор), которая тактируется сигналом с частотй 3,5 МГц и выполняет около 0,9 млн. машинных команд в секунду.

1 бК постоянной памяти (ROM) - это микросхема в которую зашит стандартный Бейсик. Запись в эту микросхему (выполнение РОКЕ) невозможна.

1бК (или 48К) - оперативная память компьютера. Для ее организации использовано 8 микросхем памяти для версии 1 бК и 1 б микросхем для модели 48К. Примерно 8К использованы для организации изображения на экране ТУ, а остальные 8К (или 40) зарезервированы для программ пользователя.

ULA - специально разработанная для компьютера СПЕКТРУМ микросхема формирующая сигналы цветного изображения.

иНР - УВЧ-модулятор - схема которая преобразует видиосигнал сформированный компьютером в УВЧ сигнал для подключения к входу АНТ ТУ.

7805 - микросхема-стабилизатор напряжения питания 5 В (отечественный аналог 142ЕН5). Интересно отметить, что жужжащий звук, исходящий из компьютера создается преобразователем напряжения из 5 В в 12 В при входном напряжении 9 В, когда катушка преобразователя резонирует на высокой частоте ( при использовании современных микросхем в самодельных компьютерах преобразователь 5/12 В не используется).

КВ1 и КВ2 - два разъема для подключения клавиатуры (см.раздел б). Необходимо также отметить, что СПЕКТРУМ сложный аппарат и поэтому не стоит открывать его крышку. Не стоит также подключать или припаивать отдельные провода к разъему. Лучше использовать специальный 54 контактный разъем и печатную плату (как указано в разделах 3-5) для пр здотвращения коротких замыканий и других неисправимых повреждений компьютера.

1.2. ФУНКЦИОНАЛЬНАЯ СХЕМА

Основные микросхемы СПЕКТРУМА соединены между собой с помощью 8 параллельных дорожек на печатной плате называемых линиями данных (D0-D7), по которым передаются нулевые и единичные сигналы. В каждый момент времени по линиям данных передается серия нулей и единиц представляющая десятичное число от О до 255; в двоичном виде 255 это 11111111. Если во время работы компьютера аккуратно подключить осциллограф к одной из линий данных, то можно будет наблюдать сложный высокочастотный сигнал.

Для того, чтобы задавать маршруты передачи данных между различными частями компьютера используются адреса, подобные почтовым индексам. Распознав свой адрес соответствующее устройство либо посылает на шину данных 8 бит данных (операция WRITE), либо принимает 8 бит с шины данных (операция READ). При выполнении RESET или CLEAR или NEW все биты принимают значение 0.

Микропроцессор Z80 обеспечивает выполнение всех операций с данными с помощью заложенных в него машинных команд; Так, например, для пересылки 8-разрядного слова из одной ячейки памяти в дру17ю необходимо выполнить около 20 элементарных операций. Скорость выполнения этих элементарных операций весьма высока и определяется тактирующим сигналом с частотой 3,5 МГц.

Оперативная память (R AM), состоит из отдельных триггеров, запоминающих нули и единицы. Запись или считывание одновременно производится в 8 триггеров. Управляющие сигналы микропроцессора опредеяют режим чтения данных из памяти (READ), записи (WRITE) или сброса (RESET). Каждая группа из 8 триггеров имеет свой адрес, по которому запись или чтение данных производится именно в эту ячейку па.мяти.

Как уже отмечалось в этой книге 8 линий данных и 16 линий адреса выходят во внешний мир через разъем компьютера без какого-либо интерфейса, поэтому подключаться к ним нужно с осторожностью, чтобы не повредить компьютер.

Внутри микропроцессора Z80 имеется 24 регистра, которые используются как компьютером, так и пользователем. Регистры сгруппированы в пары 8-разрядных регистров, некоторые пары могут рассматриваться и как 16 разрядные регистры, например IX, ПГ, и SP.

Регистры имеют следующее назначение:

А - аккумулятор;

Р S = ретстр флажков; ~ - ~

Н - верхний регистр; L -нижний решстр;

DE - регистр пересылки данных; ,;

ВС - используется для печати операторов; Ш, IX и ГУ - индексные регистры; SP - счетчик адреса.

Восемь дополнительных регистров могут использоваться для расширения возможностей микропроцессора с помощью ЕХХ команд. Электронные схемы регистров также как и ячеек памяти построены на триггерах, однако в регистрах кроме записи и Считывания предусмотрена возможность сдвига данных вправо и влево, а также инвертирование.



1.3. TV ДИСПЛЕЙ

Ячейки памяти с адресами от 16384 до 22527 зарезервированы для работы TV дисплея высокого разрешения. В эти ячейки может производиться и запись и считывание, причем каждый бит изображается точкой (пикселом) на экране. Символы формируются с помощью групп пикселов. Сканирование электронного луча по экрану TV дисплея не совпадает с последовательным обходом байтов в экранной области памяти. На рис. 1.1 показан порядок обхода байтов при движении луча, то есть указано место экрана на котором изображение формирует соответствующий байт.

г-;;31::,:

л;;:з2.:----

16384 16640 16896 17152

16385

16386

16413

16414

16415

17408 17664 17920

18176

16416 16672 16928

16417

16418

16445

16446

16447

16608 16864 17120 17372 17632 17888 18144 18400

16609 16865

18401

16610 16866

18402

16637

16738

16639 16895 17151 17407 17663 17919 18175 18431

18432 18656 18912

18436 18719 18975

20448

20449

20450

20477

20478

20479

20480 20736

20481

20482

20510 20766

20511 20767

21984 22240 22496

22013

22014

22015

22497

22498

22269 225

22270 22526

22271 22527

Рис. 1.1 Экранная область памяти

Весь экран разбит на 32 вертикальные колонки, пронумерованные от 1 i,n ч:) Ширина колонки соответствует 1 байту хо есть 8 битаГим Грз ока

состоит из 8x32-256 пикселов (точек). Кода какой -либо бит принимает значение 1, то соответствующая ему точка на экране светится, кода бит принимает значение О -точка не светится. Попробуйте набрать

CLS:POKE 16384,128 (и нажать ENTER)

засветится точка в левом верхнем углу экрана. Цвет этой точки выбирается командой INK.

Если набрать CLS:POKE 16415,1

засветится точка в правом вее*йём,у1%: у -; При наборе -

CLS:POKE 16384,85 /~ V

в левом верхнем углу экрана засветятся 4 точки в сответствии с двоичным представлением числа 85 - 0] 010101. Всебайты экранной области памяти соответствуют определенным местамэкрана:

верхняя строка развертки начадгается с адреса 16384,затем идет

9-ая строка начинающаяся с адреса 16416,затем

17-я строка начинающаяся с а)фёса 16448 и так до 4

57-й строки начинающейся с адреса 16608, затем идет

2-ая строка начинающаяся с адреса 16640

10-ая строка начинающаяся с адреса 16672 и т.Д-

После заполнения верхнейтрети Э1фана аналогично заполняются средняя, а затем и нижняя. 1

Сначала может показаться, что экран заполняется хаотически, однако на самом деле соблюдается строгий порядок.

Хотя эта книга не об игровых программах, однако знание организации экранной области памяти может понадобиться для пересылки целой картинки из экранной в дру1ую область памяти. Пример профаммы в машинных кодах, выполняющей эту пересылку приведен в главе 2. На рис. 1.2 показано как из отдельных точек формируется символ. В руководстве пользователя СПЕКТРУМА Описано создание определенных пользователем графических символов с помощью BIN-функций. Теперь должно стать понятнее как это осуществляется.


РОКЕ 16864,126 РОКЕ 17120.8 РОКЕ 17372.8 РОКЕ 17632Д РОКЕ 17888.8 РОКЕ 18144Д РОКЕ 18400,0

Номер бита 7 6 S 4 3 2 1 О

1 6 3 1 4 2 1

Весбита 2 4 2 6

Рис. 1.2. Форюцкяаиие (укаы Т на экрвве.



Дальше мы будем использовать черные графические символы на светложелтом экране и нейтральный цвет рамки. Цвет, яркость и мигание отдельных элементов экрана задаются в отдельной области памяти - области атрибутов, имеющей адреса от 22528 до 23295. Один атрибут задает цвет, яркость и мигание одного блока из 8 байт. Эти блоки (иноща называемые знакоместами) образуют 32 колонки и 24 ряда как показано на рис. 1.1. Очевидно, что все 64 битав одном блоке отображают точки одного цвета для символа (INK) одного цвета для поля (PAPER). Задать цвет одной точки нельзя. Значение битов в байте атрибутов следующее:

Бит О 1 2 3 4 5 6 7

Например: CLS:POKE 22528,184

цвет чернил (ШК). Номер цвета (0-7) и цвет написан на кнопках верхнего ряда клавиатуры

цвет бумаги (paper 0-7)

1 - увеличенная яркость, О - нормальная 1 - мигание знакоместа

дает мигание черного символа на белом фоне. Двоичный эквивалент байта атрибутов 10111000.

Для демонстрации всех возможных комбинаций введите программу:

10 CLS:LETy-0

20 FOR х-22528 ТО 23295

30 РОКЕ х,у

40 LETy-y+1

50 IF у>255 THEN LET jrO

60 NEXT x

В этой программе значение у возрастает от О до 255, затем опять приравнивается 0. Это сделано для того, чтобы у не выходило из диапазона разрешенных значений.

1.4. НЕКОТОРЫЕ ЗАМЕЧАНИЯ

Выходные сигналы, выведенные на разъем компьютера генерируются КМОП мик-росхемами,имеющими большое входное и выходное сопротивление. Это вызывает необходимость буфферизации сигналов и защиты электронных компонентов СПЕКТРУМА от повреждения (в некоторых самодельных компьютерах это уже сделано). Аналого-цифровой преобразователь (АЦП) и цифро-аналоговый (ЦАП), описанные в данной книге, делают это автоматически.

На разъем СПЕКТРУМА выведены разные напряжеиия:-5 В, -12 В, 9 В, 12 В. Однако эти источники имеют очень малую нагрузочную способность и при подключении к ним внешних устройств можно вывести компьютер из строя. Исключение составляет источник + 5 В, но и к нему можно подключать не более 2-3-х микросхем, иначе стабилизатор перегружается. Если потребуется запитать большее число микросхем, то нужен дополнительный источник, как зтосделано для внешних устройств, описанных в главе 4.

2. ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ КОМПЬЮТЕРА

Компьютер СПЕКТРУМ может выполнять программы как написанные на БЕЙСИКЕ, так и в машинных кодах микропроцессора z80. Оба типа программ нашли широкое применение. Программы написанные в машинных кодах непосредственно оперируют с адресами, данными, регистрами микропроцессора, поэтому они работают с весьма высокой скоростью, выполняя 875000 операций в секунду. Например, для пересылки 6000 байт из экранной области в другую и обратно требуются доли секунды. В электронных играх этот прием используется для создания движущихся изображений.

Программа принимает сишалы и датые от клавиатуры и входных портов и Затем генерирует выходные сигналы для данных и выходных портов.

2.1. МАШИННЫЕ КОДЫ ИЛИ БЕЙСИК ?

Для выполнения программы вмашинных кодах необходимы некоторые операторы БЕЙСИК, например:

10 letl-usr62000

В тех случаях когда скорость выполнения программ недостаточна используются подпрограммы написанные в машинных кодах. КрОме того команды БЕЙСИКА сами являются подпрограммами в машинных кодах которые выполняются одна после другой. Например программа на БЕЙ(Л1К£11ЫВ0дящая точку на экран:

10 plot 50,100 состоит из программ в машинных кодах:

10 - Интерпретатор БЕЙСИКА зашитый в ПЗУ преобразует номер строки в два байта в соответствующей области памяти. В этой области содержится информация о последовательности выполнения команд.

plot - Интерпретатор БЕЙСИКА вызывает программу monitor, состоящую из большого количества машинных команд, хранящихся в памяти в виде 8 и 16-разрядных слов.

50 - Этот номер преобразуется подпрограммой plot в х-координату соответствующей точки на tv дисплее (см.раздел 2.2) == .

, - По этому символу определяются конец числа 50 И начало числа 100 в программе monitor. Использование в качестве разделителя любогодругого символа приводит к ошибке - попробуйте.

100 - Второй номер преобразуется программой PL6t ву-координату ютветству-ющей точки на ТУ дисплее.

enter - При вводе программы эта последняя команда идентифицируется как конец числа 100.

run - Запускает выполнение программы.

В результате выполнения программы в соответствующую ячейку экранной области Памяти записывается двоичная 1 и на экране засвечивается точка с координатами 50,100 (см. раздел 1.3). Конец программы определяется по отсутствию следующих номеров строк и компьютер переходит в режим ожидания (ОК).

Для работы с описанными в этой книге схемами используются программы на БЕЙСИКЕ и в машинных кодах. Предполагается, что с БЕЙСИКОМ Вы уже знакомы, а с программированием в машинных кодах рекомендуем познакомиться.




[1] 2 3 4 5 6 7 8 9 10 11 12 13
Яндекс.Метрика