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