Odyssey Magazine #01
05 марта 1997
  IS-DOS  

IS DOS - Проблемы и решения

<b>IS DOS</b> - Проблемы и решения
(C) 1997 С.Ляпин


 Music by Shov


      IS_DOS : ПРОБЛЕМЫ И РЕШЕНИЯ.
    ────────────────────────────────



           Вместо предисловия.


    Прежде  чем начать статью я хочу при-
нести  извинения более искушенным пользо-
вателям  этой  системы за слишком уж под-
робное  рассмотрение  вроде  бы очевидных
вещей,  но по собственному опыту зная от-
сутствие в наличии подробных, доходчивых,
для  неискушенного пользователя, инструк-
ций  и  руководств ( как тут не вспомнить
серию  книг  для пользователей и програм-
мистов  РС-совместимых  компьютеров  "для
чайников" ) я рискуя навлечь недовольство
все-таки   "разжевываю"  материал.  Кроме
этого  советую при чтении иметь под рукой
руководство пользователя IS_DOS, т.к. это
поможет  и  дополнит то, что я буду опус-
кать  в своей статье в связи с явной оче-
видностью оного.

 ***************************************


  В  предыдущей  статье я показал вам как
можно  эффективно использовать RAM-диск в
системе  IS_DOS.Дополнительную  и  весьма
интересную информацию о нем вы так же мо-
жете  почерпнуть из компьютерного журнала
"ZX-FORMAT", в котором работа с ним осве-
щена  очень грамотно, повторятся не имеет
смысла.Сегодня  мы  поговорим о редакторе
IS-EDITOR,  a конкретно рассмотрим работу
одного из его интересных оверлеев - овер-
лея макросов. Но прежде надо сказать нес-
колько  слов о самом редакторе. IS-EDITOR
-  полноценный, корректный, эффективный и
удобный редактор, имеющий много необходи-
мых  для  нормальной  работы  функций. Он
располагается  в  каталоге EDIT и состоит
из следующих файлов :

editor.com - предварительный настройщик
edit.com   - собственно редактор
ed0.ovr    - оверлей блочных функций
ed1.ovr    - оверлей поиска и замены
ed2.ovr    - оверлей параметров ред.
ed3.ovr    - оверлей формат. текста
ed4.ovr    - оверлей макросов
ed5.ovr    - оверлей калькулятора
ed6.ovr    - оверлей доп. функций
ed7.ovr    - оверлей псевдографики.


  Это,  конечно,  не все файлы редактора,
но  самые необходимые для нашего разгово-
ра.С первыми двумя файлами списка я наде-
юсь все вам ясно, а вот мощная оверлейная
система требует более подробного рассмот-
рения.Я  не буду пересказывать содержимое
описания редактора из инструкции, все кто
ее  не читал советую изучить, а кто забыл
-  повторить,  поэтому сразу же перейду к
оверлею ed4.ovr, и по ходу дела рассмотрю
другие  оверлеи в свете макросного. Итак,
что же такое макросы, применительно к вы-
ше  названному  редактору.  Макросы - это
возможность  программировать  слова и це-
лые, часто используемые в работе словосо-
четания и даже предложения, (избавляя вас
от  необходимости,  тратя  время, десятки
раз  набирать  одно  и  тоже) возможность
программировать  последовательности овер-
лейных функции, причем из различных овер-
леев, возможность создания мощных поиско-
вых, счетных и копировочных функций в ре-
дактируемом  файле  и многое, многое дру-
гое. Что бы не утомлять уважаемых читате-
лей  и  пользователей  возьмем  как гово-
риться  быка  за  рога  и  рассмотрим  на
конкретных  примерах огромные возможности
макросов.


       1.Программирование текста.


Как  я  уже упоминал макрос программирует
определенную  последовательность действий
и делает он это весьма простым способом.В
каталоге EDIT, создается файл ed_mac txt,
который  содержит список необходимых мак-
росных последовательностей, набранных все
в том же редакторе, строку открывает сим-
вол, который вызывает последовательность,
и  таким  образом  первый  символ в такой
строке   является   управляющим  или  ко-
мандным. Предположим вы создали текстовый
файл ed_mac.txt в каталоге EDIT, записали
в него следующие строки:

       A ПРИВЕТ !
       B HELLO  !


  Теперь   загрузив  любой  свой  рабочий
текстовый файл в редактор нажмем комбина-
цию клавиш "CS/SS". В правом верхнем углу
экрана, перед названием вашего файла, по-
явится индикация включения оверлея макро-
сов, слово "MAC". Если сейчас нажать кла-
вишу  "A" мы получим на экране, с позиции
курсора редактора слово "ПРИВЕТ!", а если
нажать "B" - то увидим слово "HELLO!", но
уже не с позиции курсора, а со следующего
знакоместа.  Если вы хотите, чтобы появи-
лось словосочетание или предложение смело
пишите   его   за  управляющим  символом,
только помните, что в одной строке должно
быть  не более 32 символов, т.к. это раз-
мер  буфера клавиатуры. Если же вы хотите
вывести  более  длинный текст тогда замы-
кайте  макросные строки друг с другом.Де-
лается  это  следующим образом. Например,
нам  надо  что бы при нажатии клавишы "D"
появлялось  40  символов "*" для этого мы
производим следующие действия :

 1.Загружаем в редактор файл ed_mac.txt
 2.Пишем,  с  начала строки,символ " D ",
затем набиваем 28 символoв " * "
 3.За  последним набранным символом , без
отступа  ,  набираем еще один управляющий
символ  макросного оверлея , " #0E " и за
ним  любой другой символ , например , " G
"  далее открываем новую строку этим сим-
волом и дописываем недостающие звездочки.

D****************************#0EG
G************


Таким  образом можно вывести техт практи-
чески любой разумной и необходимой длины.

 2.Программирование оверлейных функций.


  Кроме рассмотренной возможности макрос-
ный оверлей избавит вас и от других моно-
тонных  и утомительных операций.Каждый из
оверлеев  редактора выполняет свою весьма
важную и нужную функцию, помогая в работе
и  расширяя  возможности  редактирования,
копирования, форматирования текстов. Час-
то  приходится какую-либо операцию повто-
рять несколько раз, выполняя одну и ту же
работу.Вот  тут  и  приходит  на  выручку
оверлей   макросов,   беря  ее  на  себя.
Рассмотрим  несколько  простых  примеров.
Возьмем  оверлей  дополнительных функций.
Он вызывается одновременным нажатием кла-
виш Simbol Shift + Space, и предоставляет
22  функций,  весьма  нужных в работе, по
нажатию  соответствующих клавиш, при этом
оверлей  индуцируется в нижней строке ре-
дактора. Этот оверлей можно зафиксировать
нажав  на  Space  вторично,  при  этом  в
верхней  строке редактора, рядом с именем
файла появится индикация :FIX. Ну вот по-
жалуй  и все, что нам необходимо для при-
мера  (более  подробное  описание оверлея
смотри  в  руководстве пользователя или в
help'е ), и теперь будем создавать макрос
базирующийся на этом оверлее. Допустим мы
имеем определенный текстовый файл, доста-
точно большого объема. Это может быть ка-
талог,  база  данных,  список,  рассказ и
т.п.  И нам надо его разбить на страницы,
к  примеру, по 80 строк. Для этого загру-
жаем  в  редактор  ed_mac.txt и создаем в
нем  макрос.Первым  делом  сначала строки
ставим   управляющий  символ,  вызываюший
данный макрос, пусть это будет "A", затем
пишем управляющий символ для вызова овер-
лея  дополнительных функций.Тут надо ого-
вориться, что для вызова управляющих кла-
виш  используется символ "#", после кото-
рого пишется шестнадцатиричный код симво-
ла  (  "0"  для  десятков  писать  обяза-
тельно).  Символ для вызова этого оверлея
-  #12.Коды для вызова других оверлеев вы
найдете в конце данной статьи. Теперь, на
всякий случай, подстраховываясь ( вдруг у
нас  wet-файл  и курсор стоит не в начале
файла) пишем управляющий символ для выхо-
да в начало файла, как мы знаем это - "t"
(  именно  маленькая  латинская  t,  a нe
большая,  далее  я  объясню почему ), его
код - # 74, далее, перемещаем курсор вниз
на  80 строк.Это делается вызовом еще од-
ного  служебного символа оверлея макросов
(  кстати, полный список этих символов вы
так же найдете в конце статьи ).Это - уп-
равляющий  символ  -  #R,  после  которой
должны  стоять две шестнадцатиричные циф-
ры. Первая цифра - число повторов, вторая
- длина повторяемого участка. Например :

     #R21#, что значит переместить курсор
на 2 знакоместа вправо ;

     #R38SPECTRUM,  что значит напечатать
три  раза  слово  SPECTRUM, а цифра "8" -
количество  букв, которые необходимо пов-
торить.
  Теперь  мы  из описания редактора берем
информацию, что комбинация Simbol Shift +
A  перемещает курсор на 20 символов вниз,
а  это  значит  необходимо  повторить эту
операцию   4  раза,  то  есть  получится:
#R41#10,  где  #10  - это код SS + A, 4 -
кол-во  повторов,  1 - длина повторяемого
участка. Далее необходимо вызвать размет-
чик,  т.е.  символ " l ", его код - # 6C.
Посмотрим, что же у нас получилось:

  A#12#74#R41#10#12#6C


Надеюсь  всем  понятно, как мы получилось
эту строку макроса ( если непонятно читай
выше ).
При запуске строки мы имеем следующее :

 1.Курсор выходит в начало файла ;
 2.Курсор опускается на 80 символов вниз,
при этом оверлей доп. функций снимается ;
 3.Вызываем повторно оверлей и ставим от-
метку страницы.
  Давайте   немного  усовершенствуем  эту
процедуру,  используя  уже  известный нам
управляющий  символ  макроса - #0E.Что бы
разметка файла продолжалась до конца, не-
обходимо  создать две строки макроса, ис-
пользуя символ #0E. При этом первая стро-
ка  будет выводить курсор на начало файла
и    вызывать   вторую   строку   которая
собственно и будет размечать файл.Для вы-
зова  второй  строки используем, не долго
думая,  второй символ латинского алфавита
-"B". Вот что у нас получится:

      1.   A#12#74#0EB
      2.   B#R41#10#12#6C#0EB


Как  видно  из  написанного вторая строка
зацикливается сама на себя. Tеперь мы мо-
жем смело запускать этот макрос и он доб-
росовестно  разобъет  файл на страницы по
80 строк.Но вот только останавливать раз-
метку придется в ручную, нажатием и удер-
живанием  клавиши  Space, до тех пор пока
индикатор  : MAC, в верхней строке редак-
тора  не изменится на : mac, что означает
оверлей макросов понял вашу просьбу прер-
вать  выполнение  макросной команды и ра-
зорвет  зацикленную  команду.  А можно ли
как-то определить, когда закончить работу
макросу  ?  Оверлей  макросов имеет такую
возможность.  Это еще один служебный, уп-
равляющий  символ, который прервет выпол-
нение зацикленной строки или строк макро-
са, встретив в файле пустую строку.Конеч-
но  определенные  проблемы  это  создает,
ведь  тогда в вашем файле нигде не должно
быть  пустых  строк кроме как в конце.Это
символ  "T" на префексе #12, т.е. - #12T.
Изменим  строку  вставив в нее этот код и
теперь  после вызова оверлея стоит нажать
клавишу " 1 " и начнется разметка файла :

      1.   A#12T#12#74#0EB
      2.   B#R41#10#12#6C


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

      1. A#12T#12t#0EB
      2. B#R41#10#12l#0EB



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

 ***************************************


Вот  и  подошла к концу наша 2 встреча, я
надеюсь,   она  была  полезной  и  поучи-
тельной,  и  вы  не  зря провели время за
чтением  этой статьи. В предыдущей статье
я обещал рассказать вам еще кой о чем, но
это  оказалось  сложно описать не дав вам
полной  картины  обо всех неоходимых сос-
тавляющих  системы, и макросы в ней зани-
мают очень важное место. Поэтому я слегка
подкорректировал  планы.  Следующий раз я
продолжу тему макросов. Мы рассмотрим са-
мые  мощные и необходимые макросы - межо-
верлейные макросы, примерный вариант соз-
дания  системы управления каталогом и ба-
зой данных с помощью макросных комбинаций
и  еще  много много интересного, так что,
как  говорится оставайтесь с нами и вы не
проиграете.
 Если  у вас возникли вопросы обращайтесь
по телефону 4-07-26.

 ***************************************


 ПРИЛОЖЕНИЕ N 1.
═════════════════


     1.Таблица управляющих символов
     оверлея дополнительных функций.

╔═══════════╦══════════════════════════╗
║   Клавиша ║          Функция         ║
╠═══════════╬══════════════════════════╣
║ D   DelLN ║Удалить строку.           ║
║ U   UnDL  ║Вставить строку.          ║
║ L   LF    ║Вставить перевод страницы ║
║           ║LF, под курсором.         ║
║ P   Param ║Вызвать меню параметров.  ║
║ T   Top   ║Курсор в начало файла.    ║
║ B   Bot   ║Курсор в конец файла.     ║
║ S   Save  ║Сохранить на диске wet-ф-л║
║ F   Find  ║Вызвать оверлей поиска.   ║
║ E   Exit  ║Вызвать меню выхода.      ║
╟───────────╫──────────────────────────╢
║ Клавиши   ║▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒║
║меню выхода║▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒║
╟───────────╫──────────────────────────╢
║ D Dry exit║ "Сухой" выход            ║
║ W Wet exit║ "Мокрый" выход           ║
║ L Leave   ║ Выход без записи на диск ║
╟───────────╫──────────────────────────╢
║ A         ║ Переход на строку вниз.  ║
║ Q         ║ Переход на строку вверх. ║
║ W         ║ Удаление до конца строки.║
║ C         ║ Выход в калькулятор.     ║
║ 0         ║ Удалить от курсора до    ║
║           ║ конца строки.            ║
║ 1         ║ Драйвер печати (41/61сим-║
║           ║ вол ).                   ║
║ 2         ║ Смена  режима  нумерации ║
║           ║ строк.                   ║
║ 9         ║ Включение псевдографики. ║
╟───────────╫──────────────────────────╢
║ Комбинации║▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒║
║   клавиш  ║▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒║
╟───────────╫──────────────────────────╢
║ CS+4      ║ Курсор в начало строки.  ║
║ CS+9      ║ Курсор в конец строки.   ║
║ CS+Q      ║ На страницу вниз.        ║
║ CS+A      ║ На страницу вверх.       ║
║ SS+F      ║ Выход в режим форматиро- ║
║           ║ вания текста.            ║
╚═══════════╩══════════════════════════╝

 ПРИЛОЖЕНИЕ N 2.
 ══════════════

    1.Tаблица управляющих (служебных)
       символов оверлея макросов.

╔═══════════╦══════════════════════════╗
║  Символ   ║          Действие        ║
╠═══════════╬══════════════════════════╣
║           ║1.Выполняет замыкание     ║
║   #0E     ║  строки макроса на себя  ║
║           ║2.Выполняет замыкание стр.║
║           ║  макросов друг на друга. ║
╟───────────╫──────────────────────────╢
║           ║.Выполняет функцию повтори║
║           ║ теля в которой :         ║
║   #Rx,y   ║ x - количество повторов ;║
║           ║ y - величина повторяемого║
║           ║     участка.             ║
╟───────────╫──────────────────────────╢
║           ║Выполняет проверку на пус-║
║   #12T    ║тую строку для прерывания ║
║           ║макроса при ее обнаружении║
╚═══════════╩══════════════════════════╝

    2.Tаблица кодов основных клавиш.

╔═══════╦═══╦═══════╦═══════╦═══╦═══════╗
║Клавиша║Код║Функция║Клавиша║Код║Функция║
╠═══════╬═══╬═══════╬═══════╬═══╬═══════╣
║ CS+1  ║#07║ Р./ЛАТ║ ENTER ║#0D║ ВВОД  ║
║ CS+2  ║#06║ Б./МАЛ║ SPACE ║#20║ ПРОБЕЛ║
║ CS+3  ║#04║ I./OVR║ CS+SS ║#0E║ОВЕРЛЕЙ║
║ CS+4  ║#05║ HOME  ║ SS+Q  ║#15║ PgUp  ║
║ CS+5  ║#08║ LEFT  ║ SS+A  ║#10║ PgDn  ║
║ CS+6  ║#0A║ DOWN  ║ SS+W  ║#13║ ERASE ║
║ CS+7  ║#0B║ UP    ║ SS+E  ║#14║ INSERT║
║ CS+8  ║#09║ RIGHT ║ SS+ENT║#11║ОВЕРЛЕЙ║
║ CS+9  ║#0F║ END   ║ SS+SP ║#12║ОВЕРЛЕЙ║
║ CS+0  ║#0C║ DELETE║ CS+ENT║#17║-------║
╚═══════╩═══╩═══════╩═══════╩═══╩═══════╝
 



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

Вступление - Oб авторах журнала и о журнале.

Вступление - Oб авторах журнала

Вступление - Инструкция к оболочке журнала.

Отдохнем - GLODING PROGRAMMING (Программирование снизу вверх наискосок)

Ассемблер - Как вычислить синус на ассемлере.

Система - IBM:Об алгаритме сжатия Lempel-Ziw Welch и его реализации для формата GIF.

Разное - о компьютерных проблемах: ПРОФИ и СКОРПИОН, IBM...

Отдохнем - "Приколы со стороны".

Деморынок - Хит-парад музыкальных демонстраций.

История - Хакеры - статья "ОНО" - об истории появления хакерства.

История - Классификация хакеров.

Отдохнем - "Как ломаются полуоси?".

Письма - Отзывы читателей о журнале.

Конкурс - Конкурс на лучшую головоломку !

Ассемблер - Быстрый расчет адреса по двум координатам.

IS DOS - Проблемы и решения

Новости - новости города.

Разборка - Описание игры THE DOOBLE.

Разборка - Описание игры BLOOD WYCH.

Обзор - новые игры: RETURN TO HOME 4, CITADEL, KLADEMINER, BRIDGE PLAYER, CRUSHER, AMERICAN TURBO KING, RAD RAMP RACER, KUNG FU MASTER, CHOY LEE, SIDERAL WAR, ARKARUM, DIRT TRACK RACER, DOUBLE DRAGON 2, NIGHT BREED, THE CYCLES, MOONTORC, KOMMANDO 2.

Система - Описание системных программ : UNIVERSAL SPRATE STUDIO (USS)

Гости - Старые знакомые:О истории создания краснодарской группа UNIT-5

Система - Описание системных программ : ACCEPT PROTECTION SYSTEM V1.0.


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

Похожие статьи:
Новости - Загадочная идея в MOVE #8.
Веселый Гиннес - Забавные рекорды.
Из вне - Планируется визит LOOKER'a/MAGIC SOFT и KANO. А так же о том кто уже из спектрумистов побывал в Харькове.
Рабочий стол - Программа оцифровки звука "Digital Factory v1.0" (COVOX).
News - 14th of November - Louisa gave birth to our daughter, named Dasha.

В этот день...   24 апреля