Spectrofon #18
22 марта 1996

Система - советы начинающим программистам.





   Сегодняшний разговор мы посвятим  начи-
нающим программистам. Хотя, думаем, в  ни-
жепубликуемых  рекомендациях    начинающим
кое-что интересное найдут и  те,  кто  уже
давно  занимается    компьютерами    марки
"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, Диалог,  Сер-
веко находятся в диапазоне от  хороших  до
крутых. Некоторые экземпляры дискет  могут
быть  хуже  данной  оценки  в  силу   неи-
деальности нашего мира.

                 ──════──



Другие статьи номера:

Конструктор - Для владельцев модемов статья о способах улучшения связи.

Экспертиза - впервые в нашей стране представлена и рассмотрена "The Bards Tales" - полноценная семнадцатиуровневая ролевая игра.

Фантазия - компьютерная новелла по игре "Captain Blood".

Обзор - прилив новых игр: Last Battle, The turn or xor'em all, Tank War, Приключение Винни Пуха, Войны Эмбера, Open it!

С миру по биту - почта журнала и продолжение дискуссии о Спетркуме и вокруг него.

С миру по биту - Хакеры и Авторы не только люди: Взгляд изнутри.

Система - советы начинающим программистам.

Конструктор - Несколько полезных доработок для Спектрума.

Конструктор - оригинальная простая схема АЦП.

Премьера - исправленная и переработанная демонстрационная версия игры "Prince of Persia".

Реклама - реклама и обьявления.


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

Похожие статьи:
Проходилка - прохождение LAST NINJA 2.
Editorial - Семь лет журналу, четырнадцатый номер. Магические цифры.
BBS - список станций BBS ZXNet.

В этот день...   16 декабря