Системные программы для ZX-Spectrum 128K 1969 г.

Руководство по программированию на языке Бейсик - системные переменные. Сообщения. Ссылки. Использование калькулятора.


7.10. СИСТЕМНЫЕ ПЕРЕМЕННЫЕ

Рассмотрены понятия РОКЕ, РЕЕК.

Область памяти с 23296 до 23733 используется системой. Там находятся некоторые
системные программы и системные переменные.

Как уже было отмечено, имеется разница между областями системных
переменных в режимах BASIC-48K и BASIC-128K. В режиме BASIC-48K все
переменные и программы ниже 23552 не существуют. Вместо этого имеется буфер
23296...23552, который используется для управления печатающим устройством. Это
было очень популярным местом размещения маленьких кодов машины в ПК Spectrum
48К, и если одна из этих программ будет запущена в режиме BASIC-128К, ПК
несомненно даст отказ. Любую старую программу, которая использует РЕЕК, РОКЕ
и USR,гораздо безопаснее пропускать в режиме BASIC-48K ([хотя их можно ввести в
режиме BASIC-128 и преобразовать с помощью команды SPECTRUM).

Системные переменные имеют имена, но не путайте их со словами и именами,
используемыми в БЕЙСИКе ПК не распознает имена, относящиеся к системным
переменным; они даются только как мнемонические для использования человеком.

В списке системных переменных используются сокращения:

X - нельзя использовать РОКЕ, система может выйти из строя.

N - РОКЕ не дает эффекта.

R - точка входа подпрограммы. Не переменная.

Число в столбце 1 есть число байтов в переменной или процедуре. Для двух байтов
первый есть младший значащий байт (обратное тому, что Вы могли предполагать).

Итак, чтобы упаковать значение в двухбайтовую переменную по адресу п,
используйте:

POKE N,V-256»INT (V/256)
POKE N+l ,INT (V/256)
А чтобы считать ее значение, используйте команду:

РЕЕК ^'Спектрум 128К"56*РЕЕК (N+1)
Упражнение. Эта программа показывает Вам 22 байта области переменных (от
KSCAN и далее).

10 FOR N-O ТО 21

20 PRINT РЕЕК (РЕЕК 23627"Спектрум 128К"56*РЕЕК
23628+N)

30 NEXT N

7.11. СООБЩЕНИЯ

7.12. ССЫЛКИ

Компьютер "Спектрум 128К" построен на базе микропроцессора Z80, имеющего
тактовую частоту 3.45 МГц.

Память ПК "Спектрум 128К" разделена на ПЗУ, объемом 32 Кбайта, и ЗУПВ,
объемом 128 Кбайт, со страницами в 16 Кбайт. Две страницы ПЗУ (0 и 1) размещены
внизу карты памяти (0...3FFFh). Восемь страниц ЗУПВ (0...7) размещены наверху
карты памяти (C000...7FFFh). Страница 5 ЗУПВ размещена в диапазоне
4000...7FFFh, а страница 2 ЗУПВ - в диапазоне 8000h...BFFFh.

Физически ПЗУ представляет собой одно устройство памяти, объемом 32 Кбайт,
которое используется системой как две микросхемы, объемом по 16 Кбайт. ЗУПВ
составлено из 16 микросхем 64 К * 1 бит (4164). Некоторые из них (ЗУПВ 4...7)
обеспечивают работу или схемы, которая воспроизводит картинку на экране
телевизора, или микропроцессора Z80A. Это разделение их предназначения
осуществляется во времени. Остальные (ЗУПВ 0...3) предназначены исключительно
для использования микропроцессором Z80A, также как ПЗУ.

Ненарушаемый логический массив ULA обслуживает устройства ввода/вывода,
подобные клавиатуре, магнитофону и экрану. Он преобразует байты из памяти в
образы и цвета на экране и позволяет Z80A сканировать клавиатуру, читать и писать
данные на кассету.

Трехканальный звук производится в АУ-3-8912 - очень мощной микросхеме звука,
и это устройство также управляет портами KEYPAD и RS232/MIDI. Путь, по
которому она работает, довольно сложный, и интересующиеся приглашаются к
изучению данных АУ-3-8912.

Следующей информации будет достаточно для понимания основ. Микросхема
звука содержат шестнадцать регистров, которые отбираются путем записи вначале по
адресу порта записи (адрес ввода/вывода - FFFDh...65533 десятичное) номера
регистра и затем считывания содержимого регистра (того же адреса) или записи в
регистр данных адреса записи (BFFDh...49149 десятичное). Когда регистр отобран,
может быть выполнено несколько считываний/записей: адрес порта записи должен
изменяться только тогда, когда требуется доступ к другому регистру.

Основная частота часов в схеме равна 1.7734 Мгц (с точностью до 0.01 %).

Назначение регистров следующее:

R0 - тонкое управление тоном канала А;

R1 - грубое управление тоном канала А;

R2 - тонкое управление тоном канала В;

R3 - грубое управление тоном канала В;

R4 - тонкое управление тоном канала С;

R5 - грубое управление тоном канала С.

Тон канала есть 12-битное значение, получаемое из суммы разрядов D3...D0
грубых регистров и D7...D0 тонких регистров. Основное устройство тона есть частота
часов, разделенная на 16 (т.е. 110.83 Кгц) и с диапазона счетчика в 12 бит могут быть
порождены частоты от 27 Гц до 110 Кгц.

R6 - управление генератора шума (D4...D0);

Период источника шума берется отсчетом 5 хмладших битов регистра шума каждый
период часов звука, разделенный на 16.

R7 - управление миксером и вводом/выводом. При этом:

D7 - не используется;

D6 - 1-порт ввода, О-порт вывода;

D5 - шум канала С;

D4 - шум канала В;

D3 - шум канала А;

D2 - тон канала С;

D1 - тон канала В;

DO - тон канала А.

Этот регистр управляет как смешиванием уровней шума и тона для каждого
канала, так и направлением 8-разрядного порта ввода/вывода. Ноль в бите смешения
указывает на то, что функция разрешена.

R8 - управление амплитудой канала А;

R9 - управление амплитудой канала В;

RA - управление амплитудой канала С.

При этом:

D4 - 1-использование генератора пакета

D4 - О-использование значения D3-D0 для амплитуды

D3...D0 - амплитуда.

Эти три регистра управляют амплитудой каждого канала, которая либо
моделируется, либо нет регистрами пакета.

RB - грубое управление периодом пакета;

RC - тонкое управление периодом пакета.

Значение восьми бит в RB-RC суммируется для получения разрядного числа,
которое считывается вниз в единицах по 256 раз часов звука. Частоты пакета могут
быть между 0.1 Гц и 5 КГц.

RD - управление пакетом:
D3 - продолжение;
D2 - нарастание;
D1 - изменение;
DO - держать.

8. ИСПОЛЬЗОВАНИЕ КАЛЬКУЛЯТОРА

Рассмотрены вопросы:

- выбор калькулятора;

- ввод чисел;

- прогон итогов;

- использование встроенных математических функций;

- редактирование экрана;

- назначение переменных;

- выход из режима калькулятора.

Компьютер Хпектрум 128К" может использоваться как калькулятор с полным
набором функций.

Для использования калькулятора возьмите начальное меню и выберите вариант
"Калькулятор".

Калькулятор можно выбрать сразу же после включения ПК "Спектрум 128К".

Если же Вы работаете в программе БЕЙСИК-128, Вы можете выбрать калькулятор
путем выбора варианта "EXIT" из меню редактирования, что возвращает Вас к
начальному меню, из которого Вы можете выбрать вариант "Калькулятор". Заметим,
что любая программа БЕЙСИКа, которая была в обработке в момент выбора
калькулятора, будет запомнена и восстановлена, как только Вы выйдете из режима
калькулятора.

После того, как Вы выберите вариант "Калькулятор", наберите:
6 + 4

Как только Вы нажмете клавишу [ENTER], появится ответ: 10. (Клавиша "-" не
нажимается.) Кроме того, Вы увидите, что курсор помещается справа от ответа. Это
означает, что Вы можете просто набрать следующий оператор, который будет
выполняться с текущим итогом (без необходимости ввода первого члена нового вы-
числения). Таким образом с курсором, установленным на экране справа от "10",
наберите:

и получите ответ: 2. Теперь наберите:

♦PI

Это даст результат: 6.2831853. Компьютер "Спектрум 128К" использует
встроенную переменную PI. Для этого Вам достаточно набрать ее имя - PI. Это
применимо и ко всем математическим функциям ПК "Спектрум 128К". Для примера
наберите:

♦ATN60.

что даст результат, равный 9.7648943.

Вы также можете "редактировать" содержимое экрана. Для демонстрации
сдвиньте курсор (с использование клавиши слева <) на начало строки и затем наберите
"INT" так, чтобы строка имела вид:

♦INT 9.7648943

и как только будет нажата клавиша [ENTER], выводится ответ: 9. Это показывает,
что компьютер "Спектрум 128К" не будет выполнять вычисления до тех пор, пока не
будет нажата клавиша [ENTER]. В качестве другого примера нажмите [ENTER] и
затем наберите:

1Е6

и будет отображено значение числа. Заметим, что до того, как Вы выбрали "1Е6",
Вы нажали [ENTER] - этим сообщается ПК "Спектрум 128К", что Вы хотите начать
новое вычисление.

Одно очень полезное свойство ПК "Спектрум 128К" заключается в том, что
калькулятор аозволяет Вам назначать значения переменным и затем использовать их
в последующих вычислениях. Это достигается использованием предложения LET
(как в БЕЙСИКе). Для демонстрации наберите следующее:

LETX-10

Учтите, что Вы должны затем нажать [ENTER] дважды, чтобы ПК "Спектрум
128К" приняла назначенные переменные. Теперь удостоверьтесь, что переменная "х"
может использоваться в вычислениях, набрав:

Х + 90,

а затем:

+Х*Х.

Ответ должен быть: 10100.

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

Ключевые слова БЕЙСИКа не допускаются в качестве имен переменных,
используемых калькулятором.

Когда Вы закончили использование калькулятора, нажмите клавишу [EDIT] и
выберите вариант "EXIT" для возврата в начальное меню. Если Вы работали с
программой БЕЙСИК-128 до того, как начать использование калькулятора, Вы
можете вернуться в программу, выбрав вариант "БЕЙСИК-128". Если Вы хотите
продолжать использование калькулятора, выберите вариант "Калькулятор".




СОДЕРЖАНИЕ:


  Оставте Ваш отзыв:

  НИК/ИМЯ
  ПОЧТА (шифруется)
  КОД



Темы: Игры, Программное обеспечение, Пресса, Аппаратное обеспечение, Сеть, Демосцена, Люди, Программирование

Похожие статьи:
Мои проекты - Сейчас я поведаю вам, уважаемые читатели, о том, как продвигаются мои проекты.
Код - 3D демы на ZX Spectrum: история развития 3д движков.
Interview - Интервью zHenYa - сценер из Литвы.
Песни/пляски - Частушки.
Игры - Как написать компьютерную игру.

В этот день...   21 ноября