01 февраля 2001 |
|
СОЗДАНИЕ БАЗЫ ДАННЫХ ДЛЯ BLACK CROW VIEWER (С) 2000 Макс ----------------------------------------- Хе, какая-то традиция получается с по- дарками оболочек от меня. Как вы, вероят- но, помните 2-й номер "Вороны", где я по- дарил всем желающим свой miniWindoWs, ко- торый не смотря на его убогость, имел не- который успех у программистов - я видел в работе своё детище в нескольких програм- мах. Надеюсь, что этот подарок будет так- же кем-то востребован. Если уж такой от- стой, как оболочка "Техт Maker" пользует- ся успехом, то мой "рулез" наверняка со- ставит ему конкуренцию. Виевер (далее - оболочка) предназначе- на для удобного просмотра цветных текстов с графикой при музыкальном сопровождении. Может использоваться для создания хелпов, газет и журналов. Количество текстов ог- раничено физическим размером диска tr-dos или 128-ю файлами. Максимально допустимый размер текста от 65535 до 70000 байт. За- висит это от его сложности. В комплекте с оболочкой поставляется программа-транслятор текста в формат обо- лочки, которая компрессирует последова- тельности байт текста и тем самым умень- шая его физический размер. Под текст в оболочке отведено 64 килобайта (4 страни- цы). Текст можно делать цветным, выводить тремя шрифтами, иллюстрировать. Короче, оболочка журнала почти полностью идентич- на той оболочке, о которой идёт речь. Нравится? Тогда дальше читай... Итак, в "Приложении" есть два кодовых блока - "VIEWER_1.С" и "VIEWER_2.С", ко- торые и есть эта самая оболочка. Сразу же разочарую особо ленивых - такой лафы, как в "ТМ" здесь нет и для получения конечно- го продукта надо будет поработать ручка- ми. Я имею ввиду автоматический компиля- тор бейсик-загрузчика, музыки, текста и оболочки. Но зато я даю больше возможнос- тей. Ограничения тоже есть. Всё-таки я пи- сал эту оболочку для себя, а уже потом решил подарить её публике. Ограничения на использование накладывает не оболочка, а её утилита - программа конвертации текста в формат оболочки: требуется компьютер с расширеной памятью по порту #7FFD (6 бит) до 256 килобайт. Фактически, только обла- датели Пентагонов-256/512 могут использо- вать оболочку для своих целей. Уж так по- лучилось. Начнём с подготовительных работ. Нужно взять текст, набраный в любом текстовом редакторе и отформатировать его по длине строки 31, 41 или 62 символа. Это связано с присутствием на экране скролл-бара, ко- торый занимает одно знакоместо. Потом мо- жете раскрасить текст в Техт Maker`е или в WinWord`е. Для иллюстрирования текста надо применять ТОЛьКО Техт Maker v1.10f, т.к. только этот долбаный редактор ставит в текст токены спрайтов. Сожалею, но при больших объёмах текста его придётся поде- лить на части, т.к. ТМ не может вместить в себя больше 32К. Если хотите выделить в тексте некоторые строки другим по размеру шрифта видом, то надо ставить управляющие токены ТОЛьКО в начале строки, иначе оши- бётся программа-транслятор. Токены смены шрифта: 1 - 32 символа; 2 - 41 или 62. Не удивляйтесь - это так надо. А дело в том, что для всего текста надо заказывать флаг размера (где - читай ниже). Если размер заказан 41 символ в строке, то код 2 бу- дет понят так, что текущий размер строки на 62 символа и наоборот. Как устанавли- вать спрайты по тексту - читайте инструк- ции к ТМ и транслятору. В "Трансляторе" есть опции "Добавить"/ "Вычесть строку", которые призваны ликви- дировать глюки со скролл-баром: в некото- рых текстах может быть следующее "недора- зумение" - прокручивая текст баром до са- мого конца получается, что ручка бара уже упёрлась в нижнюю границу её поля, а пара строк текста ещё не вышла на экран. Быва- ет, что вышли все строки текста, а ручка бара после её отпуска подпрыгивает вверх. Вот с такими глюками надо бороться путём изменения количества строк в тексте. Про- граммно этот глюк не убивается, к сожале- нию... Для музыкального оформления подойдёт любая музыка от любого редактора, включая даже SQ Tracker. Музыка должна быть ком- пилирована под адрес 49152 (#С000) и быть с проигрывателем! Размер файла музыки не должен привышать размер #3000 байт! Для фоновой картинки есть свои требо- вания: её запакованый (без распаковщика) размер не должен быть больше 4096 (#1000) байт! Фоновые музыка и заставки размещены на одной странице: #3000+#1000=#4000 раз- мер страницы Спектрума. После того, как текст готов, перекоди- рован в формат оболочки надо сделать сле- дующее: 1) упаковать полученные блоки программой "HRUST v1.хх", включая и оболочку. При этом всё паковать БЕЗ РАСПАКОВЩИКА!!!! 2) Упаковать фоновую картинку. 3) записать бейсик-загрузчик. 4) следом за ним записать loader (идёт в комплекте с оболочкой в виде листинга. В нём есть пара комментариев и очерёд- ность следования файлов оболочки). 5) записать пакованные без распаковщика две части алгоритма, музыку и screen. 6) записать все пакованные тексты. 7) Каким-нибудь коммандером объединить в единый блок полученные файлы. Всё! Полученная программа не привязана к диску, может работать на любом компью- тере и быть свободно копируемой. Теперь о базе данных на тексты, которые надо соз- дать в ассемблере. Не пугайтесь, там ни- чего не надо кодировать - достаточно ука- зать все параметры окон и текста, отком- пилировать и выгрузить STS`ом на диск. Не следует искать этот листинг в приложении: его там нет, поэтому запиши этот текст на диск, в любом редакторе убери всё лишнее, а затем сконвертируй в формат своего лю- бимого ассемблера. Рекомендую ALASM :) Для наглядности работы оболочки и базы данных я привожу данные для "Чёрной Воро- ны #4". Так будет понятнее, надеюсь... ;(С) 2000 Макс. Данные для журнала ~ВС#4~ ORG #6000 ;алгоритм часть 1 + INCBIN "ВОРОНА_1" ORG #DB00,7 ;алгоритм часть 2 + INCBIN "ВОРОНА_2" ORG #С000,6 ;музыка до #3000! + INCBIN "ВС_SONG";не пакована! ORG #F000,6 ;screen до #1000! + INCBIN "ВС_SCR";запакован! ;---------------------------------------- ORG #В500 ;данные до 2048! ;------ адреса для инсталляции окон ;и таблиц в журнале. DEFW RMENU ;главное окно меню DEFW TSFIL ;size/track/sector DEFW TBASIC ;заголовки прог- ;рамм в приложении ;------ главное меню RMENU DEFB 1 ;строка 0 DEFB 14 ;колонка 1 DEFB 18 ;длина 2 DEFB 12 ;высота 3 DEFB 70 ;цвет окна 4 DEFW 0 ;next окно/#0000 5 DEFW TMENU ;txt menu 7 DEFW SMENU ;jp то progs 9 DEFM "СОДЕРЖАНИЕ"; 11 NOP ;end заголовка TMENU DEFB "ПРОГРАММИСТАМ...",13 DEFB "ОЧУМЕЛЫЕ РУЧКИ",13 DEFB "БЕЛЫЙ ПОПУГАЙ...",13 DEFB "РАСКРУТКА...",13 DEFB "ИГРОТЕКА...",13 DEFB "РАЗНОЕ...",13 DEFB "ПРИЛОЖЕНИЕ...",13 DEFB "выход",0 SMENU DEFB 1 ;=next WindoW DEFW RPROG ;окно "програм." DEFB 0 ;=load txt DEFW Т33 ;описатель текста DEFB 1 DEFW RPOP ;"попугай" DEFB 1 DEFW RRASK ;"раскрутка" DEFB 1 DEFW RGAME ;"игротека" DEFB 1 DEFW RRAZ ;"разное" DEFB 1 DEFW RPRI ;"приложение" DEFB 3 ;=exit то ALASM;) ;------ второстепенные окна RPROG DEFB 6,7,23,9,104 DEFW 0,TPROG,SPROG DEFB "программистам",0 TPROG DEFB "СТРУКТУРА ПРОГРАММ",13 DEFB "СОВРЕМЕННЫЕ ПРОГРАММЫ",13 DEFB "БЫСТРЫЙ SCROLL`ЕР",13 DEFB "ПЕРЕХВАТ IM 1",13 DEFB "ТЕОРИЯ",0 SPROG NOP DEFW Т2 NOP DEFW G28 NOP DEFW Т21 NOP DEFW Т18 NOP DEFW Т7 RPOP DEFB 7,8,23,9,67 DEFW 0,ТРОР,SPOP DEFB "весёлый раздел",0 ТРОР DEFB "ИНТЕРНЕТ-ПОXМЕТОЛОГ",13 DEFB "И ЕГО ПОЛЕЗНЫЕ СОВЕТЫ",13 DEFB "ВЫЙДИ ЗАМУЖ ЗА КОДЕРА",13 DEFB "МОЛОДОЖЁНАМ-2",13 DEFB "АНЕКДОТЫ О ШТИРЛИЦЕ",0 SPOP NOP DEFW Т1 NOP DEFW Т12 NOP DEFW Т15 NOP DEFW Т14 NOP DEFW Т11 RRASK DEFB 8,5,25,8,113 DEFW 0,TRASK,SRASK DEFB "раскрутка",0 TRASK DEFB "SOFT ИЗ ХАРьКОВА",13 DEFB "GLUK RESET SERVICE v5.2" DEFB 13,"ОБЗОР НОВЫХ СИСТЕМОК" DEFB 13,"CRIME SANTA CLAUS-2" NOP SRASK NOP DEFW Т3 NOP DEFW Т9 NOP DEFW Т24 NOP DEFW Т29 RGAME DEFB 8,6,24,10,105 DEFW 0,TGAME,SGAME DEFB "игротека",0 TGAME DEFB "В МИРЕ ~NETHER~",13 DEFB "СЦЕНАРИИ БУДУЩИХ ИГР",13 DEFB "ВПЕЧАТЛЕНИЯ ОТ ВОРОНА" DEFB 13,"SUPER LASER SQUAD",13 DEFB "~ПОТРЯСАЮЩИЙ~ ШЕДЕВР",13 DEFB "ОБЗОР ИГРУШЕК",0 SGAME NOP DEFW Т8 NOP DEFW Т4 NOP DEFW Т20 NOP DEFW Т16 NOP DEFW Т23 NOP DEFW Т31 RRAZ DEFB 10,7,18,9,120 DEFW 0,TRAZ,SRAZ DEFB "разное",0 TRAZ DEFB "INTEL OUTSIDE...",13 DEFB "СТРАШИЛКА...",13 DEFB "ТРИБУНА...",13 DEFB "РЕКЛАМА txt",13 DEFB "РЕКЛАМА gfx",0 SRAZ DEFB 1 ;open neW WindoW DEFW RINT ;"intel outside" DEFB 1 DEFW RSTR ;"страшилка" DEFB 1 DEFW RTRI ;"трибуна" NOP DEFW Т25 NOP DEFW G26 ;графика! RINT DEFB 14,4,25,6,77 DEFW 0,TINT,SINT DEFB "intel outside",0 TINT DEFB "КАК ЗАМУЧИТь WindoWs`95" DEFB 13,"СЕКС ПО ТЕЛЕФОНУ",0 SINT NOP DEFW Т10 NOP DEFW Т13 RSTR DEFB 15,5,24,7,68 DEFW 0,TSTR,SSTR DEFB "ужастики",0 TSTR DEFB "ТНЕ (X) FILES",13 DEFB "СПРАВКА ПО ВИРУСАМ" DEFB 13,"ТЕРМИНАТОРЫ БУДУЩЕГО" NOP SSTR NOP DEFW Т5 NOP DEFW Т6 NOP DEFW Т19 RTRI DEFB 15,5,25,9,105 DEFW 0,TTRI,STRI DEFB "глас народа",0 TTRI DEFB "РАССУЖДЕНИЯ НА ТЕМУ",13 DEFB "ЗАНИМАТЕЛьНЫЕ СОВЕТЫ",13 DEFB "УКРАИНСКИЙ НАЦИОНАЛИЗМ" DEFB 13,"PIDARSOFT. РЕАКЦИЯ" DEFB 13,"ОТ РЕДАКЦИИ",0 STRI NOP DEFW Т17 NOP DEFW Т22 NOP DEFW Т30 NOP DEFW Т32 DEFB 0 DEFW Т27 ;------ окно "приложение" RPRI DEFB 11,3,26,10,86 DEFW 0,TPRI,SPRI DEFB "ПРИЛОЖЕНИЕ",0 TPRI DEFB "GLUK RESET SERVICE v5.3i" DEFB 13 DEFB "BEEPER PROTECT SYSTEM",13 DEFB "для детей ~FIGUS 128~",13 DEFB "игра ~RANA RAMA~",13 DEFB "пасьянс ~ПИРАМИДА~",13 DEFB "~ВИКИНГ~" NOP SPRI DEFS 18,2 ;6*3=18 ;------ заголовки Basic-файлов для прило- ;жения. По 9 байт (с расширением "В"). TBASIC DEFM "GLUK TS В" DEFM "BPSv1.0bB" DEFM "FIGUS128В" DEFM "RANARAMAB" DEFM "Domino В" DEFM "WIKING+ В" ;------ данные для статей Т1 DEFB 0 ;NN music file DEFB 16 ;NN txt files DEFB #FF ;end files DEFB 2 ;41 symbols DEFM "Похметолог";до 16 байт NOP ;end Т2 DEFB 1,17,18,#FF,2 DEFB "СТРУКТУРА",0 Т3 DEFB 2,19,#FF,2 DEFB "В АРХИВ",0 Т4 DEFB 3,20,21,#FF,2 DEFB "СЦЕНАРИЙ",0 Т5 DEFB 4,22,#FF,1 DEFB "ТНЕ (X) FILES",0 Т6 DEFB 5,23,#FF,1 DEFB "Вирусология",0 Т7 DEFB 6,24,#FF,2 DEFB "О модемах",0 Т8 DEFB 7,25,26,27,#FF,3 DEFB "Мир ~NETHER~",0 Т9 DEFB 8,28,29,#FF,2 DEFB "GLUK present...",0 Т10 DEFB 9,30,31,#FF,2 DEFB "Замучай WindoWs!",0 Т11 DEFB 10,32,33,34,35,#FF,2 DEFB "АНЕКДОТЫ",0 Т12 DEFB 11,36,37,#FF,2 DEFB "Киберпохметолог",0 Т13 DEFB 12,38,#FF,2 DEFB "Секс по телефону",0 Т14 DEFB 13,39,40,41,42,#FF,2 DEFB "Записки жены-I",0 Т15 DEFB 14,43,#FF,2 DEFB "Девушкам",0 Т16 DEFB 15,44,#FF,2 DEFB "~Лазерный Отряд~",0 Т17 DEFB 0,45,#FF,2 DEFB "Трибуна",0 Т18 DEFB 1,46,#FF,2 DEFB "Долой IM 2!",0 Т19 DEFB 2,47,48,#FF,2 DEFB "Мифы XX века",0 Т20 DEFB 3,49,50,#FF,2 DEFB "~Чёрный Ворон~",0 Т21 DEFB 4,51,#FF,2 DEFB "Инсталлятор",0 Т22 DEFB 5,52,#FF,2 DEFB "Советы ;)",0 Т23 DEFB 6,53,54,#FF,2 DEFB "ШЕДЕВР",0 Т24 DEFB 7,55,56,#FF,2 DEFB "Обзор системок",0 Т25 DEFB 8,57,58,#FF,2 DEFB "Реклама",0 ;данные для загрузки и вывода графики G26 DEFB 9 ;NN музыки DEFB 59 ;NN общего файла scr. DEFB #FF ;конец списка NOP ;признак "графика" DEFB 5 ;кол-во раск screen Здесь следует остановиться отдельно. Я поддержал в оболочке вывод полноэкранных файлов (реклама, комиксы и т.д.) Для это- го надо взять HRUST, запаковать все экра- ны без распаковщика. Затем любым команде- ром, который умеет это делать, объединить сжатые экраны в единые файлы, но сделать это так, чтобы сумарный размер одного об- щего файла не привышал 64 сектора, т.е. в страницу Спектрума свободно помещался. Вы можете сделать до 4-х таких файлов. Пако- ванные размеры самих картинок значения не имеют. Получается, что за один раз можно загружать до 20-и картинок в зависимости от их сложности. Т27 DEFB 10,60,#FF,2 DEFB "Слово автору!",0 G28 DEFB 11,61,#FF,0,9 Т29 DEFB 12,62,63,64,#FF,2 DEFB "CSC:DEJA VU-2",0 Т30 DEFB 13,65,#FF,2 DEFB "ПОЛИТИКА",0 Т31 DEFB 14,66,67,68,#FF,2 DEFB "ОБЗОР ИГРУШЕК",0 Т32 DEFB 15,69,70,#FF,2 DEFB "Почтовый ящик",0 Т33 DEFB 0,71,#FF,3 DEFB "СХЕМОТЕХНИКА",0 ;----- таблица размеров файлов в секторах ;для первого файла указывать его трек и ;сектор залегания на диске как начало ;пакета файлов. Надо для дальнейшего рас- ;чёта параметров "сектор/трек". TSFIL DEFB 6 ;сектор и DEFB 12 ;трек 1-го файла ;твоих текстов DEFB #0D ;song 0 DEFB #09 ; 1 DEFB #09 ; 2 DEFB #0В ; 3 DEFB #0Е ; 4 DEFB #0Е ; 5 DEFB #08 ; 6 DEFB #0D ; 7 DEFB #10 ; 8 DEFB #0С ; 9 DEFB #0С ; 10 DEFB #0Е ; 11 DEFB #09 ; 12 DEFB #0С ; 13 DEFB #0С ; 14 DEFB #07 ; 15 ;txt DEFB #19 ;TXT1 16 DEFB #25 ;TXT2 17 DEFB #1В ; 18 DEFB #1A ;TXT3 19 DEFB #28 ;TXT4 20 DEFB #1В ; 21 DEFB #0В ;TXT5 22 DEFB #09 ;TXT6 23 DEFB #0F ;TXT7 24 DEFB #23 ;TXT8 25 DEFB #22 ; 26 DEFB #03 ; 27 DEFB #27 ;TXT9 28 DEFB #06 ; 29 DEFB #1A ;TXT10 30 DEFB #1A ; 31 DEFB #25 ;TXT11 32 DEFB #25 ; 33 DEFB #25 ; 34 DEFB #0F ; 35 DEFB #23 ;TXT12 36 DEFB #20 ; 37 DEFB #19 ;TXT13 38 DEFB #24 ;TXT14 39 DEFB #25 ; 40 DEFB #26 ; 41 DEFB #13 ; 42 DEFB #1С ;TXT15 43 DEFB #20 ;TXT16 44 DEFB #1D ;TXT17 45 DEFB #09 ;TXT18 46 DEFB #27 ;TXT19 47 DEFB #1С ; 48 DEFB #26 ;TXT20 49 DEFB #1В ; 50 DEFB #08 ;TXT21 51 DEFB #10 ;TXT22 52 DEFB #22 ;TXT23 53 DEFB #19 ; 54 DEFB #22 ;TXT24 55 DEFB #11 ; 56 DEFB #27 ;TXT25 57 DEFB #12 ; 58 DEFB #3С ;GFX26/5 files 59 DEFB #20 ;TXT27 60 DEFB #38 ;GFX28/9 files 61 DEFB #2F ;TXT29 62 DEFB #2С ; 63 DEFB #04 ; 64 DEFB #25 ;TXT30 65 DEFB #2В ;TXT31 66 DEFB #26 ; 67 DEFB #06 ; 68 DEFB #28 ;TXT32 69 DEFB #12 ; 70 DEFB #14 ;TXT33 71 NOP ;end table... SIZE EQU $-#В500 ;размер файла ;данных оболочки ;+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+==+=+ ;ТОКЕНЫ МЕНЮ: ;------------ ;0,DEFW DATA TXT - load txt ;1,DEFW NEW WIND - open next WindoW ;2,DEFW 0 - load basic program ;3,DEFW 0 - exit то ALASM. ;ДАННЫЕ ДЛЯ LOAD СТАТьИ: ;----------------------- ; DEFB N file music ; DEFB N file txt 1 ; DEFB N file txt 2 ; DEFB N ... ; DEFB #FF - end txt files ; DEFB 1=31, 2=41, 3=62 symbols ; DEFM "ЗАГОЛОВОК ОКНА" ; NOP конец данных ;ДАННЫЕ ДЛЯ LOAD GFX-БЛОКОВ: ;--------------------------- ;В 1 блок входит несколько gfx-файлов ; DEFB N file music ; DEFB N file GFX 1 ; DEFB N ... ; DEFB #FF - end GFX-блоков ; NOP маркёр GFX-режима ; DEFB n - общее количество ;gfx-файлов, т.е. screen`ов. НЕ ОШИБИСь! ;+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+= ORG #8000 ;for RUN Нет желания подробно расписывать дета- ли при работе с оболочкой: кое-что описа- но во вмонтированной инструкции к переко- дировщику, кое что сами поймёте - там нет ничего сложного. Надеюсь, что моя оболоч- ка кому-нибудь пригодится. Если есть же- лание её доработать или переделать транс- лятор текста под свой компьютер - высылай на мой адрес (ищи адрес главного редакто- ра в разделе "От редакции") ТРИ доллара и я вышлю ВСЕ! исходники транслятора и обо- лочки.
Other articles:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Similar articles:
В этот день... 21 November