Не так давно на Хабре была статья про графический калькулятор 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

Комментарии (28)


  1. nerudo
    27.04.2019 15:34
    +1

    А какова вообще ниша подобных калькуляторов в наше время? Я могу понять огромные бухгалтерские в которые удобно тыкать ручкой/нарощеными ногтями/чем еще. Но считать-то всяко удобнее в питоне/октаве или чем-нибудь платном. В поля его тоже особо не вывезешь в таком исполнении…


    1. andy_p Автор
      27.04.2019 15:47

      Математическое образование.


      1. ebragim
        28.04.2019 01:57

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


        1. VolodjaT
          28.04.2019 09:36

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


        1. GeMir
          28.04.2019 19:45

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

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

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

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

          А если ещё и про лобби производителей калькуляторов вспомнить, имеющих с продажи «копеечку» (тот же fx-CG 20/50 ~100 € умножаем на 30 и на число седьмых классов в стране)…


          1. red_dragon
            29.04.2019 09:29

            Там, где нельзя пользоваться смартфоном/планшетом/ПК, например на экзаменах, никто не даст вам пользоваться и программируемым калькулятором. Опять же, как вам видится отсутствие дискриминации на уровне устройств, когда один школьник приходит с дорогущим Ti и гамится на нём в DOOM под партой, а родители другого с трудом наскребли на копеечный Casio? Так себе критерий. Мало того обязательная школьная программа построена таким образом, что использование калькуляторов там не требуется. Наоборот, она нацелена на то, чтобы ребёнок как можно интенсивнее задействовал мозг. Однако, как бы не ограничивали в школах использование мобильных девайсов, игры под партой — это святое.
            Ну и да, а техническая поддержка программируемых калькуляторов более простое дело по вашему, чем поддержка зоопарка смартфонов и прочей шелухи?


            1. GeMir
              29.04.2019 14:26

              например на экзаменах, никто не даст вам пользоваться и программируемым калькулятором
              В Германии графический калькулятор используется как на рядовых контрольных по математике, так и на выпускных экзаменах (Zentralabitur). В некоторых землях разрешены и CAS-модели.
              как вам видится отсутствие дискриминации на уровне устройств
              Элементарно: школа собирает деньги и заказывает партию [подставить нужную модель] для всех своих седьмых классов. Это не «видится», это так есть.
              построена таким образом, что использование калькуляторов там не требуется
              С программой школ в СНГ знаком лишь по личному опыту обучения, так что не скажу. В программе немецких общеобразовательных школ использование калькулятора не только предусмотрено, но и предписано.
              чтобы ребёнок как можно интенсивнее задействовал мозг
              Умение думать и умение эффективно производить расчёты далеко не одно и то же. Эпоха живых «компьютеров» давно миновала. Для подумать — есть голова, для посчитать — подходящий инструмент.
              техническая поддержка программируемых калькуляторов более простое дело
              Да. Сводится к замене батареек, набора которых хватает на четверть а то и полугодие если не играть на калькуляторе в игры. Машинки громоздкие но «неубиваемые».


              1. red_dragon
                30.04.2019 05:55

                Ну, надо было сразу обозначить, что речь про Германию.
                По существу. Умение думать и умение эффективно производить расчёты (не путать с простой арифметикой, для которой и нужен калькулятор), с использованием ли вычислительной техники или собственного мозга, проистекает одно из другого. При этом, даже простая арифметика на бытовом (читай СНГ-школьном) уровне, весьма неплохо стимулирует мозг. Так же как и изучение языков, например.
                И вопрос у меня возник. А неужели, в Германии, детям запрещают приходить в школу со смартфоном и приносить калькулятор отличный от других, даже если он соответствует заявленным к нему требованиям?


                1. GeMir
                  30.04.2019 09:14

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


    1. fcoder
      27.04.2019 16:10
      +2

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


    1. GeMir
      27.04.2019 17:33

      А какова вообще ниша подобных калькуляторов в наше время?
      В большинстве школ Германии аналоги TI-83/89 вводятся в 7 классе.
      В старших классах используется в основном Casio fx-CG 20/50, пришедший на смену FX-87/991.
      Так же эти калькуляторы допущены к использованию на местном аналоге ЕГЭ.


      1. Sheti
        27.04.2019 19:04

        Интересно, что у нас на ЕГЭ информатике калькуляторы запрещены, а на ЕГЭ по физике разрешены, но только простые.


        1. GeMir
          27.04.2019 19:46

          Учитывая то, что единственная польза от калькулятора на ЕГЭ по информатике — быстрая конвертация между системами счисления, не удивительно.

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

          У нас рано или поздно на выпускных экзаменах разрешат использовать CAS-калькуляторы.


          1. Sheti
            28.04.2019 07:37

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


      1. S0mbre
        28.04.2019 08:25

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


        1. vortupin
          28.04.2019 08:32

          один из изъянов западного образования
          Рискну предположить, что о западном образовании вы имеете самые отдаленные (и, естественно, весьма далекие от реальности) понятия…


        1. GeMir
          28.04.2019 11:55

          лишает самостоятельнрсти и находчивости
          Как часто вы самостоятельно открываете консервные банки при помощи подручных средств?
          Калькулятор (как «младший брат» компьютера) — такой же инструмент, как и консервный нож.

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

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

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


  1. alemiks
    27.04.2019 17:29

    Не думали исходники с народа перенести в github/gitlab/bitbucket?


    1. andy_p Автор
      27.04.2019 17:43

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


  1. vortupin
    28.04.2019 05:09
    +1

    BTW, немного оффтопик (не касательно этого калькулятора, а программируемых калькуляторов вообще): никто не в курсе, с каких западных (скорее всего, американских) калькуляторов «дрались» советские БЗ-34/МК-52 и дальнейшая серия? Или таки это была полностью оригинальная разработка (в чём я лично очень сомневаюсь)?


    1. tvr
      28.04.2019 16:04

      Если не ошибаюсь, встречал статью о БЗ-34/МК-52 здесь же на Хабре и там что-то было и об их генезисе.


      1. vortupin
        28.04.2019 16:34

        Подобных статей было несколько, но вот ответа на этот вопрос не было ни в статьях, ни в комментариях. Я, было, даже усиленно гуглил на эту тему, но ничего определенного не нашел. Сейчас, подумав еще раз, я допускаю, что, возможно, это была оригинальная советская разработка (хотя тогда непонятен знаменитый «ЕГГОГ» — могли обвинить в «низкопоклонничестве перед Западом» — например, почти вся документация по OS-360 для ЕС-ок была переведена на русский)

        В таком случае (то-бишь оригинальной советской разработки) очень плохо, что мы не знаем имен создателей этого воистину «народного компьютера» :(


    1. IvUs
      28.04.2019 18:49
      +1

      Похоже, что все же это была оригинальная разработка по мотивам существующих в то время HP.
      Вот тут довольно интересные англоязычные обзоры:
      www.rskey.org/b3-21
      www.rskey.org/b3-34
      www.rskey.org/mk61


    1. Leonidhome
      28.04.2019 19:28

      Вроде что-то от HP взято…


  1. tormozedison
    28.04.2019 16:42

    Рассказ будет неполным без упоминания этого.


  1. puariha
    28.04.2019 19:28

    по моему сейчас у каждого в кармане есть смартфон. разве не удобней? ах да, батарейку жрёт


    1. GeMir
      29.04.2019 07:00

      Удобнее. Быстрее. Но...


  1. dlinyj
    29.04.2019 12:24

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

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