Привет! Это продолжение первой статьи, и сегодня я поговорю об играх и других программах, которые были написаны для этого калькулятора.


тетрис

Сначала писали софт на Бейсике. Файлы копировали с калькулятора на компьютер через линк-кабель, после чего публиковали на ticalc.org и других сайтах. Калькулятор использует довольно быстрый процессор Z80 (с тактовой частотой 6 MHz), но получение прямого доступа к нему долгое время не представлялось возможным.


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


На этом основываются все шеллы (оболочки для выполнения программ на ассемблере) для TI-82, а именно: OS-82, ASH, CrASH, ACE, SNG.


OS-82 и ASH — одни из первых. После них появился CrASH, который является самым популярным. Самые новые шеллы — ACE (вышел в 2002 году) и SNG (вышел в 2005), но они не пользуются особой популярностью, так как эту модель калькулятора больше не выпускают и мало людей теперь пишут программы под неё.


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


Для этого мы воспользуемся программой TiLP, так как Texas Instruments больше не выпускают ПО для старых моделей.


Она доступна на Windows, Mac и Linux, и является единственной программой для связи с калькуляторами, которая до сих пор поддерживается.


Подключаем кабель (у меня это — TI SilverLink), запускаем программу. Скорее всего, калькулятор она не опознает и будет ругаться, так что придётся задать параметры самому.


Открываем File > Change Device. Настроить следует, как на картинке:


communication settings

Теперь мы увидим следующее:


tilp

Для начала нам нужно загрузить CrASH. Для этого можно воспользоваться ссылкой: CrASH.


Есть некоторые версии калькуляторов с ROM версии 19.006. Если у вас эта версия — вам не повезло, так как очень мало программ её поддерживают. Но если вы хотите попробовать — загрузите CrASH для 19.006. Проверить версию можно, нажав последовательно [MODE], [ALPHA], [LN] с домашнего экрана.


Будет показано что-то вроде (скриншот из этого меню сделать не получилось):


Enter Self Test?
19.0

Где 19.0 — это ваша версия ROM. Нажмите [CLEAR], чтобы не продолжать тест, так как он стирает память при её проверке.


В архиве с CrASH будет файл crash.82b (crash19006.82b). Его следует загрузить в калькулятор. Для этого его следует включить, и нажать следующюю последовательность кнопок: [2nd] [X,T,?] (LINK), после чего перейти в раздел RECEIVE и нажать [1]:


receive

В TiLP следует выбрать File > Restore и выбрать файл бекапа. Программа предупредит о перезаписи данных, выберите OK, после чего об этом спросит калькулятор, отвечайте аналогично. После передачи нажмите [2nd] [MODE] (QUIT), чтобы выйти из меню.


Для загрузки программ в калькулятор действия те же, только вместо Restore, надо выбрать Send Files.


После успешной загрузки вы увидите:


crash

Теперь самое время загрузить программы в калькулятор. Игры: TI-BASIC, CrASH.


Программы на Бейсике идут без CrASH (но и с ним тоже), для их запуска нужно выбрать имя, нажав [PRGM] для открытия меню. Для запуска ассемблерных программ нужно сначала запустить CRASH из того же меню. Запустив CrASH, вы должны увидеть пустой список программ:


no programs

Выходим из CrASH, нажав [2nd] [MODE] (QUIT). Пробуем загрузить на калькулятор программу. Хорошая игрушка — ZTris (тетрис). Распаковав архив, загрузив её на калькулятор способом, описанным выше и запустив CrASH, мы видим:


меню

Скриншот из работающей программы сделать не получится, поэтому вот скриншот от автора:


тетрис

На ticalc.org великое множество программ и игр для этого калькулятора, так что вы можете попробовать что-нибудь сами.


Кстати, для удаления программ вы можете использовать [2nd] [+] (MEM) > Delete… > Prgm… Там же можно удалить и прочие данные. Если у вас стоит CrASH, не стирайте CRASH и матрицы a и b. Калькулятор начнёт глючить, так как там записана часть кода.


Я даже написал пару программ на Бейсике сам, посмотрите, пожалуйста, если хотите: вычисление ?, игра на реакцию.

Поделиться с друзьями
-->

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


  1. SopaXT
    26.09.2016 16:33
    +4

    Обещанное продолжение первой статьи. Надеюсь, что вам будет интересно!


  1. dlinyj
    26.09.2016 17:42
    +5

    Было бы чудесно снабдить статью фотографиями. Очень интересно, но слишком академично


    1. SopaXT
      26.09.2016 17:54

      Добавил.


      1. dlinyj
        26.09.2016 17:55
        +2

        А что за шнурок, это не обычный usb-uart? Есть ли с-компиляторы внешние под этот калькулятор?


        1. SopaXT
          26.09.2016 18:02

          Нет, это специальный кабель с микроконтроллером. У них собственный протокол, даже не UART.
          А компилятора C конкретно для этой модели я не нашёл, а для -83/84 вполне существуют.


  1. Mistranger
    26.09.2016 19:59
    +1

    Не для TI-82 (для 83), но все же:
    image
    Есть еще продвинутая версия, но для TI-89


    1. SopaXT
      26.09.2016 20:00

      Есть и для TI-82, на Бейсике. Ужасно тормозит, но работает.


  1. TigerClaw
    26.09.2016 22:06

    Очень интересная статья. Сам когда то работал и играл с МК-52.


    1. tormozedison
      26.09.2016 23:01
      +1

      А там есть игра «гонки», да-да, на однострочном индикаторе: в середине — «болид», а по бокам — перемещающиеся «обочины».


  1. GeMir
    27.09.2016 02:56
    +2

    Если увеличивать скриншоты методом, описанным здесь https://geektimes.ru/post/280830/#comment_9595012 и сохранять результат в PNG, они будут и резкими, и удобочитаемыми. А с тонкой рамкой вокруг они ещё и перестанут сливаться с фоном статьи (http://georgmierau.de/screenshot.png). Под Linux для этих же целей есть ImageMagick.


    1. SopaXT
      27.09.2016 07:55

      Я использовал ImageMagick -


      convert -resize 192x128 screenshot.png bigscreenshot.png

      Пожалуйста, скажите, как я могу улучшить этот метод?


      1. SopaXT
        27.09.2016 08:12

        Конечно,


        convert -scale 200% screenshot.png bigscreenshot.png

        Спасибо!


  1. Airrr
    27.09.2016 07:53

    >>так как Texas Instruments больше не выпускают ПО для старых моделей.
    TI-GRAPH LINK хоть и старая, работает много лучше и удобнее ТИЛПа.
    Но только на ХР :( ti82usa.exe имя файла, если искать кто будет.


    1. SopaXT
      27.09.2016 07:54

      Да, но я использую Linux. У меня даже CD к кабелю есть, но там 82 уже поддерживется только на Mac.


  1. sergeysakirkin
    27.09.2016 07:53

    Эхххх ностальгия. Сразу вспомнился советский Электроника МК-61