HP-41C

редактировать

Серия HP-41C
HP-41CX.jpg HP-41CX с устройством чтения магнитных карт и термопринтером
ТипПрограммируемый Scientific
Представлен1979
Снят с производства1990
Калькулятор
Режим вводаRPN
Тип дисплеяЖК-дисплей четырнадцатисегментный дисплей
Программирование
Язык (и) программированияRPN нажатие клавиши (полностью объединено, Тьюринг завершен )
Регистр памяти63.. 319
Этапы программы441.. 2233
Интерфейсы
Портычетыре в зависимости от производителя
Подключается кмикро- кассету через:

гибкий диск через:

  • HP-IL

ПК через один из:

Другое
Блок питаниячетыре батареи размера N или аккумулятор HP 82120A

Серия HP-41C программируемые, расширяемые, с постоянной памятью портативные RPN калькуляторы производства Hewlett-Packard с 1979 по 199 гг. 0. Исходная модель, HP-41C, была первой в своем роде, предлагавшей буквенно-цифровой дисплей. Позже появились модели HP-41CV и HP-41CX, предлагающие больше памяти и функциональность.

Содержание
  • 1 Буквенно-цифровая «революция»
  • 2 HP-41CV и CX
  • 3 Программирование
    • 3.1 Пример программирования
    • 3.2 FOCAL
  • 4 Синтетическое программирование
  • 5 Прием
  • 6 Использование на Space Shuttle
  • 7 Расширяемость
    • 7.1 Модули памяти (только HP-41C)
    • 7.2 Пакеты приложений
    • 7.3 82104A Картридер
    • 7,4 82182A Модуль времени
    • 7,5 82143A термопринтер / плоттер
    • 7,6 82242A интерфейс инфракрасного принтера
    • 7,7 82153A оптическая трубка
    • 7,8 82180A модуль расширенных функций
    • 7,9 82181A модуль расширенной памяти
    • 7,10 HP82160A интерфейсный модуль HP (HP-IL)
  • 8 клонов
  • 9 изображений
  • 10 См. Также
  • 11 Ссылки
  • 12 Дополнительная литература
  • 13 Внешние ссылки
Буквенно-цифровая «революция»

The буквенно-цифровой ЖК-экран HP-41C произвел революцию в способах использования карманного калькулятора, обеспечивая удобство для пользователя (для своего времени) и расширяемость (функции без клавиатуры можно было писать в алфавитном порядке). Используя буквенно-цифровой дисплей, калькулятор мог сообщить пользователю, что происходит: он мог отображать содержательные сообщения об ошибках («ZERO DIVIDE») вместо просто мигающего нуля; он также может специально запрашивать у пользователя аргументы («ENTER RADIUS») вместо простого отображения вопросительного знака.

Раньше калькуляторы требовали клавиши или комбинации клавиш для каждой доступной функции. HP-67 имел три клавиши переключения (префиксные золотые «f», синие «g» и черные «h»); у конкурирующих калькуляторов Texas Instruments было два (2nd и INV) и около 50 клавиш (у TI-59 было 45). Hewlett-Packard были ограничены своим однобайтовым форматом инструкций. Более гибкий формат хранения программ в TI-59 позволил объединить больше ключей в одну инструкцию. Самая длинная инструкция требовала одиннадцати нажатий клавиш с повторным использованием клавиш Shift четыре раза. В TI-59 также использовалась клавиша Op, за которой следовали две цифры для доступа к еще 40 различным функциям, но пользователь должен был запомнить их коды. Понятно, что требовался более удобный и гибкий способ выполнения инструкций калькулятора. HP-41C имел относительно небольшую клавиатуру и только одну клавишу Shift, но имел сотни функций. Каждая функция, которая не была назначена клавише, могла быть вызвана с помощью клавиши XEQ (произносится как E XEQ TE - «выполнить») и описана полностью, например XEQ ФАКТ для функции факториал.

У калькулятора был специальный пользовательский режим, в котором пользователь мог назначить любую функцию любой клавише, если назначения по умолчанию, предоставленные HP, не подходят для конкретного приложения. Для этого режима HP-41C поставлялся с пустыми шаблонами клавиатуры; то есть пластиковые крышки с отверстиями для клавиш, чтобы пользователь мог комментировать индивидуальные клавиши. Hewlett-Packard даже продала версию калькулятора, на которой почти не было клавиш с напечатанными названиями функций, предназначенная для пользователей, которые будут использовать HP-41C только для пользовательских вычислений (таким образом, не нуждаясь в стандартной раскладке клавиш вообще); эта версия калькулятора была в просторечии известна в команде HP-калькуляторов Corvallis как «Blanknut» (потому что кодовое название разработки процессора HP-41C было известно как «кокосовый орех»).

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

HP-41C отображал каждый символ в блоке, состоящем из 14 сегментов, которые можно было включить или выключить; так называемый четырнадцатисегментный дисплей (похожий на гораздо более распространенный семисегментный дисплей , который может использоваться только для отображения цифр). В HP-41C использовался жидкокристаллический дисплей вместо широко распространенных светодиодных дисплеев той эпохи, чтобы снизить энергопотребление.

Хотя это позволяло отображать прописные буквы, цифры и несколько знаков пунктуации (набор символов FOCAL ), некоторые рисунки необходимо было произвольно изменять (например, чтобы отличить S от 5) а строчные буквы были нечитаемыми (HP обеспечивала отображение только строчных букв от a до e). Конкурент HP Sharp, представляя PC-1211, использовал точечную матрицу из точек 5 × 7 и отображал символы в принципе такими, какими мы их видим сегодня. компьютерные экраны (и, фактически, многие ЖК-экраны в различных встроенных системах ); Позднее это было использовано HP в портативном компьютере HP-71B.

HP-41CV и CX

Многие пользователи использовали все четыре порта для расширения памяти, не оставляя места для других модулей. Компания HP разработала модуль памяти Quad с четырехкратным объемом памяти, обеспечивая максимально доступную память и оставив три пустых порта. HP-41CV (V означает римская цифра вместо 5) включает этот модуль памяти на материнской плате, что обеспечивает в пять раз больше памяти, чем HP-41C, и четыре доступных слота..

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

Последняя модель HP-41, HP-41CX, включала расширенную память, встроенный модуль времени и расширенные функции. Он был представлен в 1983 году и прекращен в 1990 году.

Программирование

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

HP-41C также поддерживает косвенную адресацию (computed goto ), с помощью которой можно реализовать универсальную машину Тьюринга и, следовательно, модель программирования HP- 41C можно считать полным по Тьюрингу. Комбинация косвенной адресации и gotos легко привела к спагетти-коду.

Шаги программы нумеруются, начиная с 1, но эта нумерация не имеет внутреннего значения и изменяется по мере добавления или удаления новых инструкций в середине программы. Специальная инструкция LBL используется для создания метки, на которую затем ссылается пользователь для вызова программы или сама программа как цель инструкции GTO (безусловный переход) или XEQ (выполнение).

Пример программирования

Вот пример программы, которая вычисляет факториал целого числа от 1 до 69 (70! Требуется экспонента больше 99, максимум калькулятора), это целое число передается в качестве параметра через регистр X. Программа занимает 2 регистра, что составляет ≈14 байт.

Операционный код шага Комментарий 01 LBL'Fac ALPHA-метка делает программу доступной для вызова с помощью 'XEQ Fac' 02 STO 00 Сохранить X = параметр в регистре 0 03 1 Введите 1 в X, «подъем» или «нажатие», стек  ; Y = параметр (больше не используется) X = 1 04 LBL 00 Метка для goto 05 RCL 00 Вызов регистра 0 в X, поднятие стека; Z = параметр (больше не используется) Y = 1 или промежуточный или конечный факториал X = параметр или декремент N-I 06 * Умножение X и Y, «отбрасывание» или «выталкивание» стека; Y = параметр (больше не используется) X = промежуточный или конечный факториал 07 DSE 00 D приращение регистра 0 и S пропустить следующую команду, если значение регистра равно E qual на 0 08 GTO 00 Перейти к метке 0 09 КОНЕЦ Конец программы - результат отображается в X

FOCAL

Хотя язык программирования, используемый в серии 41, является версией языков программирования нажатия клавиш, используемых во всех предшествующие программируемые калькуляторы HP, ряд технологий, а также связанные с программированием функции удобства использования и расширения, доступные в моделях серии 41 (в частности, накладки клавиатуры, полностью переназначаемая клавиатура, возможности ввода-вывода для хранения и совместного использования программ, а также буквенно-цифровая поддержка), Пользователи предложили новое имя для языка, в результате чего компания FOCAL выиграла конкурс на «Сорок один язык калькуляторов». Поскольку название FOCAL уже использовалось в Digital Equipment Corporation, это название никогда официально не использовалось HP.

Синтетическое программирование

Большое сообщество пользователей было создано вокруг HP-41C. Энтузиасты со всего мира нашли новые способы программирования, создали собственное программное обеспечение (например, игру с взломом кода и версию Hunt the Wumpus ) и модули расширения, а также ускорили время (см. разгон ). Большая часть этих мероприятий координировалась клубом PPC и его президентом Ричардом Дж. Нельсоном. Клуб PPC опубликовал PPC Journal и выпустил PPC ROM, набор высоко оптимизированных низкоуровневых программ для HP-41C.

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

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

Reception

В выпуске за декабрь 1980 года журнал BYTE описал HP-41C как «самую универсальную машину из когда-либо существовавших». Автор похвалил документацию HP как «одну из лучших в отрасли» и сообщил, что калькулятор «намного проще программировать и отлаживать», чем TI-59. Заявив: «Я нашел HP-41C гораздо более приятным для программирования и использования, чем его предшественники» из-за его буквенно-цифрового дисплея, автор пришел к выводу, что это «может быть, не совсем» карманный компьютер. В следующем выпуске другой автор написал, что «HP-41C... относится к числу программируемых калькуляторов, которые находятся ближе всего к компьютерной границе. Он подходит достаточно близко, чтобы компьютерный жаргон был полезен при его описании», и похвалил простота и надежность кардридера и совместимость с программным обеспечением HP-67 и HP-97. В обзоре подверглись критике неточности в расчетах из-за отсутствия знаков разряда ; «Есть что-то абсурдное в том, что самый фантастический калькулятор в мире не может давать результаты с точностью до семи или восьми знаков после запятой». Hewlett-Packard ответила, что предполагаемая неточность присуща арифметике на любом компьютере с конечной точностью.

Использование на космическом шаттле
NASA HP-41CV с липучкой для удержания его в переносном ящике, 1983 г. Астронавт Салли Райд в миссии STS-7 с тремя летающими за ней HP-41C

HP-41C, совершившая девять первых миссий Space Shuttle экспонируется в Национальном музее авиации и космонавтики в Вашингтоне, округ Колумбия. HP-41C с некоторыми специальными аппаратными конфигурациями (добавление липучки, предварительный модуль времени и более громкий звуковой сигнал, а также удаление деталей, дегазация которых может вызвать загрязнение) были выполнены в ранних миссиях шаттла с целью выполнения обыденных, но необходимых вычислений, таких как расчет изменения центра тяжести из-за расхода топлива. HP-41C также был запрограммирован для обработки расчетов, обычно выполняемых главным бортовым компьютером, таких как определение времени зажигания для повторного входа в систему в случае отказа главного компьютера.

Возможность расширения

Функции калькулятора могут быть расширены путем добавления модулей в верхней части машины. Было доступно четыре слота для добавления дополнительной памяти, предварительно запрограммированные пакеты решений, содержащие программы, охватывающие инженерию, геодезию, физику, математику, финансы, игры и т. Д. Таким образом, HP-41 фактически мог быть адаптирован к личным потребностям пользователя.. Аппаратные расширения включали термопринтер, устройство чтения магнитных карт (совместимое с HP-67 через программное обеспечение конвертера) и «палочку» (считыватель) штрих-кода.

Модули расширения также могут добавлять новые инструкции к машине. Стандартный набор математических функций 41-й серии был несколько ограничен по сравнению с функциональностью некоторых современных калькуляторов HP (в частности, HP-34C и HP-15C ). Среди прочего, стандартный набор функций не предлагал возможности интеграции или поиска корней и не поддерживал матрицы и комплексные числа; эти дополнительные функции могут быть добавлены модулем расширения.

Другой модуль, известный как Интерфейсная петля, позволял подключать больше периферийных устройств: принтеры большего размера, микрокассеты магнитофоны, 3½-дюймовые гибкие диски приводы, RS-232 интерфейсы связи, интерфейсы видеодисплея и т. д. Интерфейсную петлю можно также использовать с HP-71B, HP-75 и HP-110 компьютеры.

Слоты расширения модулей расширения (или расширения) HP-41CX

HP-41 позволяли пользователю программируемого калькулятора HP-41 расширять функциональные возможности устройства. В задней части калькулятора HP-41 можно было разместить до четырех модулей расширения.

HP-41 был не единственным калькулятором своего поколения, который допускал модули расширения. TI-58 и TI-59 также имели сменные модули ПЗУ. Однако модули HP-41 были гораздо более универсальными.

Модули памяти (только HP-41C)

Модуль памяти HP 82106A для HP-41C Модуль памяти HP 82170A QUAD для HP-41C

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

Исходный HP-41C имел основную память из 63 регистров по 7 байтов каждый. Каждый регистр может содержать либо число, либо строку из 6 символов, либо до семи шагов программы на языке FOCAL (в шагах программы используется переменное количество байтов).

В каждый модуль памяти добавлено 64 регистра, и калькулятор мог вместить до четырех из них, в общей сложности 319 регистров. Хотя в то время это считалось огромным (немногим более 2 килобайт ), все слоты расширения использовались. Группы пользователей нашли способ объединить две микросхемы памяти в один модуль, освободив таким образом два слота расширения. HP разработала модуль, вмещающий все четыре в одном слоте, так называемый модуль памяти Quad. Более поздний HP-41CV имел встроенный четырехъядерный модуль.

Пакеты приложений

Модули pac приложений на основе ROM добавили до 4 килобайт постоянной памяти (некоторые до 8 килобайт, но это были просто два независимых модуля 4K в одной коробке). Большинство модулей содержат десятки программ, написанных на языке программирования HP-41C, FOCAL.

Программы в модулях ПЗУ могут быть вызваны из пользовательской программы с использованием повсеместной функции XEQ. В программном коде XEQ появился как «XROM», когда он использовался для вызова программы ROM.

82104A устройство чтения карт

HP 82104A - устройство чтения / записи карт Магнитная карта HP

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

Поскольку у HP-41C была энергонезависимая память (пользовательские программы и данные не стирались при отключении питания), не было абсолютной необходимости в постоянном запоминающем устройстве, поэтому карта читатель был необязательным.

Каждая карта содержала две полосы по 112 байтов каждая, которые могли содержать 16 регистров данных или до 112 программных шагов. Эта ограниченная емкость приводила к тому, что типичные программы требовали сохранения пяти или более магнитных карт. Для полной резервной копии 319 регистров памяти машины и внутренних данных требовалось 11 магнитных карт (каждую карту приходилось вставлять дважды).

Устройство чтения карт могло читать магнитные карты от более ранней модели HP-67. Программы HP-67 были переведены в инструкции HP-41C, поскольку HP-67 и HP-41 используют одну и ту же модель программирования и операционный стек. Некоторые инструкции, однако, были специфичны для HP-67, и устройство чтения карт предоставило дополнительные инструкции для эмуляции 67.

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

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

82182A модуль времени

Модуль времени добавил часы реального времени. Часы позволяли использовать в программах реальное время. Пользователь мог устанавливать будильники, которые запускали вызовы пользовательских программ. Сигналы тревоги могли включать калькулятор, поэтому можно было создавать программы, которые выполнялись в какой-то момент в течение дня, а затем выключать калькулятор до следующего сигнала тревоги. Поскольку HP-41 часто использовался в качестве устройства для сбора данных в лабораториях, это позволяло калькулятору считывать данные с контролируемых устройств в определенное время каждый день, без необходимости оставаться полностью включенным между измерениями (таким образом, экономя емкость аккумулятора).

В HP-41CX был встроенный модуль времени.

82143A термопринтер / плоттер

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

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

82242A инфракрасный интерфейс принтера

Вместо использования вышеупомянутого принтера этот модуль может использоваться для сопряжения термопринтера с инфракрасным интерфейсом, а именно, и. Это позволяет печатать на ходу без использования кабелей, но самому принтеру также нужны батареи.

82153A оптическая палочка

HP 82153A - оптическая палочка

Оптическая палочка представляла собой считыватель штрих-кодов в форме толстой ручки и был разработан для считывания строк штрих-кодов проприетарного стандарта HP в память калькулятора. Штрих-коды, напечатанные, например, Книги по решениям HP могут содержать программы, числовые или буквенные константы и даже нажатия клавиш (позволяющие работать с калькулятором без использования клавиатуры), что полезно для диагностики калькуляторов, где предполагается, что клавиатура неисправна.

Модуль расширенных функций 82180A

Модуль X Functions 82180A для HP-41C / CV

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

Но наиболее важной новой функцией было управление расширенной памятью: в то время как HP-41C теоретически мог получить доступ к 1024 регистрам, ранний дизайн ограничивал основную память только 319 регистрами. В модуль «Расширенные функции» добавлены инструкции по управлению банком дополнительной памяти в доступном адресном пространстве машины. Поскольку эта память не была напрямую адресована пользовательским программам, она рассматривалась как набор именованных файлов, содержащих программы или данные. Программы и регистры данных можно было копировать туда и обратно из расширенной памяти в основную память, где к ним можно было обращаться как обычно.

Расширенная память может также содержать файлы ASCII, а также была добавлена ​​элементарная память.

Модуль расширенных функций содержал 124 регистра расширенной памяти. Еще можно добавить... Модули расширенной памяти. HP-41CX в стандартной комплектации содержал модуль расширенных функций.

82181A Модуль расширенной памяти

X Модуль памяти HP82181A для HP-41CX

Модули расширенной памяти добавили дополнительный объем памяти к HP-41C. Они требовали наличия модуля с расширенными функциями или версии калькулятора HP-41CX.

В каждый модуль добавлено 238 регистров расширенной памяти. Можно было вставить до двух модулей расширенной памяти, всего 124 + 2 * 238 = 600 регистров. В дополнение к 319 регистрам основной памяти, это покрыло практически все 1024 адресуемых регистров машины, всего 919 регистров или 6433 байта.

HP82160A Модуль петли интерфейса HP (HP-IL)

См. Основную статью о HP-IL.

Клоны

Продолжающаяся популярность HP- 41CX среди пользователей подсказал SwissMicros создать миниатюрный калькулятор размером примерно с кредитную карту ID-1 (88 мм × 59 мм × 7 мм) в 2015 году. Он называется DM41. оригинальная прошивка HP-41CX с расширенной памятью и часами реального времени в эмуляторе на процессоре ARM Cortex-M0 на базе NXP. В отличие от оригинала, он выполнен в ландшафтном форм-факторе (как известно из серии Voyager компании Hewlett-Packard) с переставленными клавишами, имеет точечно-матричный дисплей, переключаемые тактовые частоты и, на основе Silicon Labs преобразователь CP2102, он поставляется с последовательным интерфейсом USB (Mini-B ) для обмена данными с ПК и т. Д. В целях резервного копирования, для возможной связи с приложениями (например, эмуляторами на базе ПК) или для обновления прошивки. В декабре 2015 года SwissMicros представила DM41L, версию калькулятора примерно того же размера, что и калькуляторы серии HP Voyager. Он по-прежнему оснащен разъемом USB Mini-B.

Изображения
См. Также
Ссылки
Дополнительная литература
  • Руководство по эксплуатации HP-41C - Руководство для опытного пользователя (PDF). Компания Hewlett-Packard. Июнь 1980 г. 00041-90259. Архивировано (PDF) из оригинала на 2018-01-04. Проверено 4 января 2018 г.
  • Эмери, Кен (1985). HP-41 MCode для начинающих. Беркли, США: Synthetix. ISBN 0-9612174-7-2.
  • Майер-Енджеёвич, В.А.С. (1986). Расширьте свой HP-41. Беркли, США: Synthetix. ISBN 0-9510733-0-3.
  • Эрттель, Буркхард; Хюмпфнер, Рейнхольд; Мейер, Бернхард; Шилли, Майкл; Вебер, Андреас; Лейсснер, Франк; Кайзер, Аксель; Стревински, Рейнхард; фон Боррис, Себастьян; Далковски, Хайнц; Фегерт, Стефан (2014) [1989]. Фегерт, Стефан; Далковски, Хайнц (ред.). Eine Programmsammlung für den HP-41 [Сборник программ для HP-41] (PDF) (на немецком языке). Берлин, Германия: [de ]. ISBN 3-88538-809-X. Архивировано (PDF) из оригинала на 2018-01-04. Проверено 4 января 2018 г.
  • Уикс, Уильям К. (1980). Синтетическое программирование на HP-41C. Корваллис, США: Larken Publications. ISBN 978-0962525803.
Внешние ссылки
Представление разработчика 14-сегментного ЖК-дисплея Код эмуляции калькулятора HP41CX.
Последняя правка сделана 2021-05-22 09:35:19
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте