Четверг, 22.06.2017, 15:01

..



Главная Регистрация Вход
Приветствую Вас, Гость · Браузер: « v»
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Страница 1 из 11
Всё об «Электроника БК0010(-01), БК0011(М)»! » Программы | Утилиты | ДОСы » Упаковщики (Архиваторы) данных » «Komp» » «Komp 3» [xx.xx.xx] (Автор: Смирнов В.)
«Komp 3» [xx.xx.xx]
-=RUS=-Дата: Воскресенье, 16.11.2014, 12:55 | Сообщение # 1
Генералиссимус
Группа: Администраторы
Сообщений: 350
Репутация: 1
Статус: Offline
(Komp 3.doc)

           ▓▓┐  ▓▓┐ ▓▓▓▓▓┐ ▓▓┐   ▓▓┐ ▓▓▓▓▓▓┐    ▓▓▓▓▓┐
           ▓▓┤ ▓▓┼┘▓▓┼┴┴▓▓┐▓▓▓┐ ▓▓▓┤ ▓▓┼┴┴▓▓┐  ▓▓┼┴┴▓▓┐
           ▓▓▓▓▓┼┘ ▓▓┤  ▓▓┤▓▓▓▓▓▓▓▓┤ ▓▓┤  ▓▓┤  └┴┘▓▓▓┼┘
           ▓▓┼┴▓▓┐ ▓▓┤  ▓▓┤▓▓┼▓▓┼▓▓┤ ▓▓▓▓▓▓┼┘     └┴▓▓┐
           ▓▓┤  ▓▓┐▓▓┤  ▓▓┤▓▓┤└┴┘▓▓┤ ▓▓┼┴┴┴┘   ▓▓┐  ▓▓┤
           ▓▓┤  ▓▓┤└▓▓▓▓▓┼┘▓▓┤   ▓▓┤ ▓▓┤        ▓▓▓▓▓┼┘
           └┴┘  └┴┘ └┴┴┴┴┘ └┴┘   └┴┘ └┴┘        └┴┴┴┴┘

   **********************************************************
   *              Описание программы 'Komp 3'               *
   **********************************************************

                На основе 'Komp 2', В.А.Бабкина.

   Программа 'Komp 3' предназначена для сжатия  графических фай-
лов: экранов, спрайтов  и  файлов  BK-Paint'а.  Может  выполнять
функцию конвертера спрайтов и файлов BK-Paint'а,  в формат файла
экран.  И использоваться программистами для вывода  картинок,  в
основном, в игровых программах.

   Отличия от 'Komp 2':
   ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
   1. Введён дружественный интерфейс;

   2. Разделены функции чтения экрана  и  спрайта, что позволило
      избавиться от "глюков";

   3. В ANDOS'е сжатое изображение  сразу записывается на адрес:
      1000;

   4. В полученный при помощи 'Komp 3' модуль  "сжатое изображе-
      ние", введена возможность записи картинки, с распаковкой в
      формате экран;

   5. За ненадобностью  выкинута запись  сжатого изображения без
      блока вывода, т.к. убрать блок вывода можно в любом отлад-
      чике, тем более сжатое изображение без блока вывода никому
      не нужно;

   Управление  программой   осуществляется  нажатием  выделенных
подчеркиванием буквенных клавиш.

   Например:
   ¯¯¯¯¯¯¯¯¯
   Чтение, [Экран, Спрайт, БК-Paint]: ■
            ¯      ¯          ¯
   Нажатие клавиш 'Э', 'С' и 'П' на любом  регистре,  приведет к
исполнению соответствующей команды.

                         Чтение Экрана.
                         ¯¯¯¯¯¯¯¯¯¯¯¯¯¯
   Чтение созданного в графическом  редакторе массива данных без
оглавления, например файлов T-Art'а с расширением *.pic , макси-
мальная длина такого файла - 40000.

                         Чтение Спрайта.
                         ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
   Чтение графического файла с оглавлением.  T-Art  таким файлам
подставляет расширение: *.spr, максимальная длина - 40004.

                    Чтение файла BK-Paint'а.
                    ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
   BK-Paint записывает картинку  в  виде 5 мелких файлов, с пос-
ледним символом имени:  0 - 4, соответственно.  (Вероятно  Автор
BK-Paint'а взял идею из Бейсика,  что нельзя назвать очень удоб-
ным).  В отличии от  BK-Paint'а  здесь  допустимо  использование
файлера.

   Далее предлагается набрать имя загружаемого файла.  Последний
введенный символ можно удалять клавишей  '◄═╡' (ЗАБОЙ).  Клавиша
'◄─┘' - закончить набор, 'КТ' - вернуться в предыдущий режим.

   После успешного считывания файла проверяется его длина.  Если
она превышает указанные выше значения  -  выводится надпись "ЭТО
НЕ ГРАФИКА!",  и  после нажатия любой клавиши  'Komp 3'  переза-
пускается.
   Надпись "ЭТО НЕ ГРАФИКА!" может появиться,  если вместо файла
BK-Paint'а прочитан файл в другом формате.
   Если файл очень длинный и при загрузке "упрется" в ПЗУ,должна
последовать реакция операционной системы,  сказать какая именно,
из-за большого количества последних,не представляется возможным.

   Затем появляется меню:
   ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
   Сжатие по [Горизонтали, Вертикали], [Настройка, вОзврат]: ■
              ¯            ¯            ¯           ¯
   или:

   Недопустимые значения! [Настройка, вОзврат]: ■
                           ¯           ¯
   Меню  "Недопустимые значения!"  может  появиться  только  при
чтении спрайта,  если в его оглавлении содержится  неверная  ин-
формация,  обычно это означает что Вы по ошибке прочитали совсем
даже не спрайт.  Опытный пользователь, если есть уверенность что
это все-таки картинка может выбрать пункт:  Настройка, о том как
им пользоваться см. ниже.

                     Сжатие по Горизонтали.
                     ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
   Графический файл  сжимается по горизонтали.  В некоторых слу-
чаях файл длиной 40000,  мне удавалось сжать до 1226, т.е. почти
в 30 раз!  Зависит от структуры рисунка,  чем  рисунок  сложнее,
тем хуже сжатие.

                      Сжатие по Вертикали.
                      ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
   Наиболее эффективно для большинства картинок.

                           Настройка.
                           ¯¯¯¯¯¯¯¯¯¯
   Предлагается ввести  Число  БАЙТ,  а  затем  Число  СТРОК,  в
восьмеричной системе.
   Работают  клавиши:  '0', '1', '2', '3', '4', '5',  '6',  '7',
'◄═╡', '◄─┘'  и  'КТ'.  '◄─┘' - зафиксировать изменения, 'КТ' –
отказ.
   Число БАЙТ не должно превышать 100,  а  Число СТРОК - 400 со-
ответственно.  Число БАЙТ умноженное на Число СТРОК  (в  восьме-
ричной системе)  не должно быть больше, чем Длина  массива.  При
превышении этих значений, после нажатия на '◄─┘' появляется над-
пись:  "Недопустимые значения!", и после нажатия  любой  клавиши
предлагается опять ввести Число БАЙТ  и  СТРОК,  или  нажать  на
'КТ' или '◄─┘'.
   Если сразу нажать клавишу '◄─┘', программа предложит наглядно
установить Число БАЙТ и СТРОК.  При  помощи  клавиш  '←'  и  '→'
картинка на экране будет изменяться,  а когда  она  примет  свой
нормальный вид, нажмите '◄─┘', 'КТ' - как и в предыдущих случаях
- отказ от настройки.

                            вОзврат.
                            ¯¯¯¯¯¯¯¯
   Полный перезапуск программы.

   После завершения сжатия, на экране:-

   Команда [Запись, изменение Адреса, вОзврат]: ■
            ¯                 ¯        ¯

                             Запись.
                             ¯¯¯¯¯¯¯
   Запись файла  "сжатое изображение",  с  перемещаемым  блоком,
который выводит картинку на экран и записывает её, с распаковкой
в формате экран.  Набор имени  записываемого модуля  в  точности
такой-же, как и в функции: "Чтение".
   Если после окончания  сжатия  полученный модуль "вылезает  на
экран", после записи, его адрес  в  каталоге  надо  изменить  на
1000.  О том как это сделать, см. описание операционной системы.
Или (если кто-то до сих пор  работает с магнитофоном) воспользо-
ваться CF50. В ANDOS файл всегда записывается на адрес 1000.
   После запуска модуля, нажатие клавиши  'Z'  на любом регистре
вызывает функцию записи картинки.  Экран  очистится  и  в  левом
верхнем углу появится надпись:

   ИМЯ? ■

   Набивается имя,  нажимается '◄─┘' и изображение  записывается
с распаковкой в формате экран.

                        изменение Адреса.
                        ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
   После завершения сжатия адрес вывода  на  экран по  умолчанию
устанавливается равным 40000,  т.е. картинка будет выводиться  в
левом верхнем углу экрана.  Сразу после вызова функции: 'измене-
ние  Адреса'  предлагается ввести  в  восьмеричной системе новый
адрес. Управление в точности такое-же, как и в 'Настройке', кла-
вишами  -  '0', '1', '2', '3', '4', '5', '6', '7', '◄═╡', '◄─┘',
'КТ'.  Недопустимыми значения считаются,  если  адрес  вывода на
экран меньше 40000, или адрес вывода на экран плюс длина массива
больше или равно  100000,  или  адрес вывода на экран плюс число
байт больше числа кратного 100. (40100, 40200, 40300 и т.д.).
   После нажатия '◄─┘', программа показывает как будет выглядеть
изображение после записи.  С помощью клавиш  '←', '→', '↑' и '↓'
можно перемещать изображение по экрану.  '◄─┘'  -  зафиксировать
изменения, 'КТ' - отказ.  (Можно нажать 'А', затем сразу '◄─┘' и
наглядно передвинуть картинку, например в центр экрана).
   Если сжатый модуль "вылезает на экран", функция  блокируется.
   Адрес всегда можно изменить в файлах BK-Paint'а, почти всегда
в спрайтах и редко в файлах формата экран.

                            вОзврат.
                            ¯¯¯¯¯¯¯¯
   Как и в прошлый раз, полный перезапуск программы.

   Выход в  DOS  из любого режима производится нажатием  клавиши
'ВС'.

                                                 Вадим Смирнов.

               Выражаю благодарность В.А.Бабкину.

   Приложение:
   ¯¯¯¯¯¯¯¯¯¯¯
   Текст блока вывода сжатой картинки  на экран.  Он  изменяется
основной программой в зависимости от характера сжатия  (по  вер-
тикали\горизонтали):

           EMT   14          ;очистка экрана, опрос  клавиа-
           RES               ;туры,запись распакованной кар-
           . . . . . . . .   ;тинки и т.д.

           .ADDR R3,BUFADR   ;организация перемещаемости
           MOV   (R3)+,R0    ;программы, если перемещаемость
           MOV  R3,R5        ;не нужна, то - MOV  #BUFADR,R3
           ADD   (R3)+,R5
           MOV   (R3)+,R1
           MOV   (R3)+,R2
           MOV   #200,R4
   MET1:   BITB  R4,(R5)
           BEQ   MET7
           CAL   MET5
           BITB  R4,(R5)
           BEQ   MET2
           CAL   MET9
   MET2:   MOV   R4,-(SP)
           MOVB  (R3)+,R4
           BIC   #177400,R4
   1$:     MOVB  (R3),(R0)+
           CAL   MET10
           SOB   R4,1$
           INC   R3
   MET3:   MOV   (SP)+,R4
           CAL   MET5
           BR    MET1
   MET4:   INC   R5
   MET5:   RORB  R4
           BCS   MET4
   MET6:   RET
   MET7:   MOV   R4,-(SP)
           MOV   #2,R4
   MET8:   CAL   MET9
           SOB   R4,MET8     ;изменения для  горизонтального
           BR    MET3        ;сжатия ─┐
   MET9:   MOVB  (R3)+,(R0)+ ;        ↓
   MET10:  ADD   #77,R0      ;SOB  R1,MET6
           SOB   R2,MET6     ;MOV  BYTES,R1
           MOV   LINES,R2    ;SUB  R1,R0
           MOV   R5,-(SP)    ;ADD  #100,R0
           MOV   #100,R5     ;SOB  R2,MET6
   2$:     SUB   R2,R0       ;CMP  (SP)+,(SP)+
           SOB   R5,2$       ;RET
           MOV   (SP)+,R5
           INC   R0
           SOB   R1,MET6
           CMP   (SP)+,(SP)+
           RET
   BUFADR: .WORD XXXXXX      ;Адрес вывода на экран
   BEGIN:  .WORD XXXXXX      ;Смещение до таблицы
   BYTES:  .WORD XXXXXX      ;Количество байт в строке
   LINES:  .WORD XXXXXX      ;Количество строк
           .WORD XXXXXX      ;Данные
           . . . . . . . .   ;Данные

           .WORD XXXXXX      ;Таблица
           . . . . . . . .   ;Таблица

           .END

                Структура сжатого модуля такова:
                ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
   Служебная информация,  данные, таблица.  Служебная информация
- это 3 слова: 1-е (BEGIN),  содержит смещение от  начала  файла
до первого байта таблицы, 2-е и 3-е - (BYTES и LINES) количество
байт  в  строке  и  количество строк.  Данные представляют собой
графическую информацию, в которой байты, повторяющиеся более 2-х
раз подряд заменены двумя байтами:  в  1-ом  записано количество
повторений содержимого  2-го  байта.  Таблица является  двоичным
массивом, который служит ключом к расшифровке всего изображения.


 
Всё об «Электроника БК0010(-01), БК0011(М)»! » Программы | Утилиты | ДОСы » Упаковщики (Архиваторы) данных » «Komp» » «Komp 3» [xx.xx.xx] (Автор: Смирнов В.)
Страница 1 из 11
Поиск:

-=RUS=-
ICQ: 320867225