
Мне очень захотелось снова попрактиковаться в программировании на BASIC, ностальгии ради. Последний раз я программировал на своем VIC 20 в 1984 году. Насколько я помню, это было легко и весело. И вот, спустя примерно 40 лет, я не могу поверить, что делал это в возрасте 11 лет.

Управление VIC 20 не такое, как было прежде. Технологии настолько ушли вперед за эти четыре десятилетия, что мне пришлось прибегнуть к Google, Reddit и YouTube, просто чтобы выяснить, куда подключать кабель питания. Взгляните на него. А теперь сравните его с кабелем Video-Out. Как вы думаете, какой из них какой?

Ответ: тот, что справа, — это для питания; кабель Video-Out — слева. Я был в шаге от того, чтобы воткнуть кабель питания в гнездо Video-Out. Не знаю, сгорел бы компьютер от этого или нет. К счастью, я заметил, что питание подключается сбоку. Они невероятно похожи.


Хорошая новость была в том, что красный индикатор питания загорелся, когда я нажал кнопку включения. Затем я воткнул кабель Video-Out в правильный разъем и подключил противоположный его конец (коаксиальный кабель) к телевизору. Это было легко.
Дальше мне пришлось сделать то, что мы все делали в аналоговую эпоху — выбрать канал и пройти бесконечную процедуру его настройки, чтобы найти сигнал от компьютера на телевизоре.
Для тех, кто не застал то время, поясню: на заре эпохи домашних компьютеров не было красно-желто-белых RCA-кабелей. Чтобы найти сигнал компьютера, требовалось крутить колесико настройки вверх в поисках картинки.

Обычно, когда доходил до конца и слышал щелчки, это означало, что нужно было крутить обратно — все время вниз. Хорошо еще, если рычажок справа был установлен в одно из трех правильных положений — иначе приходилось накручивать колесико еще очень и очень долго.
В конце концов… вуаля! Наконец-то все запустилось. Добро пожаловать обратно в 1981–1984 годы.
На экране компьютера видим надпись:
***** CBM BASIC V2 *****
3583 BYTES FREE
READY.
«CBM» означает «Commodore Business Machines». Возможно, это дань уважения IBM?

И тут я в полной мере осознаю аскетичность домашних компьютеров начала 1980-х. Нет заставки. Нет рабочего стола. Нет кнопки «Пуск». Нет значков. Нет программ. Нет ничего. Цифровой эквивалент чистого листа бумаги.
Делайте с этим что хотите. Добро пожаловать в мир программирования на BASIC.
Пробуем программировать на BASIC
На моем столе лежит несколько книг о VIC 20 — от руководств пользователя до введений в BASIC. Я беру «Знакомство с вашим VIC 20» Тима Хартнелла. Книга была опубликована в Великобритании в 1982 году, и на моем экземпляре есть три ценника-стикера. Они могут рассказать интересную историю. Верхний, оригинальный стикер оценивает книгу в 116 шведских крон (даже по курсу 2025 года 116 крон — это примерно 11 долларов; но то было четыре десятилетия назад). Второй стикер — распродажный, со сниженной ценой до 75 крон. На третьем стикере написано: «10 крон».
В любом случае, самое первое упражнение в книге состоит всего из четырех строк кода. Идеально.
10 PRINT «NUMBER GENERATOR»
20 J=INTC10#RNDC1)2+1
30 PRINTJ:» » ;
40 GOT020
Первое, что я замечаю — это какими пружинистыми оказались клавиши на VIC 20. Ничего общего с пишущей машинкой — никакого сопротивления или тугого хода. Клавиши отскакивают вверх с такой упругостью, что меня это застает врасплох.
Во-вторых, звук «клац-клац» клавиатуры во время набора невероятно приятен. Это настоящий тактильный опыт с неэмулированным звуком, прямо как в начале 1980-х. Говорят, люди запрограммированы на звуки и запахи; они могут переносить нас сквозь время. И это, друзья, происходит прямо сейчас.
Я ввожу код, тщательно нажимая (RETURN) после каждой строки. Во время печати меня поражает, что все пишется в верхнем регистре. На VIC 20 нет строчных букв, по крайней мере, насколько я могу судить.
Код, который я пишу, — это генератор случайных чисел, выполненный всего четырьмя строками. Закончив, я ввожу первую из двух команд BASIC, которые остались у меня в памяти на протяжение всех этих лет — RUN.
Экран заполняется постоянно меняющимися случайными числами. И тут возникает проблема: как остановить программу после запуска?
Я лихорадочно листаю руководства и ищу ответ в интернете. Оказывается, нужно нажать кнопку (RUN STOP) в левой части клавиатуры. Поток чисел останавливается, и я вижу знакомое приглашение: READY.

Но что теперь? Это все, что я помню из BASIC. Я понятия не имею, как вернуть свой код или как очистить экран.
Я печатаю NEW (сам не знаю, почему). Ничего не происходит. Печатаю RUN, ничего не происходит. Пробую CLR, ничего не происходит. Я понимаю, что не имею ни малейшего понятия, как вернуть свой исходный код. Он что, удалился вообще?
Я ищу ответ в интернете и узнаю, что NEW очищает память. Значит, нужно попробовать что-то новое. Попробуем другую программу. На этот раз — генератор случайных чисел. Я запускаю его и останавливаю.

Мои знания BASIC медленно начинают извлекаться из запасников глубокой памяти. PRINT, GOTO, GOSUB, POKE и такие комбинации, как IF/THEN, снова обретают смысл — впервые за 40 лет. Я наконец-то понимаю, как вернуть код (с помощью команды LIST), а руководство напоминает мне, что (SHIFT)+(CLR HOME) очищает экран.
Я попробовал LOAD, и получил классический ответ: PRESS PLAY ON TAPE.
Если отступить на шаг и взглянуть на интерфейс BASIC на VIC 20, понимаешь, что весь этот «рабочий стол» состоит из сетки в 22×23 символа (не пикселей). На фото выше видно, что…
ཆ PRINT»NUMBER GENERA’
… заполняет всю ширину экрана. Это 506 символов для всего видимого рабочего пространства. Хорошее напоминание о том, какими были компьютеры до появления Apple Macintosh и Windows 95.
Удивительная особенность VIC 20 заключается в том, что на нем используются только прописные буквы. Любопытно, что поддержки строчных букв нет, хотя на клавиатуре предусмотрено бесчисленное множество «графических символов».

Они воспроизводятся с помощью клавиши (SHIFT) для левого символа на клавише или клавиши Commodore (прозванной пользователями «куриными губками») для символа справа. Интересный факт: вы можете напечатать символ ♥ как текстовый знак, а не как изображение.

Эти графические символы начинают обретать смысл, когда я добираюсь до раздела об анимации в своей книге по программированию. Сейчас преимущества BASIC становятся понятнее. Книга-введение рассказывает об использовании анимации, цвета и звука.
Веселье продолжается
Признаю, что в самом начале навык программирования на BASIC казался моему 50-летнему мозгу совершенно недоступным. КАК это могло быть интересно в 11 лет, удивлялся я. Вводная часть одной из книг описывает VIC 20 как «компьютер в роли интеллектуальной пишущей машинки».
Да, у этой машины всего несколько килобайт вычислительной мощности. Но опыт работы с ней ярко напомнил о том, как VIC 20 очаровал миллионы детей по всему миру и заставил их исследовать все, что связано с компьютерами и программированием.
Подключить все, включить и увидеть лишь мигающий курсор на пустом экране — это был шок. Мой мозг сразу спросил: что с этой штукой вообще МОЖНО делать?
Оказалось, что гораздо проще следовать инструкциям в руководствах и начинать писать код, чем просто сесть и пытаться понять, как работает компьютер. Это было не очень-то интересно. Интересно было вводить код, смотреть, что получится, и затем — вот оно! — наблюдать, что происходит, когда начинаешь этот код изменять. В этом смысле, в отличие от Commodore 64, VIC 20 действительно стал отличным введением в науку программирования и компьютеры. И было даже хорошо, когда наши родители ничего в этом не понимали.
Для любознательных и креативных детей погружение в программирование на BASIC было одновременно связано со сложностями и радостями. Когда у тебя был компьютер, тебе не хотелось покупать игры и дорогие периферийные устройстве. Тебе хотелось разобраться, что с его помощью можно сделать.

И снова напомню: в 1984 году это была самая передовая технология, доступная обычным людям. Сам факт, что ты мог что-то делать на телевизоре, был поразительным и захватывающим.
BASIC в 2020-х
В качестве последнего эксперимента я решил познакомить свою 10-летнюю дочь с VIC 20 и посмотреть, что она об этом подумает. Учитывая, что папа с его CD, пластинками и старыми гаджетами в ее глазах — полный отстой, я был удивлен, что она проявила к этому больше интереса, чем когда я учил ее переворачивать виниловую пластинку.
«Как насчет того, чтобы немного попрограммировать?», — предложил я ей.
«Хорошо, папа. Ты же знаешь, мы занимаемся программированием в школе», — ответила она.
Я знал, что они работают со Scratch на школьных iPad’ах. Для нее BASIC должен был стать большим разочарованием, ведь здесь не будет графического интерфейса или мультяшных котов. Я решил добавить немного юмора.
«Давай посмотрим, будет ли это так же забавно, как для этой семьи из 1980-х на фото», — предложил я, показывая ей обложку руководства по BASIC для VIC 20.

К моему удивлению, она спросила: «Можно я напечатаю?» Ей было интересно попробовать эту забавную на вид машинку. Я дал ей ввести код генератора чисел. Мне постоянно приходилось напоминать ей о важности нажатия кнопки (RETURN) после каждой строки кода — и каждый раз, когда она набирала RUN.

Затем мы снова попробовали что-то простое. На этот раз, чтобы получить классические повторяющиеся строки текста, мы решили написать что-нибудь о нашей кошке.

Мою дочь сбило с толку слово «телевизор».
«Я думала, ты сказал, что это телевизор, папа».
Мне пришлось объяснять, что телевизор — это телевизор, а VIC 20 — это компьютер.
«Значит, на телевизоре можно что-то смотреть?» — спросила она.
Я кивнул.
«Тогда давай посмотрим что-нибудь на нем», — предложила она.
Это была логичная реакция. С точки зрения поколения 2020-х, по телевизору можно что-то смотреть.
«Сейчас это уже не совсем так работает», — сказал я. В последний раз бесплатное эфирное телевидение, наверное, отключили более десяти лет назад.

Затем мы ввели немного более сложную программу. На этот раз — «Приниматель решений». При запуске нужно было мысленно задать вопрос, а программа выдавала ответ ДА, НЕТ или ВОЗМОЖНО.
Признаюсь, я решил ввести эту программу сам — не думал, что у дочери хватит концентрации, чтобы следить за мной. Но она решила остаться и понаблюдать.
Затем я попросил ее набрать RUN + (RETURN).
«У нас ошибка, папа», — сказала она.
«Не просто ошибка, — сказал я, — у нас ОШИБКА СИНТАКСИСА». Это словосочетание не вызвало у нее ностальгии.
Мы исправили ошибку и сыграли несколько раундов.
Домашние компьютеры
В целом у меня сложилось впечатление, что дочери на самом деле было довольно интересно. Я понимаю, что, если бы она жила не в мире iPad, YouTube, Netflix и смартфонов, она, вероятно, была бы так же увлечена VIC 20, как и я в ее возрасте. Оказывается, семейная фотография на обложке руководства не была преувеличением.
Запуск старого компьютера также напомнил мне, насколько мощным эволюционным шагом в начале 1980-х были VIC 20 и BASIC. С каждым годом компьютеры становились лучше, мощнее и интереснее. И я следил за этим процессом с самого начала. За несколько лет программирования на BASIC на VIC, а позже на C64, я научился писать код, управлять компьютерами и заставлять их что-то делать.
Теперь я вижу, что первый компьютер гораздо сильнее фокусировался на программировании — потому что на нем действительно больше почти ничего и нельзя было сделать. Была возможность сохранения на ленту, но оперативная память все равно оставалась маленькой. Тем не менее, было интересно пытаться понять, как создавать изображения, анимацию и простые игры на этом компьютере.
В этом плане C64 был в тысячу раз лучше и увлекательнее. Но именно VIC заложил основы BASIC. Через несколько лет BASIC стали преподавать в школе, и знания, полученные во время практики на моем первом домашнем компьютере, скромном VIC 20, определенно мне помогли. Но к тому времени, как я получил работу, он уже устарел.
Читайте также:
- Алгоритм Skyline для упаковки 2D-прямоугольников
- 7-шаговый чек-лист по выбору удачных имен
- Как стабильно извлекать метаданные из сложных документов
Читайте нас в Telegram, VK и Дзен
Перевод статьи Retro Tech Show: [1984] I decided to try BASIC programming on the VIC 20 for the first time in 40 years





