Deja Vu #05
31 мая 1998
  Пресса  

Тема - Теория журналостроения.

<b>Тема</b> - Теория журналостроения.
SoundTrack: (FROSTBITTEN) BY DX-69 020498 
__________________________________________


(C) dAn!!L/PGC/BDA
__________________________________________


          ТЕОРИЯ ЖУРНАЛОСТРОЕНИЯ


   Эта статья предназначена тем, кто жела-
ет попробовать выпускать собственный  жур-
нал, но не знает с чего начать...
   Перво-наперво нужно сильно "загореться"
ибо без желания, сделать  классный  журнал
просто невозможно. Сразу необходимо отста-
вить финансовую сторону на второй  план  и
фанатично взяться  за  дело! Дело  это  не
столь трудное,сколько кропотливое. И,преж-
де чем "вселиться"  в  любимый  ассемблер,
нужно сесть и подумать над некоторыми  ас-
пектами этого дела. Можно даже  на бумаге,
для себя,расписать каким должен быть "мой"
журнал, все до мелочей.
   Не будем здесь касаться  информационной
стороны, а остановимся чисто на  техничес-
кой.
   Для более глубокого  понимания  дела  я
немного приоткрою структуру  внутренностей
журнала DEJA VU, а читатель мысля, уже бу-
дет вникать в суть дела и "мотать на ус",а
где-то, может быть, его осенит идея и тог-
да, возможно, родится проект нового  изда-
ния, которое несомненно будет рулезным.
   Итак, начнем...

                Интерфейс


   Объяснять, что это такое, наверное, нет
смысла. Главное - понять, что здесь  нужно
делать не как хочешь ты, а как хочет юзер!
И даже больше. Нужно пытаться удивить юзе-
ра и создать такую "изюминку", которую  он
полюбит, зауважает и жить без нее не  смо-
жет! Не стоит объяснять,что чем больше де-
вайсов будет опрашиваться, тем лучше. При-
чем, сразу необходимо отказаться от выбора
управления. Все должно опрашиваться парал-
лельно: джойстики, клавиатура, мышь и т.д.
Не забываем тестировать "железо" перед оп-
росом мыши на наличие оного девайса.
   Обязательно обратить  внимание  на, так
называемый, "автоповтор" функции при нажа-
тии и не отпускании  FIRE. Поясняю, прежде
чем выполнить выбранную пользователем фун-
кцию, проверьте, а отпустил ли юзер клави-
шу FIRE? Надеюсь понятно,что я имел ввиду?

               Память (RAM)


   Возникают два вопроса: во-первых, объем
памяти, на которую рассчитывать  оболочку;
во-вторых, распределение памяти.
   Если вы поддержите 48kb, то  вас  никто
ругать не будет,но и разогнаться до каких-
то высот просто  невозможно. 128kb - стан-
дартная конфигурация, которую можно и нуж-
но поддерживать! Тем более, что это фирме-
ный стандарт! Если вы  чувствуете  в  себе
силы поддержать память > 128kb, то, конеч-
но, это хорошо и это надо делать, будь  то
RAM-драйв, или просто для хранения жизнено
необходимых данных.
   Опять же, избавьте юзера от выбора нуж-
ной ему конфигурации. Все тестируется  ав-
томатически и на теневом уровне, незаметно
для пользователя.
   Распределяйте память таким образом,что-
бы можно было хранить  текст  максимальной
длины в непрерывном виде!
   Пример из DEJA VU:


   В 48-ой с адреса #6000 "сидят" данные и
объектный код до адреса 38000. С 38000  до
#FFFF содержится буфер, в который грузится
текст (без графики).
   Музыка - BANK 1. Графика - BANK'и 3, 4,
6. В BANK'е 7 - стандартно 2-ой экран, да-
ле данные: заставка, спрайты, блочная гра-
фика и т.д.
   Время-критичные процедуры размещайте  с
адреса #8000 и ниже. Лоадер, текстовые со-
общения, фонт, переменные и т.д. размещай-
те до адреса #8000!
   Не забываем про режим IM2, вектор  обя-
зательно должен находиться в диапазоне  от
#80 до #BF. Также помним  про  257  байтов
для машин с нестабильной шиной данных.
   В расширенной памяти "сидят"  различные
"раскрюнченные" процедуры и графика (фрей-
мовый скроллер, screen saver,спрайты стре-
лок и т.д.).

              Формат текста


   Стандартная ГОСТ - альтернативная коди-
ровка с "вживленными" управляющими кодами.
Управление цветом (код 16), далее байт ат-
рибутов; спрайты (код 15), далее параметры
спрайта: координаты, длина и т.д. При под-
держке сохранения текста на диск не  забы-
ваем его "высушивать".

                  Музыка


   Как душе угодно, но, если вы будете всю
музыку компилировать в PT 3.01, то  доста-
точно использовать один плейер для  любого
музона STP, PT, ST! При  подгрузке  текста
музыку "глушите". И вообще,дайте пользова-
телю возможность включать и выключать  му-
зыку! Новая мода - это возможность  выбора
любой мелодии и отсутствие привязки музыки
к конкретному тексту. Кстати, если  у  вас
маловато музыки, а информации  достаточно,
то можно выпустить журнал хоть с 3-мя  ме-
лодиями.
   Как же это  делается? А  очень  просто!
Есть некая процедура (назовем ее MUZNEXT),
при ее вызове грузится следующий  музон  в
соответствии с табличкой ( причем,если му-
зыка отключена, то грузить и не надо - за-
чем время тратить и драйв изнашивать;)). А
табличка, примерно, такая:

        SONG1 DEFB SEC1 TRK1 SIZE1
        SONG2 DEFB SEC2 TRK2 SIZE2
        SONG3 DEFB SEC3 TRK3 SIZE3
        DEFB 255 ;маркер конца таблицы

   Подставляем данные в соответствии с ка-
талогом диска: трек, сектор, длина.

                  LOADER


   Главное, чтобы грузилось! Но turbo-loa-
der все же приятней!
   Обязательно инсталлируем лоадер на дис-
ковод, с которого запустили журнал (A,B,C,
D). И еще, знайте, что не все лоадеры  ра-
ботают в режиме турбо!
   Если опрос ошибок TR-DOS не производит-
ся, то хотя бы постарайтесь, чтобы при на-
жатии BREAK или при отсутствии диска в ди-
сководе журнал не повис!

                  VIEWER


   80% успеха! Самое  главное - как  можно
быстрее. Уменьшайте любыми способами  вся-
кие мерцания и подергивания. И  уж  совсем
ЛАЖА - это когда в 128 режиме текст пропе-
чатывается полностью на  глазах  у  юзера!
Включайте альтернативный  экран. Если  ин-
терфейс по принципу "стрелка",то позаботь-
тесь об опросе "горячих" клавиш!

                   FONT


   Читабельный! 32, а лучше 42  символа  в
строке. 64 символа - в исключительных слу-
чаях  и  только  для  листингов. Избегайте
всяких извращений в фонте (готический,нак-
лонный, пропись).

             Упаковка данных


   Чем сильнее закрюнчим, тем больше "впи-
хнем" на диск - это и козе понятно! Найди-
те такой упаковщик, который позволяет сох-
ранять сжатые  файлы  без  депакера. Храня
данные без депакера, вы, во-первых, услож-
няете взлом; во-вторых, экономите около  1
сектора на каждый файл (а их у вас много)!
Также смотрите на  время  распаковки - чем
быстрее, тем лучше. На  Scorpion'ах  можно
включать  турбо: LD A,#7F; IN A,(#FD). От-
ключается так: LD A,#1F; IN A,(#FD).


              zE Оптимизация


   Что такое  оптимальный  код? Это, когда
код занимает мало места и быстро работает.
Используйте таблички. Например, нет  необ-
ходимости для каждого текста  писать  свой
лоадер! Делаем так:

    CALL LOADER
TAB DEFB SEC,TRK ;трек и сектор для текста
    DEFB SEC,TRK ;трек и сектор для музыки
    DEFB 13      ;банк
    DEFB SEC,TRK ;трек и сектор графики
    DEFB 14      ;банк
    DEFB SEC,TRK ;трек и сектор графики
    DEFB 255     ;маркер
    ...          ;продолжение программы

   Поясняю. Вызываем loader, на стеке отк-
ладывается адрес  возврата  равный  адресу
TAB. Первым делом снимаем адрес со стека и
в соответствии с табличкой  грузим  файлы,
пока не доберемся до маркера. Кстати, BANK
для текста  всегда #10, для  музыки - #11,
поэтому в табличке можно не указывать, ло-
адер сам "знает" куда их грузить.
   Ищем адрес по которому находится 255  и
передаем управление на ADR+1(JP (IX+0) или
JP (HL)). Таким образом можно, например, и
окна рисовать. Вызываем WINDOW, а со стека
снимаем адрес по которому хранятся коорди-
наты и текст на печать!
   Не тратьтесь на задание переменной:

  Стандартно               Оптимально


BYTE DEFB 0              MET LD A,0
     LD A,(BYTE)             LD A,B
     LD A,B                  LD (MET+1),A
     LD (BYTE),A             ...
     ...


   И вообще, дайте себе установку на опти-
мизацию, думайте, как бы  еще  сэкономить!
Ведь, как гласит народная мудрость - любую
процедурку можно сократить, как минимум на
1 байт.

              Ловля глюков!


   Еще одна народная мудрость  гласит, что
в любой программе есть глюк. От  себя  до-
бавлю, если глюков нет, то сама  программа
есть большой глюк! И еще мысль, каждый вы-
ловленный глюк порождает два других,но это
уже спорно!
   Что делать с глюками? Здесь гораздо ин-
тересней, чем на рыбалке! Сначала глюк на-
до искать, а потом его ловить. Хорошо  бу-
дет "клевать", если ловить не на той маши-
не, на которой писалась  программа. Напри-
мер, пишешь на Scorp'е - лови на PROFI;пи-
шешь на PROFI - лови на Pentagon'е и т.д.
   Если глюк найден,а выловить его не уда-
ется,то можно попробовать обойти его прог-
раммно, хотя это может породить новые глю-
ки!

                 RELEASE!


   Это, конечно, самое приятное в журнало-
мейкерстве! Когда журнал готов и все глюки
выловлены, самое время собраться всем, кто
принимал участие(в любом смысле этого сло-
ва). Если зимой, то на квартире; летом -на
природе. Хорошенько затариться всем  необ-
ходимым и осуществить самым диким  образом
RELEASE! Если это первый номер, то сие на-
зывается  презентация! При  этом  процессе
нужно произносить приятные  слова  в  свой
адрес, т.к. это благотворно влияет на  пи-
щеварение. И только после RELEASE  вы ощу-
тите великую пользу журналостроения и  бу-
дете себя чувствовать прекрасно, по  край-
ней мере до утра... ;)



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

Аперативчик - О новой оболочке журнала.

Аперативчик - Вступление и авторы.

Тема - DIGITAL звук, как он есть (проигрыватель .wav файлов).

Тема - Проект спасения и развития сцены.

Тема - Устав ассоциации AMAZING SOFT MAKING.

Тема - Теория журналостроения.

Капля припоя - GENERAL SOUND: PLUG & PLAY.

Капля припоя - Профессиональная обработка звука на PC.

SOFTWARE - О новинках из Самары: MAX SOFT SCREEN PACKER v1.4 , МИНЕР, FILE COMMANDER v4.04, SLIDE SHOW,WALKER demo,S-LIGHT BBS, S-TERMINAL v1.0, LOGO.SYS (для PC).

SOFTWARE - Описание проходилка игры "Операция Р.Р."

SOFTWARE - Новинки демосцены: HAPPY NEW 1998 YEAR, BURDENSOME, DREAM, CONDEMED, CONFUSION.

CODING - Процедуры: FULL SCREEN SCROLL UP, Сломанный телевизор.

CODING - Использование стека при разрешенных прерываниях.

CODING - О паковщике MS-PACK.

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

ANOTHER WORLD - Мультимедия - синтез трех стихий.

ANOTHER WORLD - AMIGA vs PC.

Доска почета - Интервью с PROGRESS.

Доска почета - О группе ETERNITY INDUSTRY.

Доска почета - О международном фестивале ART COMP-98.

Доска почета - Опpеделения принятые на демосцене и спектруме.

Доска почета - использование мышки в журналах и другом софте (о криворуких кодерах).

Доска почета - о способе конверсии триколорных картинок для спектрума.

Доска почета - такой ли рулез Amiga? Пц для пцшников, а спектрум для спектрумистов?

Семь и 1/2 - Армейские маразмы.

Семь и 1/2 - Программирование снизу вверх на искосок.

Семь и 1/2 - Инструкция по технике безопасного секса.

Семь и 1/2 - Особенности национального рулеза.

Семь и 1/2 - отчет с тусовки Кемеровских спектрумистов и сохдателей журнала Deja vu.

Проба пера - Приключения Винни Пуха часть 2.

Проба пера - Фэнтази и фантастика.

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

Новости - новый журнал AMIGA RULES.


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

Похожие статьи:
Начинающие писатели - Как мы с FLASH'ем ходили за кукурузой.
News - Ldir и Чапай выпустили-таки газету, Dissonator приезжал на побывку, вести от Nuts.
Железо - модемные фильтры для телефонных линий.
WINSOFT NEWS - Сенсация! - всеобщий сбор системных операторов. ZX-NET в виде схемы передачи информации. Как возникла идея создания этой газеты.
Вступление - новые и игры: Черный Ворон, SEA QUEST.

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