ZX Spectrum
Game

Text Compression System

Your Computer (Великобритания),

Автор:

Жанр: Утилиты: Ввод-вывод


Язык

  • Русский
  • English

Управление

  • Клавиатура(?)

Игроков

  • Один

Доступные версии

Неофициальное издание
Играть!

Доступные версии

Неофициальное издание
Играть!
  •  Описание (авт.пер.)
  •  Информация
Описание Text Compression System (автоматический перевод)

Текст сжатия

             Алан Тобиас идет в течение немногим

             Письмо хруст на Spectrum.

Методы сжатия текстовой были в эксплуатации на компьютере си-

TEMS для ряда лет и различными методами являются доступны. Недавняя статья в компьютере (И.Ф. Болтон, Том 4 № 3) продемонстрировал такую ​​технику для ZX-81 где неиспользованные коды символов были использованы для представления чаще встречаются пары символов. Этот тип tokenisa- ции широко используется с кодами ASCII неиспользованных 128 до 255 принимаются для представления группы букв, слов или даже часто встречающихся фраз. Тем не менее, ограничение Этот способ нами в связи с тем, что только 128, или, самое большее, 255, Token значения возможны, т.е., текст может быть только частично tokenised. Я опишу простой текстовый COM- Техника бандажа, который преодолевает это ограничение и позволяет любой кусок текста, который будет полностью tokenised.   Принцип tokenising текста появляется очень привлекательная так как легко видеть, что часто встречающиеся слова или фразы могут быть заменены знаками гораздо меньшим количеством байтов, чем оригинальный текст. Один байт жетоны, имеющие значения в Диапазон от 0 до 255, вводить жесткие ограничения, как у нас уже отмечалось. Два байта жетоны, со значениями в диапазоне от 0 65535, явно чрезмерным. Тем не менее, когда мы со- Рассмотрим количество различных слов, вероятно, можно найти в приключение текст базы данных или даже в ежедневного использования, мы увидите, что это число составляет лишь несколько тысяч. Таким образом, если мы используем два байта на знак и ограничить количество предметы в словаре в 2048, что более чем адекватно подобранные для большинства приложений, то лексемы Число могут быть сохранены в 11 битах только с 5 оставаясь бит используются для передачи дополнительной информации о Текст. При разработке этой методики я решил использовать эти Биты для описания деталей текста пунктуации и планировка.

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

  Очевидное применение некоторых из неиспользуемых битов маркеров это указывает на наличие запятой или периодов следующий любое слово. Использование отдельного бита для каждого из них это Можно разместить слова, которые следуют оба.

  Когда мы построим словарь различных слов, которые в тексте, очевидно, желательно, чтобы любое слово происходящие как в начале и в середине предложения хранится в словаре только один раз. Таким образом, это будет предпочтительно использовать один из битов маркеров для указания что слово должно быть выведено с большой буквы на ее начать. Это требует, чтобы все слова сохраняются в dictio- ни капли должны иметь их первые буквы преобразуются к нижнему случай. Опять это возможно для нашей декодирования рутины к применять некоторые простые правила, а именно, что слово должно быть авто чески выход с большой буквы в начале любой Текст сообщения или после периода. Поэтому будет необходимо закодировать заглавную букву флаг немного только тогда, когда они необходимы в середине предложения.

  Еще один элемент пунктуации, которые можно было бы с кодировкой в Маркер немного, является наличие символа новой строки follo- Крыло слово плюс ее задней пустым, точка или запятая.

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

  В создании двух байт жетоны Я позаботился, чтобы свести к минимуму числа битов, которые будут установлены для любого слова. Это означает, что для подавляющего большинства слов в прохождение текста маркер будет содержать dictio- слова в ни капли номер только. Для словарь чисел меньше 256 в Маркер один байт, таким образом, достаточно во многих случаях. Однако когда-либо, нам нужны средства рассказывать процедуру декодирования должен ли он ожидать фишку одно- или двух байтов. Это может быть достигнуто с помощью одного оставшегося неиспользованного бит маркер, который, по необходимости, будет расположен в Первый байт маркера вместе с битами низких порядка Словарь номер позиции. Такое расположение позволит один байт жетоны для словарных чисел, меньших, чем 128 когда слова не требуют пунктуации биты флагов.

  Один оставшийся предмет, который мы должны определить является средством прекращения каждую строку токенов, которая представляет Сообщение. Для этого нам потребуется некоторое уникальное значение. Если в жетоны мы добавляем 1 к словарю чисел, так что есть максимум 2047 словарных статей пронумерованы от 1 до 2047, мы находим, что нулевое значение байта обеспечит подходят состоянии сообщение терминатор. Таким образом, если мы хотим, чтобы распечатать любой Текст сообщения, то необходимо только, чтобы найти подходя- появление ветствующих байта нулевым и начать печать на Маркер, который следует за ним.

  Для присутствует предполагается, что общее количество различные текстовые сообщения в базе данных не будет превышает 256. необходимое количество сообщений для вывода может затем быть задан одним байтом. Приложения, имеющие более чем 256 различных текстовые сообщения могут быть размещены на разрешение подходящий номер сообщения перечислены все основано на одной ввода текста.

  В хранении текста словаря нам нужны средства отмечая конец каждой записи. Подходящий способ делать это, кажется, в ПЗУ Spectrum и был использован здесь.

Это делается путем установки бита 7 окончательного характера в каждом Таким образом, запись придавая ему код ASCII из Грейтид чем 127. Все необходимые словарная статья, то обнаружил, путем размещения уместно появление словаря байт, в котором бит 7 был установлен.

  Ранее мы видели, что это не было необходимо, чтобы закодировать успешно дей- числе пробелы в явном виде. Поэтому, если мы хотим, чтобы определить Фразы, которые должны быть tokenised то надо рассмотреть другие способы представления пространства внутри них фразы. Простое решение заключается в представлении их некоторыми другой символ, предпочтительно тот, который вряд ли будет найден в другом месте в тексте. Система, описанная здесь, имеет был разработан, чтобы интерпретировать символ ‘@’ (ASCII 64), как “Фраза пространство». Когда нашли во фразе этот персонаж хранятся в явном виде в словарной статье, тогда как во время Выход она заменяется истинной пространстве.

  Использование шестигранный погрузчик показано в листинге 1, вы можете загрузить Z-80 машина-код подпрограмм, которые будут как сжать и расширить текст в соответствии с системой, описанной выше. List- числе 2 дает шестнадцатеричное дамп Z-80 машинного кода Процедуры. Процедура декодирования занимает 199 байт, начиная на месте 31000 и процедура сжатия занимает 315 байтов, начиная с расположения 31220. кода, начиная с Место 31199 просто устанавливает регистры для расширительного Сион рутина, как используется этот общей программы.

  Первый расположение буфера принтера (23296) держит Общее число символов в строке ввода линий Текст в то время как остальная часть буфера – 23297 до 23551 – используется для хранения входной текст.

  В листинге 3 приведен основной программы, которая будет управлять Процедуры сжатия текста описано выше. Это меню приводом и прост в использовании. Вариант 1 позволяет сбросить базовые адреса для обоих словаре и token- Сообщения ПУРЭ. Очень важно, чтобы вы выбрали эту опцию до первоначального ввода текста.

  Во время работы программы словаря слов и фразы строится при сканировании ввод текста. Это Способ работы имеет смысл, так как, по большому текста data- основы, то маловероятно, что и исходный, и сжатый Текст может быть сохранен одновременно. Для того, чтобы в полной мере Преимущество использования одного байта жетоны целесообразно ввести некоторые фиктивные текстовых сообщений уровне первоначально, содержащие слова вы считаете наиболее часто встречаются в вашей Текст. Когда вы сделали это, сбросить хранение сообщение но сохранить словарь.

  Поскольку программа дается здесь была разработана для COM- Пресс текст, как это ввода с клавиатуры, он позволяет выложить текст по мере необходимости. Во время ввода можно ввести в срок до восьми строк текста сразу – максимум 255 – символы и каждая секция ввода не должны завершить в конце предложения. Надо только, чтобы убедиться, что вы оставить пространство между каждым словом.   После завершения ввода для сообщения введите Символ “_” (ASCII 95) в качестве первого символа новой один элемент ввода. Как было отмечено выше, символ новой строки метры автоматически при условии, если следующее слово будет Отпечатано не впишется в текущей строке. Дополнительная new- символы строки могут быть вставлены в текст путем включения “^” характер (ASCII 94) в соответствующем месте.

  С исключением из персонажей показано в таблице 1, для которых специальная интерпретация применяется, все ASCII характеризуются метры с кодами в диапазоне от 32 до 127 будут рассматриваться как знаки обычного текста.

  Обратите внимание, что если вы хотите сэкономить сжатый текст Последующее расширение то важно, что это будет сделано с помощью программы таким образом, что все указатели сохраняются. Эти указатели необходимы только для системы сжатия-х бухгалтерия и не нужны любой программой, которая будет использовать сжатый текст. Точно так же, сжатие рутинный зубцы, хранятся в местах, 31220 в 31534, могут быть опущены от целевой программы. Вы, однако, требуют Сердце из рутины расширения – хранить в местах, 31000 на 31198, или надлежащим образом переведены в соответствии с требованиями. На входе в Начало этой рутины, зарегистрируйтесь ” должен содержать Необходимое количество сообщений и регистрации пар »гл ‘и’ BC ‘ должен указывать на стартовых адресов текстовых маркеров и Словарь соответственно. Так как они сохраняются в виде «кода» и положение независимым они могут быть загружены в любой

область памяти для вашей целевой программы.

 Таблица 1. Специальные символы входные

 Характеризуются ASCII Интерпретация

   тер код

    @ 64 Лечить, как пространство внутри фраз

    ^ 94 Вставить символ новой строки после слова

    _ 95 Конец ввода для текущего сообщения

 Рисунок 1. Текст Пример и соответствующие жетоны.

 Сообщение: Вы находитесь в темном, сыром подвале с узкими

 проход, ведущий на юг.

       Слово / фраза Значение маркера (ы)        Вы находитесь в 2        4        темный, 7, 64        влажные 8        подвал 10        с 12        4        узкий 14        Проход 16        ведущий 18        юг. 21, 32, 0

 Количество маркеров байт в сжатом сообщении = 14

Краткая информация о Text Compression System

Сыграйте в Text Compression System прямо сейчас! Программа для работы с вводом и выводом, которую подарил миру Alan Tobias, была опубликована компанией Your Computer в 1984 году в Великобритании.

Не запускается или глючит игра, или не можете пройти? Спросите в комментариях.

Subscribe
Уведомлять об
guest
0 комментариев
Inline Feedbacks
View all comments

Сохранённые игры[X]

  

Справка[X]

Помощь уже в пути!

  • x1
  • x2
  • x3

Кликни в окно эмулятора, чтобы управлять!
<<<<

Не забывайте периодически сохранять игровой прогресс на сервере (клавишей F8), чтобы уверенно продвигаться вперёд!

Если вы гость на сайте, то прогресс будет сохранён только в памяти браузера и потеряется при закрытии. Чтобы этого не произошло - просто войдите в свой профиль.

Для загрузки сохранённой игры жмите F3 или откройте меню "Диск" кнопкой на правой панели.

Если игра не запускается, или у вас есть вопросы по игре - задайте их ниже.

Поделиться
Close
0
Would love your thoughts, please comment.x