MouseText

Материал из Национальной библиотеки им. Н. Э. Баумана
Последнее изменение этой страницы: 12:40, 5 июня 2018.
Набор символов MouseText

MouseText, разработанный Bruce Tognazzini, представляет собой набор из 32 графических символов, впервые реализованных в Apple IIc. Затем они были доработаны для Apple IIe, являющегося частью усовершенствования Enhanced IIe. Несколько измененная версия была выпущена с Apple IIgs.[Источник 1]

Включая символы рисования, MouseText позволил отображать простые текстовые пользовательские интерфейсы, похожие на графический пользовательский интерфейс Macintosh. Поскольку у Яблок не было возможности отображать пользовательские символы в текстовом режиме, все графические интерфейсы, подобные грубому приближению ASCII, должны были использовать более медленный и более голодный графический режим до того, как MouseText был доступен. MouseText привел к восьмикратному увеличению скорости отображения для приложений для мыши, в результате чего такие текстовые приложения, как текстовые процессоры, достигли той же скорости, что и исходный Macintosh. Однако текстовые процессоры, работающие на двух компьютерах, не будут путать друг с другом, поскольку мышь под MouseText будет перемещаться в дискретных переходах от ячейки символа к ячейке символа, а не к плавному движению Macintosh, а текст все еще моноширин.

Символы MouseText поначалу вызывали проблемы в использовании некоторых старых программ, которые впоследствии были обновлены. Проблема состояла в том, что символы не всегда отображались в том регистре, в котором нужно.

На компьютерах, не оснащенных Apple IIe, альтернативный набор символов содержал два набора обратных прописных символов. В расширенном Apple IIe и на всех компьютерах Apple IIc и IIGS один набор обратных прописных символов заменяется набором символов MouseText. MouseText - это набор графических символов, предназначенных для того, чтобы компьютеры Apple II отображали метафору рабочего стола на текстовом экране. Apple II Desktop Toolkit использует эти символы, как и приложения, такие как AppleLink-Personal Edition.

Если ваша программа использовала набор обратных прописных символов, которые были заменены на MouseText (набор, сопоставленный с значениями ASCII $ 40- $ 5F), ваша программа будет отображать символы MouseText вместо обратных символов верхнего регистра на всех компьютерах Apple II, которые в настоящее время выпускаются. Если ваша программа использовала другой набор обратных символов в верхнем регистре (значения ASCII $ 00- $ 1F), он отображает обратные символы капитала, как ожидалось.[Источник 2]

Программы Mousetext

  1. Программа полностью написана на BASIC или Pascal, или программа на языке ассемблера вызывает процедуру COUT для размещения символов на экране, вы не будете затронуты. Единственное исключение - если вы напечатаете (POKE) обратные символы непосредственно на текстовом экране в BASIC.
  2. Программа использует стандартный набор символов (курсор шахматной доски).
  3. Программа использует альтернативный набор символов (сплошной курсор) и непосредственно сохраняет значения (через POKE) в области текстового отображения, вы столкнетесь с проблемами, если ваши значения символов находятся в диапазоне от 64 (от 40 до 95) $ 5F). Чтобы воссоздать исходный дисплей, используйте значения в диапазоне от 0 ($ 0) до 31 ($ 1F). Обратите внимание, что эти более низкие значения отображаются как обратные символы верхнего регистра на старых машинах.

Доступ к MouseText с разных языков

AppleSoft BASIC

  1. Включите видеопрограмму с PR # 3 (если в DOS 3.3 или ProDOS используйте PRINT CHR $ (4), «PR # 3»)
  2. Включите символы MouseText, распечатав ASCII 27 ($ 1B) на экране.
  3. Установите режим обратной печати, распечатав ASCII 15 ($ 0F) на экране.

Чтобы остановить отображение символов MouseText:

  1. Отключите символы MouseText, напечатав ASCII 24 (18 долларов США) на экране.
  2. Установите нормальный режим печати (при желании), распечатав на экране ASCII 14 ($ 0E).

Эта короткая программа BASIC отображает все символы MouseText в DOS 3.3 и ProDOS:

10    D$=CHR$(4)
    20    PRINT D$;"PR#3": REM Turn on the video firmware
    30    PRINT:REM This is so the screen won't be in inverse
    40    PRINT CHR$(15):REM Set inverse mode
    50    PRINT CHR$(27);"ABCEDFGHIJKLMNOPQRSTUVWXYZ@[]^_\";CHR$(24)
    60    PRINT CHR$(14):END

Ассемблер

Ожидается, что программы на языке ассемблера будут следовать той же процедуре, что и AppleSoft BASIC. Используйте вызовы COUT для печати символов MouseText на экран. Ниже приведен пример программы языка ассемблера, в которой отображаются два символа MouseText (которые создают значок папки), а также их обратные эквиваленты в верхнем регистре:

START        LDA #$A0           ;USE A BLANK SPACE TO
             JSR $C300          ;TURN ON THE VIDEO FIRMWARE
             LDY #0             ;INITIALIZE COUNTER
LOOP         LDA STR,Y          ;GET VALUE
             JSR $FDED          ;SEND IT THROUGH THE COUT ROUTINE
             INY
             CPY STRLEN
             BNE LOOP           ;=>NOT DONE YET
             RTS
STR          DFB $1B,$58,$59,$18,$58,$59
                                ;MOUSETEXT ON, SHOW, MOUSETEXT OFF, SHOW
STRLEN       EQU *-STR          ;LENGTH OF STR

Примечание. Использование MouseText на текстовом экране, непосредственно выбирая или сохраняя значения символов MouseText в текстовом буфере, в настоящее время не поддерживается Apple. Если набор символов MouseText требует переназначения в будущем, те программы, которые используют методы, описанные в этой заметке, должны работать с любым новым сопоставлением. Те, которые непосредственно хранят значения MouseText, подвержены сильному риску отказа дисплея при новом сопоставлении.[Источник 3]

Apple II Pascal

  1. Выведите CHR (27), escape-символ, чтобы включить MouseText.
  2. Выведите CHR (15), чтобы включить обратное видео.
  3. Выведите соответствующую заглавную букву для желаемого символа MouseText.

Пробная программа Pascal:

 PROGRAM OUTPUT_MOUSETEXT
VAR CMD:PACKED ARRAY[0..1] OF 0..255
BEGIN
CMD[0]:=27; CMD[1]:=15;
UNITWRITE(1,CMD,2); {turn on MouseText mode}
{code to display MouseText
.
.
}
CMD[0]:=24;
UNITWRITE(1,CMD,1); {turn off MouseText mode}
END


Примечание

Изображения символов MouseText в этих руководствах отличаются от ранних реализаций. В ранних наборах символов MouseText значки, сопоставленные буквам F и G, объединяются, чтобы сформировать «управляющего человека». В текущем производстве эти буквы представляют собой разные изображения (обратный символ возврата каретки и шаблон строки заголовка окна), которые не образуют изображения при размещении рядом друг с другом. Программы не должны пытаться использовать управляющих персонажей MouseText.

Источники

  1. MouseText // Livecode Wikia. [2007-2018]. Дата обновления: 12.11.2009. URL: http://livecode.wikia.com/wiki/MouseText (дата обращения:04.06.2018)
  2. Компьютеры Apple от альфы до омеги. Часть 5. Apple IIe // Appleinsider. [2009-2018]. Дата обновления: 16.01.2011. URL: https://appleinsider.ru/istoriya-apple/kompyutery-apple-ot-alfy-do-omegi-chast-5-apple-iie.html (дата обращения:04.06.2018)
  3. Mouse #6: MouseText Characters // Mirrors Apple2. [2006-2018]. Дата обновления: 11.09.2017. URL: http://mirrors.apple2.org.za/apple.cabi.net/FAQs.and.INFO/A2.TECH.NOTES.ETC/A2.CLASSIC.TNTS/mouse006.html (дата обращения:04.06.2018)