ZX-Spectrum & TR-DOS для пользователей и программистов 1994 г.

Русификация ZX SPECTRUM - использование пополнительных фонтов.


■ Использование пополнительных фонтов

Другим, более гибким способом русификации является переключение
работы компьютера с основного набора сштолов (фонта) на другой, подгру-
жаемый в память.

Полный набор символов ZX Spectrum состоит из 96 знаков — боль-
шие и маленькие латинские буквы, цифры, знаки препинания и т. д. Он
занимает в ПЗУ 96x8=768 байт и не может быть изменен. Однако существует
системная переменная CHARS, указывающая местоположение набора сим-
волов, с которым в данный момент работает компьютер (текущего фонта).
Изменив значение этой переменной, можно назначить текущим фонт, рас-
положенный по другому адресу, например, в ОЗУ. Переменная CHARS
находится по адресам 23606/07 и при работе со стандартным набором
указывает на адрес 15360 (число, на 256 меньшее адреса начала фонта в
ПЗУ, см. «Системные переменные»).

Для изменения адреса текущего фонта нужно выполнить следующие
операторы:

INPUT "address: ";а: REM адрес нового фонта

РОКЕ 23606,а—256*1NT (а/256): POKE 23607.INT (а/256)-1

Русифицированный фонт может быть сформирован с помощью лю-
бой из многочисленных графических программ, позволяющих манипулиро-

вать шрифтами. Можно порекомендовать редактор Art Studio. При создании
кириллицы встает вопрос, какому латинскому символу должна соответство-
вать конкретная русская буква. Вопрос этот не слишком принципиальный,
однако есть определенные стандарты, которыми стоит руководствоваться.
Обычно устанавливают такое соответствие:

А

А

и

1

Р

R

ш

[

а

а

и

i

P

r

Ш

{

Б

В

й

]

С

S

щ

]

б

Ь

й

j

с

s

Щ

}

В

W

к

к

т

Т

ъ

?

в

w

к

k

T

t

ь

©

Г

G

л

L

У

и

ы

Y

г

9

п

1

У

u

Ы

У

Д

D

м

м

Ф

F

ь

X

А

d

м

m

Ф

f

b

X

Е

Е

н

N

X

Н

э

е

е

н

n

X

h

Л

!

Ж

V

о

О

ц

С

ю

®

ж

V

о

о

Ц

с

Ю

i

3

Z

п

Р

ч

я

О

3

Z

11

P

4

t

я

q

Файл с полным набором символов, созданных в графическом редак-
торе, записывается на магнитный носитель и обычно имеет длину 768 байт.
Для загрузки фонта и назначения его текущим можно воспользоваться
следующей подпрограммой:

9989 INPUT "Starting address: ";а: REM адрес загрузки шрифта

9990 IF а<25000 OR а>64768 THEN GO TO 9989

9991 CLEAR a-1: LET a=PEEK 23730+256*PEEK 23731+1

9992 LET RUS=9996: LET LAT=9998

9993 LOAD "RUS"CODE a: REM загрузка шрифта

9994 LET a2=INT (a/256)-1: LET a1=a~256*!NT (a/256)

9995 STOP

9996 POKE 23606,al: POKE 23607,a2: REM русский регистр

9997 RETURN

9998 POKE 23606,0: POKE 23607,60: REM латинский регистр

9999 RETURN

Теперь для переключения на русский шрифт достаточно вызвать
подпрограмму, расположенную со строки 9996, то есть выполнить оператор
GO SUB RUS, а для возвращения к латинскому — оператор GO SUB LAT. Пере-
ключения можно производить как в непосредственном режиме, так и встав-
ляя операторы GO SUB в программу. В последнем случае можно получать на
экране одновременно и латинскии, и русский текст. Например, дописав в
рассмотренную выше программу не совсем понятную строку

10 GO SUB LAT: PRINT "ZX Spectrum -";: GO SUB RUS:
PRINT "moj drug"

и запустив программу командой RUN, на экране получим вполне
осмысленную фразу:
ZX Spectrum — мой друг

При выводе листинга текст на экране может быть представлен только
либо латинским, либо русским шрифтом.

Адрес размещения подгружаемого фонта рекомендуется выбирать в
конце ОЗУ (например, 64768). Количество дополнительных фонтов, одно-
временно находящихся в памяти, ограничено лишь ее объемом.

Если область, которую занимают фонты, защитить оператором CLEAR
(как это сделано в приведенном примере), то они не будут удаляться из
памяти даже после выполнения оператора NEW.

Заметим, что этот способ русификации программ наиболее универ-
сален — такие программы будут работать на любом Spectrum-совместимом
компьютере, в отличие от других вариантов, когда, например, русский фонт
«зашивается» в стандартное ПЗУ. Правда, размещение кириллицы в ПЗУ
дает и определенные удобства, но, обычно, лишь ценой частичной, а иногда
и полной потери совместимости с ZX Spectrum.




СОДЕРЖАНИЕ:


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

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



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

Похожие статьи:
Будущее Спектрума - Диалоги об игровой приставке ZX-Box на основе Spectrum'а.
Математика - Фрактал Мандельброта.
Реклама - Реклама и объявления...
Всякая всячина - обзор нового софта: PЕDRО in 3 parts, Video Studio, Return to Spectrum, AMP-PAСK 0.05, UNRAR 0.33, 8-СОLОR 0.04, AСЕ 0.666, Real Commander 2.3, Bestvide 2.14.
Авторы - об авторах нового номера газеты.

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