Сегодняшний разговор мы посвятим начи-
нающим программистам. Хотя, думаем, в ни-
жепубликуемых рекомендациях начинающим
кое-что интересное найдут и те, кто уже
давно занимается компьютерами марки
"ZX-SPECTRUM". Передаем слово автору
статьи.
(c) Cнигирев Юрий
СОВЕТЫ НАЧИНАЮЩИМ
Начинал я как и многие поклонники ZX с
магнитофонного "ленинградского" варианта
ZX, который сейчас пылится на полке в по-
луразобранном виде, потому что пару лет
назад я собрал более современную модель -
Пентагон 128. Вообще, надо сказать, что в
последнее время новое поколение поклонни-
ков ZX начинает свое общение сразу с моде-
ли 128К. Это, конечно, хорошо, но тем не
менее часто приходится встречаться с та-
ким явлением, когда человек, совершенно не
разбираясь в архитектуре компьютера,
структуре адресного пространства, конфигу-
рации портов, сразу пытается что-то напи-
сать самостоятельно, сделать свой загруз-
чик, написать скроллер и т.д.
Хотелось бы дать некоторые рекоменда-
ции молодым программистам. Речь пойдет об
интересных и малознакомых вещах.
1. 50% успеха программного продукта зави-
сит от красивой заставки и красивого шриф-
та. С красивой заставкой все понятно. Что
же понимать под красивым шрифтом? Основны-
ми параметрами красивого шрифта являются:
- хорошая читаемость (особенно важна для
текстовых игр);
- постоянство линейных размеров (одинако-
вая ширина букв в точках, одинаковая высо-
та букв одного регистра);
- буквы ни в коем случае не должны сли-
паться (это значит, что в матрице всех
букв один столбец - самый левый или самый
правый - и одна строчка - самая верхняя
или самая нижняя - должны содержать пога-
шенные биты);
- постоянство толщины линий;
- лишних элементов не должно быть.
Для матрицы 8x8 точек наиболее удачным
с моей точки зрения является шрифт, выдер-
жанный в стиле "BOLD - Art Studio" из
стандартного. В нем придется подправить
только буквы "М", "W", "Q", "m", "w", циф-
ру "4", знаки "(c)", "@" и "$".
2. Сильно портят впечатление от програм-
много продукта орфографические ошибки.
Одна из наиболее распространенных - ан-
глийское слово HACKER. Запомните - по-рус-
ски HACKER пишется ХАКЕР - с одной буквой
"К"!!! Поясню - это слово заимствовано из
английского языка. Слово HACKER происхо-
дит от HACK. Подобно этому слову мы из ан-
глийского языка заимствовали несколько -
BLOCK - БЛОК, DOCK - ДОК, DOCKER -
ДОКЕР... Не трудно заметить - в них одна
буква К. Если уж на то пошло, давайте раз-
берем это слово по составу: ХАК - корень,
ЕР - суффикс. Слово же ХАККЕР никак не
разбирается, суффикса КЕР в русском языке
не существует. Кто все-таки не верит - об-
ращайтесь в МГУ на филологический фа-
культет, там вам все объяснят.
"S": Пожалуй, здесь стоит прокомментиро-
вать объяснения уважаемого автора. Те, ко-
му неинтересны вопросы словообразования,
могут пропустить наш комментарий.
Дело в том, что используемый в качес-
тве доказательства разбор слова "ХАКЕР" по
составу - не убедителен. Поскольку слово
"ХАККЕР" - можно разложить и так: ХАК -
корень, К - суффикс, ЕР - суффикс. И тог-
да получается все гладко и понятно; и ар-
гументы автора статьи становятся бес-
сильны. Другое дело, что все новые слова,
которые появились в русском языке в пос-
ледние десять лет - образованы от англий-
ских и часто просто как слышатся, так и
пишутся. Весь этот компьютерный "новояз"
как-то: "апгрейд", "хакер", "кодинг" и пр.
должен был обтереться и устроиться в на-
шем языке. В то время, когда эти слова
входили в наш повседневный обиход (пос-
кольку уж мы крепко связаны с компьютера-
ми) - их нельзя было найти ни в одном сло-
варе. Теперь уже кое-что, например
"ХАКЕР", стало появляться и в словарях и в
неспециализированной литературе. В конце
концов со словом "ХАКЕР" разобрались. Да,
действительно это слово во всех словарях
пишется с одной буквой "К". Но многие, по
старой привычке, продолжают писать его с
двумя "К". Мы относимся к этому снисходи-
тельно в силу приведенных выше объяснений.
Надеемся, что все образуется. Так что это
не страшно. Можно вспомнить, что город Ва-
вилон во всем мире называется Бабилон, а
мы как привыкли, так и говорим. Просим
прощения за это небольшое отступление...
3. Очень много ошибок в текстах на англий-
ском языке, как орфографических, так и
грамматических. Совет - пишите по-русски
или изучайте хорошенько английский.
4. Сейчас музыкальные сопроцессоры уже не
редкость, так почему же наши программисты
до сих пор не возьмут за стандарт ис-
пользование возможностей "музыкалки"?
5. Перед загрузкой экранного файла или де-
компрессией закомпрессированного экрана в
загрузчиках, не забывайте занести в об-
ласть атрибутов нули, иначе картинка появ-
ляется на экране постепенно, а не мгновен-
но.
6. При написании программ поддерживающих
принтер помните, что самые распространен-
ные интерфейсы принтера у нас в стране это
LPRINT III и интерфейс на ВВ55, по этому
предусмотрите программную поддержку как
одного, так и второго.
7. При создании программ с отгрузкой поло-
жения необходимо по возможности (а это
почти всегда возможно, тем более в режиме
128К) предусмотреть отгрузку положения в
память, чтобы не гонять лишний раз диско-
вод и не тереть диск.
8. При отгрузке на диск предусмотрите воз-
можность перезаписи файла на тоже место
при совпадении имен с запросом Overwrite?
или Переписать?
9. Если программа не идет в режиме 128К,
то организуйте программную настройку пор-
та 32765 на требования программы, чтобы не
приходилось сбрасывать компьютер в режим
48К, набирать RANDOMIZE USR 15616.
10. При проверке наличия KEMPSTON
JOYSTICK, надо сравнивать значение порта
#1F (d31) с нулем, предварительно погасив
5 младших бит в считанном слове.
Т.е. КEMPSTON реализован в том случае,
когда три старших бита при любом положе-
нии джойстика сброшены.
11. Одна из самых грубых ошибок возникает
при создании загрузчиков в машинных кодах
через процедуру #3D13 (d15635), которая
проявляется в том, что если игрушку (либо
другую программу) с таким загрузчиком раз-
местить далее середины диска, то по проч-
тении N-ного количества секторов, головка
дисковода срывается с места, быстро бежит
к центру диска, с сильным треском упирает-
ся в шасси дисковода, далее бежит к нуле-
вому треку, возвращается на исходную пози-
цию и дочитывает оставшийся кусок файла.
Приходится записывать такие программы в
начало диска, а иногда я исправляю загруз-
чики. Как этого избежать?
Я знаю два пути: первый - более слож-
ный - писать собственный загрузчик через
прямое обращение к микроконтроллеру КР
1818 ВГ93 (через точку входа #3D2F ), вто-
рой - самый простой найденный мною самос-
тоятельно, заключается в том, что процесс
загрузки файла осуществляется не сразу од-
ним куском, а порциями (эксперименты пока-
зали оптимальное значение в 50 секторов
или менее) поясню на примере:
START LD B,172 ;число секторов
LD C,#05 ;чтение
LD DE,(23796);текущие дорожка/сектор
LD HL,25000 ;адрес загрузки
CALL #3D13
RET
Оптимизированный загрузчик (без треска
и оторванных головок):
START LD HL,25000 ;адрес загрузки
СALL M1
LD HL,25000+50*256
CALL M1
LD HL,25000+2*50*256
CALL M1
LD HL,25000+3*50*256
LD B,22 ;оставшиеся сектора
СALL M2;
RET
M1 LD B,50
M2 LD C,#05 ;чтение
LD DE,(23796);текущие дорожка/cектор
СALL #3D13
RET
Может быть это и не ново, но даже пос-
ледние дисковые версии бывают с описывае-
мым программным дефектом.
Программу с таким загрузчиком смело
можно записывать хоть в самый конец диска,
все будет О.К., тем не менее каждую прог-
рамму я проверяю индивидуально - самоуве-
ренность иногда может обернуться крупной
неудачей. На сегодня все программы с та-
ким загрузчиком работают без проблем.
Еще на тему TR-DOS:
Не многие знают, да и в описаниях по
TR-DOS я не встречал, что командой: RUN
"имя" СОDE, можно одновременно загрузить
блок кодов и запустить его с адреса заг-
рузки, я пользуюсь этой командой для прос-
мотра закомпрессированных экранных файлов
на диске, не выходя из среды TR-DOS.
В отличии от многих пользователей ZX, я
запускаю файл "boot" не командой LOAD или
RUN, а командой POKE, так как она ближе
всего расположена на клавиатуре к клавише
ENTER, это позволяет более быстро манипу-
лировать с клавиатурой.
Экспериментально было замечено, что
дискеты дольше держат запись, если их фор-
матировать непосредственно в среде TR-DOS,
или в программе HC, остальные дисковые
утилиты дают худший результат ( DCU, ADS,
PHT ). Кто не верит - отформатируйте один
диск в утилите, например в DCU, а другой в
TR-DOS, запишите их полностью, положите на
полку и через недельку или месяц про-
верьте в той же DCU. Диск со стандартным
форматом читается гладко, без рывков, диск
же от DCU проверяется с паузами, треу-
гольники могут и не изменить цвет, но про-
верка такого диска почему-то страдает нес-
табильностью.
Дискеты с маркировкой ИЗОТ, Mini Disc,
Comp Disc, Tandy - очень неприличного ка-
чества, даже на импортных дисководах (в
том числе TEAC ) и на хорошо отлаженных
контроллерах дают сбои, их лучше у себя не
держать.
Диски SIGMA, BOEDER, TUNGSRAM, SKC,
MAXI DATA среднего качества, иногда дают
сбои.
Диски MEMOREX, SONY, BASF (красный) -
хорошего качества.
Диски FIRST, BASF (синий), MAXELL - са-
мые крутые, даже на дисководах низкого ка-
чества и плохо отлаженных контроллерах
дают наилучшие результаты.
Советские диски: ГМД-130, Диалог, Сер-
веко находятся в диапазоне от хороших до
крутых. Некоторые экземпляры дискет могут
быть хуже данной оценки в силу неи-
деальности нашего мира.
──════──