Важная информация

User Tag List

Показано с 1 по 3 из 3

Тема: The Story Writer v1.00

  1. #1
    Activist
    Регистрация
    23.02.2005
    Адрес
    Донецк
    Сообщений
    210
    Благодарностей: 58
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию The Story Writer v1.00

    The Story Writer v1.00 - это наконец-то случилось, а сколько не дождались, а сколько не дожили, а скольким и сейчас это совершенно не нужно. Но, так или иначе представляется на ваш суд.
    История подобных редакторов начинается с ZX/IBM Editor, тогда в уже забытом году, автор ZX Assemblera v2.5 Олег Хохлов, сделал редактор на базе базе Ассемблера, добавив в него функцию работы MS-DOS Дисков и печати текста.
    Далее историю продолжили ребята из FD_SOFT (FD- что то вроде четвертого измерения). Выпросили у меня исходные тексты ZAsm 3.0 для создания редактора Story Editor, потом этот редактор плавно начал превращаться в .. среду разработки игр. Начало было у них хорошее, приносили показывали, и все бы получился, но случилась беда! В виде новенького тогда еще Пентиума 2. С ума сойти, для меня это была вторая потеря. Первой жертвой монстро-строителей IBM пал мой со-ZAsm`овец Костя Афендиков, он попал еще под х486.
    И вот, через тернии .., он таки появился. Печатать средствами ZX сегодня вряд-ли кто то догадается, как и читать ms-dos диски (как и пользоваться подобными редакторами), впрочем это все можно и сделать. Ладно, что то весь запал стеба из меня уже вышел, и так как это все таки "The Story Writer" - история первая. В общем можно и не читать, на диске этот же файл, с такими же ошибками.

    Код:
                               История 1
    
                              О редакторе
    
         Это редактор ZAsm'а, практически не измененный, со своими
    плюсами и наверное минусами, если они есть.
    
                             Чем отличается:
    
         Во первых, за счет удаления оверлейного буфера и части пп,
    программ компилятора (калькулятор) в том числе, размер буфера
    под текст увеличился, сейчас гляну, до 39210 байт.
    
         Потому что ZAsm'овский редактор, с версии 3.10, находится в
    странице памяти, в 3-ей если конкретно. Внизу мелкие подпрограм-
    мы и буфера различного назначения, такие как буфер редактируемой
    строки, буфера имен файлов, interrupt (257) и прочее.
    
         The Story Writer, в отличии от ZAsm'а не ведет историю за-
    гружаемых файлов, счел это лишним, вместо этого в пунк меню EDIT
    вставил Cut / Copy / Paste, а-ля Clipboard.
    Впрочем, я не знаю сколько нужно исписать страниц, что бы понять
    необходимость того или иного.
    
         Выход из редактора отсутствует, ZAsm он же Hide, то есть
    прячется в страницах памяти при выходе из него, здесь же этого
    нет, добавить что то вроде Reset Dos или Reset Basic - да ну,
    до кнопки быстрее дотянитесь.
    
         Рам диск, в редакторе я решил от него отказаться, во избе-
    жания гибели ваших / наших story, в случае чего.
    
         Calculator - вроде как за ненадобностью.
    
                            Что же осталось:
    
         Сам редактор не претерпел никаких изменений, более того
    оставил распакову мнемоник z80 (токенизация ZAsm), сделано для
    того что бы в случае чего, можно было просматривать файлы на
    ассемблере, можно и редактировать, но затем в ZAsm'е прогнать
    Import, во избежания Syntax Error.
    
         Так же остались и работеют: поиск и замена, переход на
    строку по ее номеру, закладки, таблица символов с возможностью
    набора строки, с последующей вставкой в тект. Рисование линиями
    впевдографики, как и ручной ввод в режиме GF.
    
         Для начала ознакомимся с основным меню редактора, оно не
    особо богато, так как большая часть программ вызываются на пря-
    мую из редактора по COMMAND. К command мы еще вернемся, а сейчас
    основное меню.
    
         Основное меню сейчас имеет следующие пункты:
      File    Edit    Info    Options
         File - операции с файлами;
           New   - очистить текст;
           Load  - загрузить файл;
           Merge - подгрузить файл в конец существующему;
           ------
           Save  - сохранить вашу story;
           Save Block - сохранить отмеченный участок (блок);
    
         Edit - операции с блоком:
           Cut - отмеченный блок записывается в файл "blk_oper.tmp"
                 и удаляется из текста;
           Copy - происходит только запись отмеченного участка;
           Paste - в позицию курсора будет вставлено содержимое
               файла "blk_oper.tmp";
    
         Info - вывод информации о версии редактора, а так же файле.
    
         Options - Настройка редактора:
           Setup - настройка непосредственно редактора;
           Colour - раскраска редактора. Внимание!
               Text Attr, Block Attr, Light Text и Light Block не
               должны иметь одинаковых значений. По идее у вас это и
               не получится.;
           Load Font - загрузить другой шрифт. В 4-х пиксельном ва-
               рианте выбор не богатый, но он есть.
    
         Здесь стоит сказать, шрифт в немного необычном формате, уже
    писал, такой способ хранения шрифта и вывод символа/строки най-
    ден в игре Micronault One Пита Кука. Он ни чем не лучше, но и не
    хуже любого другого способа хранения/вывода. Вот такой.
    
            Save Setup - сохранить настройки в файл "tsw1_00.set";
            Load Setup - перезагрузить настройки из "tsw1_00.set",
    если он конечно имеется. Для возврата к оригинальнмы настройкам,
    данный файл нужно удалить.
    
                        Теперь о самом редакторе
    
         Наверное стоит сказать, что длинна строки в редакторе может
    быть не длиннее 128 байт, все что выходит за границы - пропадет.
    в экране отображается 64 символа (шрифт 4х8).
    
         The Story Writer использует принятую на IBM модифицирован-
    ную альтернативную кодировку (866), являющуюся де-факто стан-
    дантом на zx spectrum, хорошо, на пост-СССР пространстве.
    
         Это значит, что Вы можете использовать заглавные и строч-
    ные, латинские и русские буквы, а также разнообразные псевдо-
    графические символы.
    
         Раскладка  русских клавиш на клавиатуре аналогична принятой
    в текстовом редакторе ZX-WORD, учтены раскладки "йцукен" и
    "яверты", твердый знак "ъ" вводится нажатием SS+D (символ '\').
    
         Рассмотрим его по ближе. В вержней строке редактора отобра-
    жается имя файла, номер строки и колонки, код символа под кур-
    сором и режим клавиатуры. Да, код символа вроде бы здесь и не
    нужен, ну посмотрим, может в итоге я его удалю.
    
         В нижней строке - индикатор занятости буфера текстом и по-
    ложение в этом тексте.
    
                    Переходим к клавишам управления:
    
            CS + 1 - Edit - Переключение Рус / Lat;
    
            CS + 2 - CapsLock - Переключение  БОЛЬШИЕ / маленькие,  кроме  того,
    смена регистра буквы на противоположный возможна ее нажатием
    вместе с клавишей CS ( Caps Shift);
    
            CS + 3  PageUp - Страница назад;
    
            CS + 4  PageDown - Страница вперед;
    
            CS + 5,6,7,8 - перемещение курсора;
    
            CS + 9  Delete - Удаляет символ в позиции курсора, если
    курсор находится в конце строки, то при включенном режиме INSERT
    позволяет конкатенировать (склеивать) строки;
    
            CS + 0  BackSpace - Удаляет символ слева от курсора.
    Если курсор находится в начале строки и включен режим INSERT, то
    при установленном флаге BackSpace Indent, состояние которого
    можно посмотреть или изменить в Options \ SetUp \ Backsp indent
    удаление переносится на конец предыдущей строки;
    
            SS + q  Home - Курсор в начало строки;
    
            SS + e  End  - Курсор в конец строки;
    
            SS + w  INSERT - Переключает режимы вставки / замещения
    вводимых символов. Возможно Вы уже заметили отсутствие индикато-
    ра Ins/Over, так вот, эту функцию взял на себя курсор, точнее
    его вид: '_' - вставка, '-' - замена;
    
            Enter - Перевод строки. При включенном режиме INSERT
    нажатие Enter позволяет разбивать строку на две, либо вставлять
    новые строки, если курсор находится в конце строки. В любом слу-
    чае, если включен режим Auto_Indent (автоотступ), а переключить
    его можно в Options \Setup \Auto indent, курсор устанавливается,
    либо под первым символом  предыдущей строки, что очень удобно
    при вводе текстов на ассемблере, либо на фиксированную табуляцию
    , что одобно при наборе обычного текста, в зависимости от состо-
    яния флага TAB, который находится в Options\SetUp\Tabulations;
    
            CS+Space  TAB  - Табуляция. В зависимости от установлен-
    ного режима (см. Enter), табуляция может быть контекстной, т.е.
    по предыдущей строке, или фиксированной. Данные табуляции можно
    увидеть в Options\SetUp\.
    
            CS+Enter  MarkLine - Пометка в блок строк текста. Уста-
    нановив курсор на первую помечаемую строку, нажимайте MarkLine
    требуемый участок текста не будет помечен и выделен другим цве-
    том. Помечать большие блоки быстрее другим способом (см. далее).
    Помечать можно лишь строки целиком.
    
            SS+Enter  DeleteLine - удаление всей строки, на которой
    находится курсор.
    
            SS+Space - Main Menu - выход из редактора в основное
    меню.
    
            CS+SS  Extend_Mode или COMMAND:
    
         В первую очередь можно нажать клавишу "H" и получить окно
    со списком комманд. Здесь же рассмотрим подробнее:
    
            COMMAND: Перемещения по тексту
        ----------------------------------------
         CS+5 - перейти в начало блока;
         CS+8 - перейти в конец блока;
         CS+6 - перейти в начало текста;
         CS+7 - перейти в конец текста;
            J - перейти на строку номер N..;
            Y - закладки, запонить позицию в тексте;
            T - перейти на одну из 10-ти ранее сохраненных точек.
    
            COMMAND: Редактирование
         ----------------------------------------
            L - удалить символы справа от курсора;
         SS+L - удалить символы слева от курсора;
         CS+9 - удалить пробелы от курсора до следующего слова или
                слово до следующего пробела;
    
         CS+0 - удалить пробелы слева от курсора и переместить кур-
                сор к предыдущему слову;
    
         SS+K - восстановление строки удаленной: SS+ENTER, L, SS+L;
                Рекомендуется использовать для дублирования строк.
    
         U - Отмена изменений в строке (Undo)
    
         CS+SPACE - табуляция строки, т.е. строка  перемещается
                вместе с курсором.
    
         ENTER - помещение стринга из ASCII таблицы в строку редак-
               тора с позиции курсора.
    
         CS+ENTER - действие аналогичные ENTER, но курсор остается
                на месте.
    
            COMMAND: Операции с блоками
         ----------------------------------------
    
            B - отметить начало блока;
            E - отметить конец блока;
            C - Копирование блока (Copy);
            D - Удаление блока (Delete);
            M - Перемещение блока (Move);
            N - Погасить отметку;
         SS+C - запись блока на диск;
         CS+M - вставка блока с диска (Paste);
    
         Copy - Копирование блока в текст выполняется начиная с те-
    кущей позиции курсора.
    
         Move - Перемещение блока аналогично последовательному при-
    менению  операций Copy, Delete.
    
         Paste - Вставка блока с диска аналогична последовательному
    выполнению команд Merge, Move.
    
            COMMAND:  Операции поиска
         ----------------------------------------
    
         S - поиск (Search);
         X - продолжение поиска (NextSearch);
         R - замена (Replace);
    
         При вводе образца для поиска символ "?" является 'любым',
    если не стоит первым в строке.
    
            COMMAND: Операции с диском
         ----------------------------------------
            3 - Загрузка текста (Load);
         SS+3 - Загрузка файла в конец текста (Merge);
            2 - Запись текста на диск (Save As);
         SS+2 - Запись текста на диск с текущим именем (без ввода
               имени файла), сохранение изменений;
         CS+M - Вставка файла в текст (Paste);
         SS+C - Запись блока на диск;
    
            COMMAND: Окна основного меню.
         ----------------------------------------
         o - Options
         i - Information
    
            COMMAND: Разное
         ----------------------------------------
    
         SS+z - выход в ZAsm, если он загружен. Наличие не проверя-
                есться, это тестовый выход, но я могу забыть убрать.
    
            F - вызов таблицы символов (см. ASCII_Table);
    
            G - вкл/выкл. ввода псевдографики;
    
         CS+2 - переключение режимов рисования линий, режимы бывают
                следующие:
    
        + - рисование одинарных линий;
        + - рисование двойных линий;
        E - Erase - стирает символ над курсором, рисование пробелами
            Очень удобно вытирать вертикальные надписи;
    
        F - Fill - помещает в позицию курсора символ, посмотреть и
            переопределить который можно в ASCII таблице.
    
         пусто - просто редактирование текста.
    
         CS+1 - вкл/выкл режима Line Drawing При включении LineDraw
    символ указывающий режим рисования становится инверсным.
    
         Для счастливый обладателей расширенной клавиатуры пред-
    усмотрен более удобный способ использования Line Drawing'а
    
         SS+CapsLock - переключение режимов рисования линий;
    
         SS+Cursor keys - рисование;
    Кроме этого, при 'пустом' режиме рисования линий, возможны сле-
    дующие операции:
    
         SS+Cursor Up - перевод слова в верхний регистр;
         SS+Cursor Down - в нижний регистр;
         SS+Cursor Left - на слово назад;
         SS+Cursor Right - на слово вперед;
    
        И еще ...
    
         SS+Edit - перекл. - Gfx;
    
         SS+Page Up -
         SS+Page Down - прокрутка текста без изменения позиции кур-
             сора в экране
    
     SS+Delete    - аналог Command:Delete
    
     SS+Backspace - /-/-/-/-/-/-/-:Backspace
    
                             ASCII_Table
    
        и выглядит приблизительно так:
    
    г========== ASCII Table: ==========¬
    ¦                                * ¦
    ¦         
     ¤¶§ ¦
    ¦  !"#$%&'()*+,-./0123456789:;<=>? ¦
    ¦ @ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_ ¦
    ¦ `abcdefghijklmnopqrstuvwxyz{|}~ ¦
    ¦ АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ ¦
    ¦ абвгдежзийклмноп---¦+¦¦¬¬¦¦¬---¬ ¦
    ¦ L+T+-+¦¦Lг¦T¦=+¦¦TTLL-г++----¦¦- ¦
    ¦ рстуфхцчшщъыьэюяЁёЄєЇїЎў°•·v№¤¦* ¦
    ¦----------------------------------¦
    ¦ Char 1  DEC 49  Hex #31  Fill: - ¦
    ¦ String:                          ¦
    L==================================-
    
         Char = текущий символ;
         DEC  = его десятичных код;
         Hex  = Hexнадцатиричный;
         Fill = байт для Fill Line Drawing
         String = здесь отображается набираемая (набранная) строка,
    которую можно поместить в строку редактора;
    
                    Таблица работает в двух режимах:
    
         Первый - выбор символа;
         Второй - набор строки (String'а>);
    
         Режимы переключаются нажатием SS+SPACE. При этом изменится
    символ определяющий режим ASCII таблицы:
       String: выбор символа
       -------
       String> набор строки.
       -------
    
         Перемещение по таблице осуществляется курсорными клавишами.
    
         CS+1- переключение рус/лат
         CS+2- переключение caps/lock
         CS+3- выбор символа для Fill, LineDraw
         CS+4- спрятать окно;
         SS+Q- в начало таблицы;
         SS+E- в конец таблицы;
         SS-W- аналогично CS+3
         SS+CS перемещение окна таблицы
         CS+0  удаление последнего символа в String> .....
         SS+ENTER очистка строки String
    
         ENTER - выбор символа и, если (:), выход, иначе помещение
    символа в String> ...
         CS+ENTER выйти и захватить с собой строку из String>... в
         редактор (такой мини макрос).
    
         Нажатие на любую другую клавишу устанавливает курсор на
    соответствующий символ и ... см. ENTER.
    
                    - Форматирование текста -
    
         Как такого форматирование текста, хотя бы выравниевание
    строк, я не делал. Во первых готовых процедур у меня в наличии
    не было, этим никогда не занимался.
    
    Во вторых, я это оставил на потом, для версии 1.1, если конечно
    будет интерес в том числе у меня. Если бы я сейчас завязался с
    этим делом, наверняка этот редактор так никогда бы и не увидел
    свет, как очень многие подобные.
    
         Но, не стоит забывать, что в редакторе реализовано автома-
    тическое  форматирование, которое осуществляется по ходу набора
    текста и его параметры задаются в меню: Options \ Setup
    
         Auto wrap  [х] - включает автоматический перенос слов на
    следующую строку при выходе за правую границу.
    
         Перенос срабатывет на следующих символах " .,!?;():'"
    
         Auto indent [х] - включает автоматический отступ при пере-
    воде строки.
    
         Backspace indent [х] - включает перевод курсора на послед-
    ний символ предыдущей строки если, при удалении, курсор нахо-
    дится в первой колонке.
    
         Ну вот и все, что я помню на сегодняшний день. Пожелания,
    предложения, сообщения об ошибках, очень даже могут быть -
    пишите на zx.pk.ru в теме Software / The Story Editor.
    
         31.08.2018 06:01
    
         С наилучшими пожеланиями V.Rubts0FF.
    Замечания, предложения, сведения об ошибках, они могут быть, я им пользовался только пару часов да и то ночью. Вот посмотрев сейчас на файл выше, захотелось сделать проверку синтаксиса. Что бы "В вержней строке" писать правильно.
    Вложения Вложения

  2. Эти 3 пользователя(ей) поблагодарили Rubts0FF за это полезное сообщение:
    baxter (06.09.2018), mastermind (04.09.2018), Oleg N. Cher (31.08.2018)

  3. #1
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  4. #2
    Activist
    Регистрация
    23.02.2005
    Адрес
    Донецк
    Сообщений
    210
    Благодарностей: 58
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию The Story Writer v1.01

    The Story Writer v1.01 - Изменения в Setup, разделен на Editor и Keyboard, добавлены пункты:

    Show Symbol Code On/Off - показывать код символа под курсором;

    Spaces Compressor On/Off - в ZAsm`е пробелы упаковываются в формат: число 6 - признак SPC, далее число пробелов + #80.

    В ассемблере это имеет смысл, а здесь - на ваше усмотрение.

    В подменю EDIT добавлен пункт Optimize, собственно происходит перепаковка всего текста. Имеет смысл если менялся Spaces Compressor или подгружались другие файлы, например тексты в формате ZAsm.

    Да, еще, так как различные рамки а-ля %010110000 здесь выглядят совсем никак, сейчас все в одну линию.

    Пожалуй перебрал с заставками (LOGO), лишние уж удаляйте сами.

    А пока все.

    p.s. Не знаю насколько это будет мне еще интересно, может исходные тексты добавить, хотя там черт ногу ..., решать вам.
    Вложения Вложения

  5. Эти 4 пользователя(ей) поблагодарили Rubts0FF за это полезное сообщение:
    baxter (06.09.2018), MaxxWell (08.09.2018), Oleg N. Cher (07.09.2018), Максагор (06.09.2018)

  6. #3
    Activist
    Регистрация
    23.02.2005
    Адрес
    Донецк
    Сообщений
    210
    Благодарностей: 58
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию The Story Writer version 1.02

    The Story Writer version 1.02

    [+] вернул рамки окнам.
    [+] The Story Writer обзавелся Justify, форматированием я бы это не назвал, но подвигать строку можно.

    Justify - Вызывается это по SS+SPACE, раньше был выход в основное меню.
    Далее следующие кнопки:
    A - Abzats
    L - Justify Left
    R - Justify Right
    C - Justify Center
    F - Jystify Full


    Теперь, что же за такими умными словами я скрываю или подразумеваю.

    Justify Left - удаляются пробелы слева и повторяющиеся между слов, все;

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

    Justify Center - та же процедура с пробелами, затем, как и в случае Right, сравниваем длину строки с RightMarg и выход, если строка длинее, иначе разница деленная на два заполняется пробелами в начале строки, таким образом двигая строку в центр.

    Justify Full - эта у меня попила крови больше всех, как обычно в строке удаляются лишние пробелы, так же подсчитывается число разрывов между слов и после некоторых вычислений разрывы между слов заполняются пробелами. Если конечно слов больше двух и да, если строка не длиннее правой границы.

    Abzats - за этим умным словом стоит простая операция, то же что и Justify Left, только плюс пробелы в начале строки от параметра Abzats в Setup`е.

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

    [!] - перед запуском Optimize инициируется окно редактора что позволяет визуально наблюдать продвижение выполнения операции по тексту.

    Практически то же самое, только с ошибками, в файле "versnfo". Надо все таки задуматься о проверке синтаксиса, пусть не по мере ввода.

    Дальнейших действий по форматированию не планируется, впрочем это то же не по плану получилось.
    А на сегодня все.
    Вложения Вложения

  7. Эти 2 пользователя(ей) поблагодарили Rubts0FF за это полезное сообщение:
    baxter (10.09.2018), solegstar (16.09.2018)

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. The Story of the ZX Spectrum in Pixels
    от Rindex в разделе Пресса
    Ответов: 1
    Последнее: 31.08.2017, 10:42
  2. The story of the Oliver Twins
    от Slider в разделе Пресса
    Ответов: 3
    Последнее: 16.11.2015, 10:38
  3. Книга The story of the Commodore 64 in pixels
    от Aprisobal в разделе Commodore 16/64/128
    Ответов: 0
    Последнее: 09.08.2015, 23:44
  4. [H-GAME][Rus]Three Sisters' Story 16c
    от transman в разделе Игры
    Ответов: 4
    Последнее: 06.01.2015, 09:18
  5. Описание The Neverending Story
    от casperzx в разделе Игры
    Ответов: 2
    Последнее: 18.08.2010, 16:15

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •