Insanity #06
26 мая 2000

Rocky-Code - Cyber Jack рассказывает как стать крутым кодером.

┼───-───────────────────────────────────────-──┼
|             Хочешь кодить - кодь!            |
┼─-───────────────────────────────────────────-┼
┼■ (yberJa(k^lfg
| 
                                   'Trust me...'
                                         Pandora

  Данной  статьей  я  хочу  хоть  как-то  помочь
начинающим  кодерам. Пока все, что печатается на
эту   тему   в   электронной   прессе,  либо  им
непонятно,  либо полный бред. В качестве первого
заметки  в  Born_Dead'е,  в  качестве  второго -
Оптрон  и  иже  с  ним.  Так  как  себя я считаю
недалеко  ушедшим от rocky-стадии, то мысли мои,
надеюсь, будут новичкам хотя бы слегка понятны и
может   быть   даже  интересны.  Нормальному  же
кодерскому   люду  прочтение  данной  статьи  не
только не представляет никакой радости, а вообще
прямо   противопоказано   в   связи  с  наличием
огромного  числа ложных ценностей :) Более того,
максимальную  пользу от этой статьи заимеют себе
те   еще-совсем-не-кодеры,  которые  в  принципе
знают  ассемблер,  но не знают с какой стороны к
нему подступиться...

  Итак,  чувак,  после  долгих  лет  мечтаний ты
наконец-то  взялся  за  ум  и решил стать крутым
кодером.  Выучил  ассемблер,  благо 30-40 команд
асма  не  так то и много даже для тебя, но сразу
же   столкнулся   с   огромными  проблемами  при
реализации  своих  гениальных  идей. В принципе,
нормальные  пиплы  рано или поздно сами до всего
доходят и становятся кем-то на манер Exploder'а,
но... есть нехилый шанс, что пока до тебя дойдет
вся  гениальность асма z80, его примитивизм тебя
зае#$т :) и ты на все забьешь :( А учитывая, что
и  без  тебя  спек  уже почти загнулся, то может
оказаться,  что став великим, как Вася Пупкин, о
котором в каждом Born_Dead'е написано, ты будешь
не  только  великим,  но  и  единственным. Но не
плачь,  представляя  в  своем убогом воображении
годы  упорного  труда,  я тебе помогу достигнуть
нирваны на несколько секунд пораньше. По крайней
мере я на это надеюсь.... 

  Начнем  с  азов...  Ты должен знать АССемблер.
Причем не обязательно знать его как свою фамилию
из  трех букв, вполне хватит если ты будешь ясно
представлять,  что  какая команда делает и зачемэ
то  надо.  Я  после  7  лет  кодинга до сих пори
зредка  заглядываю  в  свою  настольную  книгу,ч
тобы  узнать сколько тактов что делается... Такв
от,   тебе   надо  заиметь  каку-нибудь  книгу.Э
лектронные учебники - это лажа с большой буквы!П
оверь  мне,  когда  твои мозги будут кипеть надз
аумной  рутиной,  то тебе будет в большой обломс
брасываться,  искать свой 'учебник', искать то,ч
то  тебе  надо, читать и возвращаться обратно ва
см. С обычной книгой все проще - замусоленностьс
траницы    прямо   пропорциональна   количествус
одержащейся на ней полезной информации. Поэтомуи
щи  что-нибудь  типа  Инфоркомовских  книг  илиП
итерских   'Как  написать  игру  на  асме'  или'
ZX-Spectrum для чайников и кодеров'... 

  Поверю  тебе  на  слово,  что асм ты знаешь...
Теперь   перейдем   к   монстру,  который  будет
поглощать  все  твое свободное время в ближайшие
годы - к ассемблеру, который программа. Надеюсь,
все  уже-кодеры вняли моему совету и не дочитали
до  этих  слов,  ибо  большинство  из  вас после
последующей  'ереси'  :)  могут  вполне лишиться
своего  хрупкого  душевного  равновесия... Итак,
асм  как  прога.  Поверь мне, несмотря на 18 лет
существования   спека   как   кодерской  машины,
выбирать  особо  не  из  чего.  Сразу забудь про
Gens,  Zeus и подобные буржуйские извращения под
48К_only.   Не  иди  на  поводу  неандертальских
традиий 'one_string - one_command', это наследие
вышеперечисленных    заграничных   маздаев.   Не
оглядывайся  на массу кодеров, использующих свои
Tasm'ы,  Masm'ы,  Alasm'ы  и  Xas'ы. Просто сила
привычки  уже не позволяет им скинуть этот груз,
намертво вросший в их руки и мозги. Основная (но
не единственная) слабость асма как раз заключена
в  том,  что  исходник  получается  _ooooоoчень_
длинный  из-за  малой  емкости команд. Используя
только   что   названные   'асмы'  в  работе,  в
завершении   проекта   ты   получишь   километры
исходников. Оно тебе надо? Также надо учитывать,
что все эти 'асмы' отличаются полным отсутствием
редактора  (ладно  хоть  номера  строк писать не
надо,  гы  :),  дикими тормозами почти во всем и
вообще... 

  Итого  я  могу  предложить тебе лишь два асма,
боле-менее   подходящие  для  _удобной_  работы.
Причем  для  новичка,  которым  ты  и являешься,
идеально  подходит  Zx-Asm.  Не новый страдающий
массой  ненужных  наворотов раздутый до полдиска
3.10,  а  старый  добрый  3.0 и слегка постарше.
Тормознутый,  с  парочкой  фатальных  глюков, но
удобный!, маленький и очень многое позволяющий.
    Между прочим, размер имеет значение :) Когда
    ваша    программа    в   сотый   раз   будет
    сбрасываться или зависать, тоскливо смотреть
    на   минутную   загрузку,   сопровождающуюся
    глупыми   надписями   типа   'давай  похерим
    рам-диск,    а?'    становится   более   чем
    утомительно...
Правда,  в  3.10  есть  пара  фишек, убыстряющих
набор   мнемоник,   но...   раз   уж   ты  начал
задумываться   над  этим,  то  зачем  тебе  этот
тормоз,  если  есть  Storm/X-Trade!!! Да, это не
идеальный  асм  (к  сожалению), но он однозначно
самый  удобный  и  быстрый! Весьма затруднтельна
сборка  проектов  для 128К на таком же компе, но
это  вполне решается наличием расширенной памяти
(особо  по Пентагоновскому стандарту). К Storm'у
не  сразу  привыкаешь,  многое  в  нем для спека
очень    нетипично.    Но!   после   неизбежного
привыкания,   перейти  в  другой  асм  абсолютно
невозможно  :( [говорю как человек, в свое время
мучащийся  в  Alasm'e и Zx-asm'e] Это наибольший
недостаток, который нашел я :)

  Поверь  мне,  что  столько  базаров  по поводу
выбора   асма   полностью   оправдано.  Потратив
полгода  на  страдание  в каком-нибудь Tasm'e до
тебя это дойдет, но поздно... 

  С   выбором   дебаггера   у   тебя  сложностей
возникнуть  не должно, ибо старый STS до сих пор
вне  конкуренции.  Из  подобного  рода  программ
видел  лишь  demo-версию  дебаггера  от  CIC'ов,
которая  пока  именно  демо... Единственное, над
чем  ты  можешь  поломать  голову,  так  это над
версией.  Знающие  люди  пользуются 5.1 и 6.2 :)
Пятый  более  быстрый,  но  работает  _только_ с
одним  флоповодом,  имеет  пару  кнопок Reset на
клаве ('E' и 'D') - я говорю о опущенной версии,
которую  ты будешь использовать вместе с асмом -
а  шестой хотя и по-навороченнее будет и в банку
полностью  помещается,  шибко тормозит, не хочет
работать  в  окне  и более сложно подключается к
асму.  Но  в  принципе  -  'те же яйца, только в
профиль' (c) Ze_Pagan.

  В  зависимости  от твоей будущей специализации
как  кодера (demo, game, system) понадобится еще
кой-какой   софт.   В  принципе,  это  уже  твои
проблемы   :)  Хотя  на  99%  уверен,  что  тебе
понадобится еще граф. и муз. редакторы. Выбирать
gfx-editor  особо  не из чего (убогая ArtStudio,
EDP_demo,  BGE_1.7),  да  и music-studio тоже :)
Выбор тут побогаче (PT_3.4f, PSC_1.3, SQ_tracker
etc), и зависит от наличествующей музы... 

  Доносящиеся до меня крики - 'а как кодить-то?'
принуждают   меня   схватиться  за  свою  глупую
голову. Memory_limit на статью почти исчерпан, а
к самому главному я так и не подошел :) Виновато
смотрю в потолок... Да, видимо сегодня на одного
кодера  больше не станет :( Обещаюсь в следующих
статьях  не быть таким голословным. Рассматривай
эту  статью  как  первый  шаг в своем длительном
метаморфировании   в  славного  кодера.  А  пока
размышляй,  собирайся  с  мыслями и готовься - в
следующем   Безумии  мы  с  тобой  будем  делать
игру... 


P.S. Хей, народ! Поверь мне на слово :), писал я
это не потому, что меня вчера катком раскатало и
стал  я  настоящим сценером - плоским и длинным.
Просто  надо же кому то воспитывать подрастающее
кодерское поколение - хотя бы наше пермское...

P.P.S. И вообще, основное и единственное, что ты
должен  вынести для себя из этой статьи, так это
то,  что  асм  на  деле очень простая и приятная
штука.  Поверь  мне,  сбросы/зависоны появляются
лишь  в  очень  крайних случаях и при нормальной
внимательности   легко   избегаются   (хотя  для
новичков  внимательность  нетипична :). Поверь в
это,  и  асм  повернется  к  тебе своими лучшими
сторонами...
                     Учись читать между строк...




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

Похожие статьи:
BBS - список станций BBS ZXNet.
Непроверенные сведедения - Луганская группа закончила написание игры "Смагли 3". Создание спектрумовской сети SPbZXNet в Питере.
Новости ПО - игры: Worm World, Dizzy "A", Clickmania. Софт: AON v0.5, E-mage Work Station, PIformat v2.1, Sprite Editor v1.01. Журналы: Adventurer 10, RUSH 2.

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