И я не смог! Со всеми иногда случаются осечки, если устал или перебрал с алкоголем. Хотя с тем самым, то есть нарушением закона, у нас все нормально получилось. А вот с той змейкой, что в компьютере – проблема. Даже две! Во-первых, Паскаль оказался слишком быстрым и протагонист рванул в стенку со скоростью камикадзе, пикирующего на авианосец. Во-вторых, ни один из двух известных мне цивилизованных способов поймать нажатия клавиш, работавших в православном Турбо Паскале, не сработали.
Нет тут пока еще знаменитого модуля CRT, закрывающего 90% задач, требующих обращения к клавиатуре или экрану. Спасибо компании Борланд за наше счастливое детство, но оно пока не наступило.
RTFM!
Функции работы с клавиатурой нашлись в модуле APPLESTUFF. А вот способ замедлить программу между тактами, чтобы протагонист не двигался со скоростью болида Формулы Один, я поначалу использовал самый примитивный и варварский: приказал процессору гонять пустые циклы. Воистину издевательство над техникой. И есть тут своя ирония.
– Я верно понимаю – раньше ты думал, как заставить программу работать быстрее, а теперь наоборот, ищешь, где у компьютера тормоза? – хихикнула Линда, проведшая этот вечер со мной бок о бок.
– Ага. Наглядный пример того, насколько компилируемые языки быстрее интерпретируемых. Думаю, что смогу сделать корректную паузу через ассемблерную процедуру, как только больше прочитаю про их реализацию, но от того, что ее не положили в коробку сразу, становится печально.
Зачем я вообще связался с Паскалем при всех сложностях? Он замечательно подходит для задуманной мной пары игрового движка текстовых квестов и редактора сценариев, в отличие от Бейсика, где нет повести печальнее на свете, чем файловый ввод-вывод.
И на том мы закончили работу. Тетрис сам в себя не поиграет. И это еще Замок Вольфенштейн и Визардри временно позабыты. Последняя игра, к слову написана, сюрприз, на Эппл Паскале, как я прочитал в журнале “Compute!” То есть верной дорогой идем, товарищи.
Раз в пару дней Линда исправно звонила отцу. Я не препятствовал. Кровное родство так запросто не вычеркнешь, а мистер Ким, вернув вещи, показал себя как минимум договороспособным. В этот раз разговор длился чуть дольше обычного.
“Нет! Неприемлемо! Я не согласна! Мне это не нужно! До свидания!” – вот как-то так смотрелись реплики моей девушки со стороны. А повесив трубку, она в неприкрытом раздражении выдала длинную тираду на спэнглише, явно подхваченную у Елены, Кармен или Глории. С кучей пендехо, кабронов и прочих пута гранде.
– Прости! Но ты бы только слышал, что отец предложил! “Возвращайся домой, пользуйся машиной, мы купим тебе собственный компьютер и телевизор. Мне не нравятся твои увлечения, но ты взрослая и сама решаешь,” – Линда процитировала мистера Кима, даже спародировала манеру его речи. – “И познакомься с Чарли Паком – замечательный юноша из Сан-Франциско, у вас так много общего.”
С мистером Паком захотелось познакомиться уже мне. Объяснить в жестких выражениях, что он забрёл на чужую территорию и нечего уводить девчонок у парней из баррио. Но будем разумными взрослыми людьми. Скорее всего, кореец Пак ни слухом, ни духом не ведает о существовании “канальи Криса”, и не удивлюсь, если и про потенциальную невесту знает не больше, чем она про него.
Как говорил режиссер Якин в “Иване Васильевиче” – “паки-паки-херувимы”. А Джозеф Ким тот еще хитрец. Наверняка пробный заход без особой надежды на успех сделал. Но продолжит попытки до того момента, пока я ему не докажу, что лучшего кандидата на руку и сердце Линды не существует.
– Орале! – эмоционально высказалась Елена, уже вернувшаяся с работы. – Если этот Пак хоть посмотрит на тебя криво, Тобалито оторвет ему хуэвос! Так и принято поступать у нас на районе!
– Не надо! Ну то есть неприятностей для Криса не надо, – пояснила мысль Линда. – Крис, проводишь меня? А то уже темно.
И до трейлера отвел, и с Дюке заодно погулял. С питбулем девушка уже подружилась. Это просто: несколько собачьих вкусняшек и страшный пёс вовсю виляет хвостом и лижет руки.
Ночь, она звала меня создать-таки функцию паузы для Паскаля при помощи ассемблера. Но я поддался совсем ненамного. Не до утра, а всего до двух часов после полуночи. Ирония в том, что я выяснил страшное: нормальная команда задержки выполнения кода на Эппл 2 невозможна! Разрабатывая на Бейсике, я о ней не задумывался, как о нужной – слишком он тормознутый. В Паскале пришлось ее эмулировать пустым циклом. И в ассемблере тоже нет способа прекратить мучать ЦП и подождать. Необходимо делать тот же цикл. Все преимущество низкоуровневого языка – в возможности подсчитать такты процессора и задать задержку с большей точностью. Прошел все стадии. Отрицание, гнев, торг, депрессию и в два ночи пришел к принятию. Нельзя – и ладно, играем теми фигурами, что на доске.