Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ZX Spectrum для пользователей и программистов.doc
Скачиваний:
56
Добавлен:
28.09.2019
Размер:
1.92 Mб
Скачать

Изображение линии: call 9399 (#24b7), call 9402 (#24ва)

Для процедуры изображения линии, расположенной с адреса 9399(#24В7), параметры передаются так же, как и для процедуры изображения окружности — через стек калькулятора. На практике удобнее пользоваться подпрограммой по адресу 9402 (#24ВА), параметрами для которой являются значения регистровой пары ВС и системной переменной COORDS(23677/78). В регистры В и С записываются соответственно величины смещений относительно текущих координат Y (0...175) и X (0...255), содержащихся в системной переменной COORDS.

Знаки смещений по Y и X задаются в регистрах D и Е соответственно записью в них следующих значений: +1 (#01) — положительное, -1 (#FF) — отрицательное.

С использованием CALL 9402 (#24ВА) можно легко реализовать ассемблерный эквивалент команды Бейсика DRAW. Например, результат выполнения следующей программы аналогичен выполнению команды DRAW 0,20:

LD ВС,#1400 ; 20,0

LD DE,#0101 ; знаки смещений

CALL 9402

...

Для изображения отрезка с координатами начала (127,87) и смещением конца (-20,40) перед вызовом подпрограммы необходимо настроить системную переменную COORDS

LD L,127 ;стартовые координаты Х=127

LD Н,87 ;и Y=87

LD (23677),HL ;записываются в COORDS

LD С,20 ;смещение по X

LD Е,—1 ;задается равным —20

LD В,40 ;смещение по Y -

LD D,1 ;равным +40

CALL 9402 ;изображение отрезка

Очистка части экрана: CALL 3652 (#0Е44)

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

Скроллинг части экрана: CALL 3584 (#0Е00)

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

Загрузка и запись файлов на магнитофон

Как правило, файл, записанный на магнитной ленте, состоит из двух блоков, первый из которых называется заголовком и содержит информацию о файле (тип, длина и т. п.), второй — собственно данные. Подпрограмма ПЗУ загружает и обрабатывает заголовок и на основе полученной информации загружает данные.

Длина заголовка составляет 17 байт:

байт 0 — тип файла:

0 — бейсик-программа;

1 —числовой массив;

2 — символьный массив ;

3 — двоичный (кодовый) файл.

байты 1...10 — имя файла;

байты 11, 12 —длина блока данных;

байты 13, 14 — для типа 0: номер строки автозапуска;

— для типа 3: начальный адрес загрузки;

байт 14 — для типов 1 и 2 — имя и тип массива в

следующей форме:

биты 0...4 — имя массива (А...Z);

бит 5 — 0, если массив числовой;

бит 6 — 1, если массив символьный;

бит 7 — всегда установлен;

байты 15,16 — длина бейсик-программы.