Калькулятор TI-89 Titanium и его программирование на C

    Не так давно на Хабре была статья про графический калькулятор TI-83, и, поскольку я являюсь обладателем TI-89 Titanium — калькулятором следующего поколения от Texas Instruments, под катом я решил рассказать про него, и показать, как для этого калькулятора можно создавать свои собственные программы на С.

    В отличие от TI-83, в основе которого лежит 8-ми разрядный микропроцессор z80, TI-89 Titanium создан с использованием 32-х разрядного Motorola 68000:

    image

    Кроме этого, TI-89 Titanium обладает рядом других улучшений. Здесь я приведу его краткие характеристики:

    Процессор — 12 MHz MC68000, экран — монохромный, 160x100 пикселей, 256K RAM (188K доступно пользователю), 4M Flash ROM (примерно 2.7M доступно для пользователя), Standard I/O (никогда не пользовался), USB Mini Port (используется для обмена информацией с обычным компьютером):

    image

    Питается он от четырех батареек AAA (надо сказать, что потребляет достаточно много, так что при интенсивном использовании батарейки приходится менять достаточно часто). Имеется также дополнительная батарейка, сохраняющая настройки при замене основных батареек:

    image

    Существует множество ресурсов в интернете, посвященных калькуляторам TI и, в частности, TI-89 Titanium. В качестве примера можно привести www.ticalc.org. На этом ресурсе можно найти огромное количество различных описаний, программ и исходников для этого и других калькуляторов TI, например, игрушек.

    На самом деле, этот калькулятор предназначен для математических расчетов, и содержит в себе CAS (computer algebra system), которая позволяет производить не только численные расчеты, но и расчеты в символьной форме:

    image

    Но нас интересует, как создавать свои собственные программы на С. Для этого существует компилятор tigcc (http://tigcc.ticalc.org) созданный на основе gcc. К сожалению, данный проект давно не обновлялся, но, тем не менее, компилятор рабочий. Скачиваем его и устанавливаем на свою рабочую станцию под Linux. После этого компилируем с его помощью какое-нибудь простое консольное приложение типа «Hello world!» и получаем файл с расширением 89z. Это и есть наш исполнимый файл.

    Следующим этапом необходимо выгрузить нашу программу на калькулятор. Для этого устанавливаем приложение tilp выполняя «sudo apt install tilp2», подключаем USB кабель и запускаем tilp. Далее выбираем файлы, которые необходимо выгрузить (например нашу программу) и запускаем процесс выгрузки. Как только один или несколько файлов загружено на калькулятор, можно посмотреть их список, нажав 2nd+VAR-LINK. Для того, чтобы запустить загруженную программу, необходимо перейти в калькуляторе в HOME, там, где производятся обычные вычисления и набрать имя программы, а за ним поставить круглые скобки, то есть просто вызвать программу как функцию без аргументов.

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

    image

    Исходники этой программы можно скачать с моего сайта здесь.

    Следует отметить, что, к сожалению, tigcc не умеет хорошо оптимизировать код, поэтому программы получаются не самыми быстрыми. Это можно исправить, если писать на ассемблере, и заодно понять, насколько система команд у Motorola 68000 лучше, чем у x86. Множество примеров программ на ассемблере можно скачать с сайта ticalc.org.

    И последнее, но не менее важное. Если у вас нет такого калькулятора — вы все равно можете с ним поиграться. Для этого необходимо установить эмулятор «sudo apt install tiemu», который выглядит и работает в точности, как и его железный собрат:

    image
    AdBlock похитил этот баннер, но баннеры не зубы — отрастут

    Подробнее
    Реклама

    Комментарии 31

      +3
      А какова вообще ниша подобных калькуляторов в наше время? Я могу понять огромные бухгалтерские в которые удобно тыкать ручкой/нарощеными ногтями/чем еще. Но считать-то всяко удобнее в питоне/октаве или чем-нибудь платном. В поля его тоже особо не вывезешь в таком исполнении…
        0
        Математическое образование.
          0
          При чём тут это? Смартфоны есть почти у всех, поставить туда нужное ПО и работать. В школе/институте — удобнее тот же вольфрам на компе запустить, например. А тут получается отдельное устройство, с огромным количеством ограничений, порождающих огромное количество костылей…
            +1

            Вот смартфон вчистую проигрывает калькулятору по удобству.

              +1
              В школе/институте — удобнее
              Вы весьма далеки от сферы образования, не так ли? По крайней мере, школьного. Иначе бы знали, что любое значительное нововведение — это дело не одного года и не одного десятка решений на различных уровнях.

              Предположим, решили вы использовать личные смартфоны школьников вместо громоздких, медленных, ограниченных и при этом неприлично дорогих калькуляторов. Отличная идея (на самом деле), но как вы, к примеру, планируете обеспечить отсутствие дискриминации на уровне устройств? Школа — это равные шансы для всех. Но у кого-то родители побогаче, телефон подороже, «тупит» реже, работать с ним удобнее, у кого-то — наоборот. Каким образом вы хотите блокировать соединение с Интернетом во время контрольных? А что во время занятий? Разрешим переписываться и играть под партой или будем доставать телефон «когда надо» а потом сразу убирать обратно? И все 20-30 пубертирующих цветов жизни будут этому правилу следовать?

              Техническую поддержку («Ой, а у меня совсем другое показывает!») этого зоопарка устройств кому предлагаете обеспечивать? Учителю, у которого на всё про всё как правило 45 минут времени?

              Дальше всего в этом плане ушли разработчики GeoGebra: у их «калькуляторных» приложений и экзаменационный режим есть, и ограничение по набору функций, допустимых на экзаменах в той или иной земле, кажется несколько сотен школ уже участвуют в пилотном проекте, но путь до полного замещения, увы, ещё очень долгий.

              А если ещё и про лобби производителей калькуляторов вспомнить, имеющих с продажи «копеечку» (тот же fx-CG 20/50 ~100 € умножаем на 30 и на число седьмых классов в стране)…
                0
                Там, где нельзя пользоваться смартфоном/планшетом/ПК, например на экзаменах, никто не даст вам пользоваться и программируемым калькулятором. Опять же, как вам видится отсутствие дискриминации на уровне устройств, когда один школьник приходит с дорогущим Ti и гамится на нём в DOOM под партой, а родители другого с трудом наскребли на копеечный Casio? Так себе критерий. Мало того обязательная школьная программа построена таким образом, что использование калькуляторов там не требуется. Наоборот, она нацелена на то, чтобы ребёнок как можно интенсивнее задействовал мозг. Однако, как бы не ограничивали в школах использование мобильных девайсов, игры под партой — это святое.
                Ну и да, а техническая поддержка программируемых калькуляторов более простое дело по вашему, чем поддержка зоопарка смартфонов и прочей шелухи?
                  0
                  например на экзаменах, никто не даст вам пользоваться и программируемым калькулятором
                  В Германии графический калькулятор используется как на рядовых контрольных по математике, так и на выпускных экзаменах (Zentralabitur). В некоторых землях разрешены и CAS-модели.
                  как вам видится отсутствие дискриминации на уровне устройств
                  Элементарно: школа собирает деньги и заказывает партию [подставить нужную модель] для всех своих седьмых классов. Это не «видится», это так есть.
                  построена таким образом, что использование калькуляторов там не требуется
                  С программой школ в СНГ знаком лишь по личному опыту обучения, так что не скажу. В программе немецких общеобразовательных школ использование калькулятора не только предусмотрено, но и предписано.
                  чтобы ребёнок как можно интенсивнее задействовал мозг
                  Умение думать и умение эффективно производить расчёты далеко не одно и то же. Эпоха живых «компьютеров» давно миновала. Для подумать — есть голова, для посчитать — подходящий инструмент.
                  техническая поддержка программируемых калькуляторов более простое дело
                  Да. Сводится к замене батареек, набора которых хватает на четверть а то и полугодие если не играть на калькуляторе в игры. Машинки громоздкие но «неубиваемые».
                    0
                    Ну, надо было сразу обозначить, что речь про Германию.
                    По существу. Умение думать и умение эффективно производить расчёты (не путать с простой арифметикой, для которой и нужен калькулятор), с использованием ли вычислительной техники или собственного мозга, проистекает одно из другого. При этом, даже простая арифметика на бытовом (читай СНГ-школьном) уровне, весьма неплохо стимулирует мозг. Так же как и изучение языков, например.
                    И вопрос у меня возник. А неужели, в Германии, детям запрещают приходить в школу со смартфоном и приносить калькулятор отличный от других, даже если он соответствует заявленным к нему требованиям?
                      0
                      детям запрещают приходить в школу со смартфоном
                      Зависит от школы. Во многих гимназиях полный или частичный запрет на использование «развлекательной» электроники на территории школы (не только во время занятий). Приходить, разумеется, не запрещают, но использовать можно лишь для звонков домой из секретариата.
                      приносить калькулятор отличный от других
                      Опять же никто не запретит, но случаи редки. Никому не хочется быть «белой вороной».
            +4
            У детей в школах сша они обязательны с 6 кажется класса и часть материала объясняется с использованием функционала этого калькулятора
              0
              А какова вообще ниша подобных калькуляторов в наше время?
              В большинстве школ Германии аналоги TI-83/89 вводятся в 7 классе.
              В старших классах используется в основном Casio fx-CG 20/50, пришедший на смену FX-87/991.
              Так же эти калькуляторы допущены к использованию на местном аналоге ЕГЭ.
                0
                Интересно, что у нас на ЕГЭ информатике калькуляторы запрещены, а на ЕГЭ по физике разрешены, но только простые.
                  0
                  Учитывая то, что единственная польза от калькулятора на ЕГЭ по информатике — быстрая конвертация между системами счисления, не удивительно.

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

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

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

                  • НЛО прилетело и опубликовало эту надпись здесь
                      0
                      Риск вашего предположения неоправдан ))
                      О западном образовании я имею вполне полные представления, т.к. изучал их системы. Многие вещи там именно упираются в конкретную технологию или изобретение — как в случае с калькулятором конкретного бренда. И именно это-то и плохо, т.к. в образовании главное — универсальность.
                      +1
                      лишает самостоятельнрсти и находчивости
                      Как часто вы самостоятельно открываете консервные банки при помощи подручных средств?
                      Калькулятор (как «младший брат» компьютера) — такой же инструмент, как и консервный нож.

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

                      Креативность, кооперация, коммуникация и критическое мышление — «четыре К» 21 века.

                      Да, всегда будут те, кто заменит для себя понимание основ заучиванием последовательностей нажатий на клавиши калькулятора, но и (простите за банальность) дворники современному обществу тоже нужны.
                        0
                        С этим я не спорю, но нельзя одно заменять другим. Важно дать знания о том, как сделать / вычислить что-то самостоятельно, не прибегая к конкретным технологиям, и уже во вторую очередь — где и какие технологии существуют (сегодня), чтобы это сделать. Я подчеркиваю — «сегодня», т.к. «завтра» это уже будет что-то другое. А базовые методы и алгоритмы останутся в обозримом будущем неизменными.
                          0
                          но нельзя одно заменять другим
                          А ни о какой замене речи и не идёт. Речь идёт о том, что времена «быстро поделим пятизначное число на трёхзначное на бумажке» ушли.
                  +2
                  Не думали исходники с народа перенести в github/gitlab/bitbucket?
                    0
                    Может быть. Просто исторически они у меня на народе лежат с тех времен, когда никаких гитхабов еще и в проектах не было.
                  • НЛО прилетело и опубликовало эту надпись здесь
                      0
                      Если не ошибаюсь, встречал статью о БЗ-34/МК-52 здесь же на Хабре и там что-то было и об их генезисе.
                      • НЛО прилетело и опубликовало эту надпись здесь
                        +1
                        Похоже, что все же это была оригинальная разработка по мотивам существующих в то время HP.
                        Вот тут довольно интересные англоязычные обзоры:
                        www.rskey.org/b3-21
                        www.rskey.org/b3-34
                        www.rskey.org/mk61
                          0
                          Вроде что-то от HP взято…
                          0
                          Рассказ будет неполным без упоминания этого.
                            0
                            по моему сейчас у каждого в кармане есть смартфон. разве не удобней? ах да, батарейку жрёт
                              0
                              Удобнее. Быстрее. Но...
                              0
                              В статье не хватает подробностей разработки, особенностей архитектуры и т.п. Пример, как написать свою программу. Статья в стиле: во чего могу.

                              А код на narod.ru — это шедевр. Аш олдскулы свело!

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

                              Самое читаемое