ZX-Ревю 1991 №4-5 1990 г.

Forum - о пределах совместимости отечественных модификаций "Спектрумов" с фирменным программным обеспечением.


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

Тов. Змерзлюк из г. Краснокаменска сообщает, что на его компьютере модели "Дубна-48" не работают программы TF-COPY, COPY-86/M, LERM-7, а также программы, имеющие нестандартный загрузчик типа BOMB JACK, BOULDER DASH и др. Он был бы очень рад узнать о причине этого явления.

Завод "ТЕНЗОР" на запрос товарища Клейменова по этому поводу любезно сообщил, что ПК "Дубна-48" может не работать с теми программами, которые выполняют проверку содержимого ПЗУ.

Что по этому поводу можно сказать? В своей книге "Первые шаги в машинном коде Z-80" мы высказали отношение к доработкам ПЗУ и предложили выполнять их посредством замещающего, "теневого" ПЗУ. В рекомендациях мы основывались на многолетнем опыте, накопленном в Европе при работе с этим и другими подобными компьютерами. Сэр Синклер чего только не модифицировал в своих машинах, но вот ПЗУ - не трогал, хотя хорошо знал о том, сколько в нем ошибок. Да и фирма "АМСТРАД", перекупив у него все права на производство Синклер-совместимых моделей, тем не менее, даже начав выпускать модели 128K, обеспечила возможность работы в режиме 48K почти со 100%-ной совместимостью. Фирма "Таймекс" в своей модели 2048, серьезно переделав архитектуру компьютера, не тронула ПЗУ, а к модели 2068, которая была исполнена с расчетом на работу в дисковой системе под управлением CP/M, что потребовало полной замены ПЗУ, прилагает специальный кэртридж Синклер-совместимости, который вставляется в специальный отсек. Есть непроверенные сведения, что так же поступили и с компьютером UNIPOLBRIT в Польше.

Мы предлагаем всем, кто столкнулся с подобными проблемами и умеет читать машинный код фирменных программ обратить усилия на то, чтобы вскрыть в них места, в которых они выполняют проверку ПЗУ и организовать обход, по возможности несложный. Мы же с радостью напечатаем сообщения о ваших открытиях.

Конечно же проблема эта относится совсем не только к "Дубне", а и к десяткам других моделей. Нужна координация усилий и очень своевременной выглядит идея научно-производственной фирмы "Икар" о создании Всесоюзной ассоциации производителей аппаратного, программного и информационного обеспечения компьютеров, совместимых с "ZX Spectrum" (ВАПРОС).

Не работает "BOMBJACK" на версии компьютера "АИОА" (Козлов, Сургут).

Товарищ Смирнов из Ленинграда пишет о том, что у него на компьютере версии BALTIC не идет программа "ELITE", т.е. она стартует, но через три-четыре минуты "зависает". То же проявляется и на других, проверенных им компьютерах этой версии. Кто что-то знает по этому вопросу, отзовитесь!

Поступили сведения о том, что то же происходит и с программой "THE LAST WORD TWO" после проведения в ней русификации. Она стартует, после набора нескольких символов зависает. Поскольку сведения поступили примерно от пяти человек из разных мест (Витебск, Мурманск и др.) и совершенно совпадают, можно предположить, что это не случайность. С другой стороны, есть уже сотни сообщений о том, что русификация прошла успешно. По-видимому, сказывается какая-то особенность применяемого компьютера. Делать выводы пока рано. Не хватает статистики, ждем Ваших наблюдений.

Интересная информация поступила от товарища Ермакова о появлении модификации компьютера "Синклер-90". Судя по приведенной им информации, ПЗУ компьютера настолько развито, что обеспечивает очень мощный мониторинг исполняемых программ и даже доступ к регистрам процессора.

Нам об этом ничего не известно, но если кто-то из авторов разработки читает эти строки, то мы надеемся на то, что он сочтет возможным дать на страницах "ZX-РЕВЮ" несколько уроков по работе с новой системой.

Крайне интересный вопрос задал в своем письме товарищ Максимов из г. Кемерово. Он посетовал на то, что нет единого стандарта в присвоении букв русского алфавита клавишам "Спектрума". Действительно, вопрос весьма важен, т.к. от него может зависеть совместимость разрабатываемого Вами программного обеспечения.

Мы решали этот вопрос, когда несколько лет назад выполняли русификацию мощного текстового редактора "THE LAST WORD TWO". Примененный там подход мы изложили в разработке, посвященной этой программе, но поскольку не все ее имеют, попробуем осветить его здесь.

Во-первых, Вы конечно знаете, что русификацию можно проводить двумя основными методами. Первый основан на использовании символов графики пользователя. Эти символы имеют номера со 144-го по 164-ый включительно. Если Вы с их помощью набираете русский текст, то вводите его в графическом режиме (курсор G). Понятно, что 21 символа Вам недостаточно, чтобы задать все буквы русского алфавита (хотя конечно есть способы создания и переключения многочисленных банков UDG, о чем мы еще в свое время поговорим на наших страницах), поэтому приходится использовать и те английские буквы, которые имеют с русскими одинаковое написание, да и вообще ограничиваться русификацией только прописных букв. Стандартов здесь нет и быть не может, поскольку Вы и так ограничены в своем выборе. Проводите замену как вам удобно. Хотя должны сказать, что на заре Синклер-машин в СССР, где-то году в 84-м или 85-м появилась нехитрая программа ABC (неизвестного автора). Мы приводили ее в нашей разработке "Большие возможности Вашего Спектрума". Поскольку за столько лет эта программа стала общераспространенной, то может быть имеет смысл использовать заданные в ней соотношения:

"Q" - "Ы" "D" - "Д"

"E" - "Э" "F" - "Ф"

"R" - "Ь" "G" - "Г"

"Т" - "V "Н" - "Ч"

"U" - "Ю" "J" - "Ж"

"I" - "И" "L" - "Л"

"O" - "У" "С" - "Ц"

"P" - "П" "В" - "Б"

"А" - "Я" "Н" - "Ш"

"S" - "Й" "M" - "Щ"

Совсем другое дело, если Вы проводите русификацию полной заменой знакогенератора, здесь мы уже вторгаемся в поле действия международного стандарта ASCII и для начала маленькая историческая справка.

Набор символов компьютера содержит 256 символов, начиная с нулевого и до 255-го. Стандарт ASCII определяет символы с нулевого по 31-ый как управляющие коды и с 32-го по 127-ой как буквы английского алфавита, цифры и знаки препинания. Символы со 128-го по 255-ый этот стандарт не определяет, разрешая размещать в них графические символы или национальные шрифты. Здесь бы и разместить русский шрифт, как это делается, например в IBM-совместимых и других компьютерах, но для "Спектрума" из этого ничего не выйдет. Дело в том, что К. Синклер воспользовался предоставленной ему здесь свободой и уже разместил начиная со 128-го по 143-ий символы блочной графики, со 144-го по 164-ый отдал Вам в виде символов UDG, а со 165-го по 255-ый использовал для определения токенов ключевых слов, что дает Вам возможность набирать такие слова как LOAD одним нажатием клавиши. Так что в "Спектруме" LOAD - это не слово, а всего лишь один символ (239) и потому это токен, так же и SAVE - это символ 248. Подробности найдете в нашем "Справочнике по программированию в машинных кодах, Том 3 из трехтомника".

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

чтобы используемый Вами принтер тоже мог бы легко переключаться одной командой.

Наиболее распространенными для работы с 8-разрядными компьютерами в СССР являются принтеры ROBOTRON (ГДР) и D-100 (Польша). И в том и в другом реализован стандарт КОИ-7.

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

Код

Англ

Рус

Код

Англ

Рус

64

@

ю

96

фунт

Ю

65

A

а

97

a

А

66

В

б

98

b

Б

67

C

ц

99

с

Ц

68

D

д

100

d

Д

69

Е

е

101

е

Е

70

F

ф

102

f

Ф

71

G

г

103

g

Г

72

Н

x

104

h

Х

73

I

и

105

i

И

74

J

й

106

j

Й

75

К

к

107

k

К

76

L

л

106

l

Л

77

M

м

109

m

М

78

N

н

110

n

Н

79

O

о

111

o

О

80

Р

п

112

p

П

81

Q

я

113

q

Я

82

R

р

114

r

Р

83

S

с

115

s

С

84

Т

т

116

t

Т

85

U

у

117

u

У

86

V

ж

118

v

Ж

87

W

в

119

w

В

88

X

ь

120

x

Ь

89

Y

ы

121

y

Ы

90

Z

з

122

z

3

91

[

ш

123

}

Ш

92

э

124

|

Э

93

]

щ

125

{

Щ

94

t

ч

126

Ч

95

-

ъ

127

"копирайт

"

Если предположить, что кому то из наших ассов удалось или удастся так переработать ПЗУ "Спектрума", что токены будут сделаны "прозрачными", т.е. они как бы есть, но для пользователя их как бы и нет, и удастся привязать русские литеры к верхней половине таблицы кодов ASCII, то тогда имеет смысл привязывать русские буквы к клавишам так, как это сделано на стандартной пишущей машинке.

Английский шрифт - "QWERTY..."

Русский шрифт - "ЙЦУКЕН..."

В этом случае можно было бы без перешивки ПЗУ или без программной перекодировки использовать принтеры EPSON-совместимые или IBM-совместимые, поскольку в них национальные шрифты лежат в верхней половине таблицы кодов.

Товарищ Максимов высказал еще пожелание внести ясность в вопрос стандартизации джойстиков, и он абсолютно прав, вопрос назрел, но поскольку "ИНФОРКОМ" аппаратными вопросами не занимается, то мы предпочли бы выслушать мнение специалистов, а потом его довести.

В одном из прошлых выпусков "ZX-РЕВЮ" мы сообщили, что нашим читателям нужны рекомендации по русификации программы "MASTERFILE 09". Cемя упало в благодарную почву и несколько человек откликнулись. Спасибо им за это.

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

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

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

Товарищ Козлов из г. Сургут любезно поделился собственным опытом русификации МАСТЕРФАЙЛа.

1. С помощью графического редактора "ART/STUDIO" он сформировал набор русских знаков и выгрузил его на ленту (768 байтов).

2. Загрузил его командой:

CLEAR 56559:LOAD""CODE 56560,768

3. Загрузил MASTERFILE 09:

LOAD "MF 09 LEER"

4. После загрузки MF вошел в БЕЙСИК-область из главного меню.

5. Работая в БЕЙСИКе ввел новые строки в программу "MF 09 LEER":

Строка 2:

POKE VAL "23606",VAL"0":

POKE VAL "23607",VAL"60":

GO TO VAL "1"

Здесь указатель набора символов (системная переменная CHARS) устанавливает набор знаков на "Спектрумовский" и выполняется возврат в "MF".

Строка 3:

POKE VAL "23606",VAL"240":

POKE VAL "23607",VAL"219":

GO TO VAL "1"

Здесь CHARS устанавливается на новый набор знаков и выполняется возврат в MF. Строка 4030.

Здесь необходимо поменять операнды во втором операторе SAVE.

4030 ... SAVE "MFcode" CODE VAL "56560",VAL"8976".

6. Выгружается измененная программа на ленту с помощью3

Перед загрузкой программы для работы теперь надо давать прямую команду CLEAR

56559.

Адаптированная таким образом программа позволяет формировать файлы либо русским, либо латинским шрифтом, но не одновременно.

Работать с программой просто. После загрузки Вы выходите из Главного Меню в БЕЙСИК, а там даете прямую команду GO TO 2. Если работать будете с латинским шрифтом или GO TO 3, если с русским.

Примерно так же, используя БЕЙСИК-область произвел изменения и т. Соболев из Москвы. Поскольку он ввел русский знакогенератор через операторы READ и DATA, то его прием может пригодиться тем, у кого нет графического редактора "ARTSTUDIO", хотя конечно работать с ним приятнее, чем набивать 96 строк DATA, и его надо иметь, тем более

что генерация шрифта это всего лишь один процент его богатейших возможностей.

Вот что пишет товарищ Соболев. Он поставил задачу ввести русский шрифт не вторгаясь в машиннокодовую часть программы и использовал для этого возможность МАСТЕРФАЙЛа исполнять БЕЙСИК-программу пользователя нажатием клавиши V в главном меню.

Сначала надо загрузить первый блок программы (mf lader) и прервать дальнейшую загрузку нажатием BREAK. После этого оператором CLEAR изменяется установка системной переменной RAMTOP: 10 CLEAR 56319: LOAD "" Сохраняется эта часть на ленте командой SAVE "mf lader" LINE 10. Запускаем измененный блок командой RUN. Начинает загружаться следующий блок MF 09 LEER. После его загрузки также прерываем дальнейшую работу командой BREAK и изменяем следующие строки программы: 4035 LOAD ""CODE: LOAD""CODE: GO TO VAL "1"

9000 INPUT "(RUS-LAT)-->(R/L?)"; n$: IF n$="r" OR n$="R" THEN POKE 23607,219: GO TO 9050 9010 IF n$="l" OR n$="L" THEN POKE 23607,60: GO TO 9050 9020 GO TO 9000 9050 GO TO 1

Измененную программу записываем на ленту:

SAVE "MF09LEER" LINE 4035

Теперь создадим новый знакогенератор с помощью приведенной ниже программы:

1 CLEAR 56319

5 LET A=10: LET B=11: LET C=12 10 LET D=13: LET E=14: LET F=15 12 LET x=56320 15 READ a$

20 FOR n=1 TO 15 STEP 2 30 LET W = VAL a$(n) 40 LET w=w*16: LET w=w + VAL a$(n+1) 50 POKE x,w: LET x=x+1 60 NEXT n 70 GO TO 15

(Пробелы в строках DATA даны для удобочитаемости. Вам их давать при наборе не

надо).

100

DATA

"0000

0000

0000

0000"

131

DATA

"3C66

060C

1800

1800

101

DATA

"1818

1818

1800

1800"

132

DATA

"0000

CEDB

FBDB

CE00

102

DATA

"6C6C

0000

0000

0000"

133

DATA

"0000

3C06

3E66

3F00

103

DATA

"6C6C

FE6C

FE6C

6C00"

134

DATA

"043C

607C

6666

3C00

104

DATA

"187E

E07C

0EFC

3800"

135

DATA

"0000

6666

6666

7F03

105

DATA

"00C6

CC18

3066

C600"

136

DATA

"0000

7E66

6666

FFC3

106

DATA

"386C

3877

DECE

7B00"

137

DATA

"0000

3C66

7E60

3E00

107

DATA

"1818

3000

0000

0000"

138

DATA

"0018

7EDB

DBDB

7E18

108

DATA

"000C

1818

1818

0C00"

139

DATA

"0000

7C50

6060

6000

109

DATA

"0030

1818

1818

3000"

140

DATA

"0000

C66C

386C

C600

110

DATA

"0066

3CFF

3C66

0000"

141

DATA

"0000

6666

6E76

6600

111

DATA

"0018

187E

1818

0000"

142

DATA

"1300

6666

6E76

6600

112

DATA

"0000

0000

1818

3000"

143

DATA

"0000

666C

7866

5600

113

DATA

"0000

007E

0000

0000"

144

DATA

"0000

0E1E

3666

C600

114

DATA

"0000

0000

0018

1800"

145

DATA

"0000

C6EE

D6C6

C600

115

DATA

"0306

0C18

3060

C000"

146

DATA

"0000

6666

7E66

6600

116

DATA

"7CC6

CED6

E6C6

7C00"

147

DATA

"0000

3C66

6666

3C00

117

DATA

"1838

1818

1818

3C00"

148

DATA

"0000

7E66

6666

6600

118

DATA

"ЗС66

061C

3066

7E00"

149

DATA

"0000

3E66

3E36

6600

119

DATA

"ЗС66

061C

0666

3C00"

150

DATA

"0000

7C66

7C60

6000

120

DATA

"0E1E

3666

7F06

OF00"

151

DATA

"0000

3C66

6066

3C00

121

DATA

"7E60

7C06

0666

3C00"

152

DATA

"0000

7E16

1816

1800

122

DATA

"1C30

607C

6666

3C00"

153

DATA

"0000

6666

663E

063C

123

DATA

"7E66

060C

1618

1800"

154

DATA

"0000

DB7E

187E

DB00

124

DATA

"3C66

663C

6666

3C00"

155

DATA

"0000

7C66

7C63

7E00

125

DATA

"3C66

663E

060C

3600"

156

DATA

"0000

6060

7C66

7C00

126

DATA

"0018

1800

1618

0000"

157

DATA

"0000

C6C6

F6DA

F600

127

DATA

"0018

1800

1818

3000"

158

DATA

"0000

3C66

0C66

3C00

128

DATA

"OC18

3060

3018

0C00"

159

DATA

"0000

D6D6

D6D6

FE00

129

DATA

"0000

7E00

007E

0000"

160

DATA

"0000

7C06

3E06

7C00

130

DATA

"6030

180C

1830

6000"

161

DATA

"0000

D6D6

D6D6

FF03

После запуска программы командой RUN компьютер сформирует новый знакогенератор и разместит его начиная с адреса 56320.

Выгрузите его на ленту прямой командой SAVE "RUS"CODE 56320,768

В заключение необходимо с помощью какой-либо копирующей программы собрать полученные блоки программы MASTERFILE09 в следующей последовательности: "mf lader" "MF 09 LEER" "RUS" "MF mcode"

Переключение на русский шрифт или наоборот выполняется выбором опции V в главном меню. В ответ на запрос "R/L?" Вам надо нажать клавишу R или L, в зависимости от того, какой шрифт Вам нужен.

Теперь небольшой финансовый вопрос. Многие читатели заметили в мартовском выпуске, что цена на подписку увеличилась на 20 руб. и прислали вопросы - надо ли производить доплату? А некоторые даже и перевели деньги!

Уважаемые товарищи! Если Вы подписались, то ничего вам доплачивать не нужно, что бы мы с ценой ни делали. Это имеет отношение только к новым подписчикам. Мы и дальше может быть будем отслеживать конъюнктуру рынка, но Вы страдать не должны. Единственное, когда Вы можете произвести доплату - это если хотите расширить условия подписки. Например подписавшись на игровое приложение Вы хотели бы получать выпуски целиком - вот тогда пожалуйста, но и то это дело добровольное. Мы выслали первые три выпуска всем в полном составе, независимо от того, кто на какой раздел подписался и дали возможность их оценить.

Теперь у нас будет головная боль как вернуть деньги тем людям, кто прислал по 20 рублей. Может быть Вы учтете их, если будете заказывать что-либо новое, хотя должны предупредить, что до сентября месяца мы новых изданий не планируем. Мы их готовим, но консервируем.

В заключение мы благодарим всех читателей, приславших письма для "ФОРУМа" или по выступлениям "ФОРУМа" и приносим извинения, что очень многим мы не в состоянии ответить, т.к. писем очень много. Но читаем и принимаем к сведению абсолютно все.

До встречи в июне!

ИНФОРКОМ.

79

DATA

"7CC6

C6C6

C6C6

7C00

80

DATA

"FEC6

C6C6

C6C6

C600

81

DATA

"7EC6

C67E

3666

C600

82

DATA

"FCC6

C6FC

C0C0

C000

83

DATA

"7CC6

C0C0

C0C6

7C00

84

DATA

"FC30

3030

3030

3000

85

DATA

"C6C6

C67E

06C6

7C00

86

DATA

"DBDB

7E18

7EDB

DB00

87

DATA

"F8CC

CCFC

C6C6

FC00

88

DATA

"C0C0

C0FC

C6C6

FC00

89

DATA

"C6C6

C6F6

DADA

F600

90

DATA

"3C66

061C

0666

2C00

91

DATA

"D6D6

D6D6

D6D6

FE00

92

DATA

"7CC6

061E

06C6

7C00

93

DATA

"D6D6

D6D6

D6D6

FF03

94

DATA

"6666

663E

0606

0600

95

DATA

"3C42

99A1

A199

423C

162

DATA

"0000

6666

3E06

0600

163

DATA

"0000

0000

0000

000F

164

DATA

"CEDB

DBFB

DBDE

CE00

165

DATA

"0E1E

3666

FEC6

C600

166

DATA

"FCC0

C0FC

C6C6

FC00

167

DATA

"CCCC

CCCC

CCCC

FC06

168

DATA

"7E65

6666

6666

FFC3

169

DATA

"FCC0

C0F8

C0C0

FE00

170

DATA

"187E

DBDB

DB7E

1800

171

DATA

"7C60

6060

6060

6000

172

DATA

"C356

3C18

3C66

C300

173

DATA

"C6C6

CEDE

F6E6

C600

174

DATA

"D6C6

CEDE

F6E6

C600

175

DATA

"C6CC

D8F8

CCC6

C600

176

DATA

"OE1E

3666

C6C6

C600

177

DATA

"C6EE

FED6

C6C6

C600

176

DATA

"C6C6

C6FE

C6C6

C600




СОДЕРЖАНИЕ:


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

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



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

Похожие статьи:
Ликбез - полное описание + полный дизассемблер ПЗУ (часть1).
Спаситель - Мир так устроен что что-то, где-то, когда-то должно страдать.
Вступление - здесь будут опубликованы новости пришедшие к нам из различных уголков компьютерного МИРА.
Обратная связь - контакты редакции.
Авторы - только три счастливчика получат второй номер газеты одни из самых пекрвых!

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