Такие возможности им стали доступны благодаря системе программирования, разработанной Джеком Деннисом и другим профессором, Томом Стокманом. Когда компьютер TX‐0 появился в МТИ, его характеристики урезали по сравнению с периодом работы в лаборатории Линкольна: память сильно уменьшили до 4096 «слов» по восемнадцать бит в каждом. «Бит» – единица измерения в двоичной системе, либо 1, либо 0. Эти двоичные числа – единственное, что понимают компьютеры. Ряд двоичных чисел называется «словом». Кроме того, к компьютеру TX‐0 практически не прилагалось программное обеспечение. Поэтому Джек Деннис, еще до того, как познакомил членов TMRC с TX‐0, писал «системные программы», помогающие пользователям работать на компьютере.
Первое, над чем работал Деннис, стал ассемблер. Он представлял собой транслятор, переводивший язык ассемблера с трехбуквенными символическими сокращениями, обозначающими команды, на компьютерный язык на основе двоичных чисел 0 и 1. В TX‐0 использовался сильно урезанный язык ассемблера, позволяющий использовать для команд только 2 бита каждого 18‐битного слова. Поэтому были доступны только четыре команды (каждая возможная 2‐битная вариация – 00, 01, 10 и 11 – представляла собой команду). Все, что делал компьютер, сводилось к выполнению одной из четырех команд: для сложения двух чисел требовалась одна команда, а для умножения двух чисел – серия из примерно двадцати команд. Взглянув на длинный список компьютерных команд, записанных в виде двоичных чисел, например, 10011001100001, пользователь терял рассудок. Но та же команда на ассемблере может выглядеть так: ADD Y. После загрузки в компьютер ассемблера Денниса стало возможно писать программы в более простой символической форме и ждать, пока компьютер сам выполнит перевод в двоичный код. А дальше нужно только загрузить полученный код обратно в компьютер. Сложно недооценить это достижение Денниса. Его ассемблер позволял программистам писать код, а не головокружительную серию нулей и единиц.
Другая программа, над которой Деннис работал совместно со Стокманом, – отладчик. TX‐0 поставлялся с отладочной программой UT‐3, взаимодействующей с компьютером во время его работы путем ввода команды непосредственно с флексографа. Но и здесь были большие проблемы. Так, он принимал код только в восьмеричной числовой системе. «Восьмеричная» – система исчисления с основанием 8 (в отличие от двоичной с основанием 2 и арабской с основанием 10). Это сложная в использовании система. Поэтому Деннис и Стокман решили написать нечто лучшее, чем UT‐3, что позволило бы пользователям использовать символический, более простой в работе язык ассемблера. Программа получила название FLIT. Она позволила пользователям находить программные ошибки во время сеанса работы, исправлять их и поддерживать работу программы. Деннис рассказывал, что название FLIT произошло от названия ленты для флексографа. Однако на самом деле источником вдохновения послужил спрей от насекомых одноименного бренда. FLIT, квантовый скачок вперед, позволил программистам создавать действительно оригинальные программы на компьютере подобно тому, как музыканты пишут свои произведения с помощью музыкальных инструментов. С помощью отладчика, занимавшего треть из 4096 слов всей памяти TX‐0, хакеры могли свободно создавать новый, более смелый стиль программирования.