Код:
История 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.
Замечания, предложения, сведения об ошибках, они могут быть, я им пользовался только пару часов да и то ночью. Вот посмотрев сейчас на файл выше, захотелось сделать проверку синтаксиса. Что бы "В