Page 1 of 1
[Z80] Memory Banks (SINCLAIR 128)
Posted: 18-Dec-2021, 20:22
by Administrator
Компьютер SINCLAIR 128 имеет ОЗУ объёмом 128КБ, которое разделено на 8 банков памяти по 16 килобайт и которые условно нумеруются от 0 до 7. В системе имеется регистр (или порт?) конфигурации, который доступен программисту и имеет адрес 7FFDH. С помощью записи в этот регистр мы можем менять конфигурацию системы т.е. переключать ПЗУ, банки ОЗУ и т.д. Регистр конфигурации имеет 6 разрядов.
Первые три (с 0-го по 2-й) разряда определяют один из восьми банков, подключенный в последний сектор адресного пространства процессора.
3-й определяет один из 2-х банков, который будет подключен в первый сектор адресного пространства и отображен на экран:
- 0 - подключен 5-й банк,
- 1 - подключен 7-й банк.
4-й разряд определяет ПЗУ:
- 0 - подключена прошивка BASIC 128,
- 1 - BASIC 48.
5-й разряд заведует блокировкой записи в регистр конфигурации:
- 0 - запись разрешена,
- 1 - запись блокирована.
Это необходимо для работы в режиме SINCLAIR 48.
Re: [Z80] Memory Banks (SINCLAIR 128)
Posted: 18-Dec-2021, 20:24
by Administrator
Code: Select all
АДРЕС Z-80 СЕКТОР ПЗУ 32К
---------------¬ --------------¬
0000-3FFF ¦ 16K ¦ ___¦0 в разряде 4--+BASIC 128 16K¦
¦ 0-й сектор ¦ ¦1 в разряде 4--+BASIC 48 16K¦
+--------------+ L--------------
4000-7FFF ¦ 16K ¦ ___ ОЗУ 128К
¦ 1-й сектор ¦ ¦1 в разряде 3--+7-й БАНК 16К ¦
+--------------+ ¦ ¦6-й БАНК 16К ¦
8000-BFFF ¦ 16К ¦ ¦0 в разряде 3--+5-й БАНК 16К ¦
¦ 2-й сектор ¦ ¦4-й БАНК 16К ¦
+--------------+ ¦3-й БАНК 16К ¦
C000-FFFF ¦ 16К ¦--------------------¦2-й БАНК 16К ¦
¦ 3-й сектор ¦ любой из ¦1-й БАНК 16К ¦
L--------------- 8-ми ¦0-й БАНК 16К ¦
БАНКОВ ОЗУ L--------------
000 в разрядах 2 - 0 - 0-й БАНК
001 ------------------ 1-й БАНК
...............................
111 ------------------ 7-й БАНК
Re: [Z80] Memory Banks (SINCLAIR 128)
Posted: 18-Dec-2021, 22:13
by Administrator
Наличие большого количества оперативной памяти позволило несколько расширить возможности отображения информации: в
ZX Spectrum 128 есть две экранные области памяти (так называемые видеостраницы). Одна — стандартная, такая же, как и в обычном Speccy. Она расположена в адресах #4000...#5AFF, следовательно, в банке памяти RAM5. Вторая находится в начале банка оперативной памяти RAM7. Обратиться к этой памяти можно только тогда, когда этот банк установлен в разделе CPU3 микропроцессора. Строение экрана при этом осталось неизменным, таким образом, все элементы экрана оказываются расположенными в адресном пространстве #C000...#DAFF.
- Spec128Banks.png (13.8 KiB) Viewed 9766 times
Re: [Z80] Memory Banks (SINCLAIR 128)
Posted: 18-Dec-2021, 22:22
by Administrator
Начиная с адреса #c000 (49152) длинною #4000 (16384) находится область, в которую можно включить другую страницу. Этим заведует порт #7ffd, он стандартен для всех 128к машин.
Code: Select all
ld bc,#7ffd ; порт
ld a,1 ; 1й банк
or #10 ; пзу 48к
out (c),a ; переключить!
Механизм страничной адресации памяти, а также музыкальный процессор и иная организация принтера потребовал расширения стандартных внешних устройств, обрабатываемых «внутри» компьютера. Выше писалось, что выбор устройств в ZX Spectrum осуществляется сбросом в ноль какого-либо разряда шины адреса. Для ZX Spectrum 128 это верно только наполовину. Действительно, для обращения к дополнительным портам в младших восьми разрядах устанавливается в ноль адрес А1. Таким образом, общий адрес внешних устройств должен быть #FD. Выбор же конкретного устройства определяют адреса А14 и А15.
Порт 32765 l#7FFD, %1111111111111101)
Отдельными битами этого порта осуществляется управление конфигурацией компьютера. Отметим, что этот порт доступен только для записи, поэтому интерпретатор Бейсика в системных переменных по адресу 23388 (#5В5С) хранит копию этого регистра.
Read more
Re: [Z80] Memory Banks (SINCLAIR 128)
Posted: 18-Dec-2021, 22:37
by Administrator
Порт 49149 (#BFFD, %1011111111111101)
Порт 65533 (#FFFD, %1111111111111101)
Через эти порты осуществляется адресация восьмиразрядных регистров музыкального процессора. Всего таких регистров шестнадцать, мы будем обозначать их R0...R15. Регистры двунаправленные, то есть информацию в них можно записывать и считывать. Для доступа к какому-либо регистру его номер (число в диапазоне от 0 до 15) необходимо записать по адресу 65533 (#FFFD).
После этого становится возможна передача данных между этим «установленным» или текущим регистром и микропроцессором. Для смены текущего регистра соответствующий номер нужно записать в порт 65533, и так далее.
Обратите внимание, что адреса для чтения и записи информации в текущий регистр музыкального процессора различны. Для записи байта
нужно выполнить команду вывода в порт с адресом 49149, а для чтения — команду ввода из порта с адресом 65533 (#FFFD).
Прежде, чем разобрать функции отдельных регистров музыкального процессора, остановимся на его особенностях. Микросхема музыкального
процессора имеет три независимых канала для формирования звука (обозначаются А, В и С) и два двунаправленных восьмиразрядных канала ввода/вывода — IRA и IRB, соответственно. Через канал IRA осуществляется связь с принтером, вывод сигналов для специального музыкального интерфейса MIDI и, кроме этого, связь со специальной выносной клавиатурой функциональных клавиш, используемых в расширенном интерпретаторе Бейсика.
Регистры R0/R1, R2/R3, R4/R5
Три спаренных регистра R0/R1, R2/R3, R4/R5 используются для выработки частоты тона соответственно каналов А, В и С. Необходимые двенадцатиразрядные значения образуются из восьми бит младшего по номеру регистра и четырех младших бит старшего по номеру регистра.
Регистр R6 - Младшие пять разрядов этого регистра задают частоту шума.
Регистр R7 - Через этот регистр осуществляется управление звуковыми каналами и регистрами ввода/вывода.
Регистры R8, R9 и R10 - Младшие пять разрядов регистров R8, R9 и R10 управляют соответственно амплитудой каналов А, В и С.
Регистры R11/R12 - Спаренные регистры R11/R12 образуют шестнадцатиразрядное значение огибающей выходного сигнала, регистр R11 несет младший байт, а R12 — старший.
Регистр R13 - Младшие четыре разряда этого регистра управляют формой и режимом огибающей выходного сигнала:
бит 0 — затухание;
бит 1 — чередование;
бит 2 — нарастание;
бит 3 — продолжение.
Регистры R14 и R15
Регистры R14 и R15 используются соответственно для связи с каналами ввода/вывода IRA и IRB. Содержимое этих регистров можно в любой момент считывать и записывать, на формировании звука это никак не отражается.