Все, кто когда-либо программировал на классическом ZX Spectrum 48K, сталкивались с главной особенностью Sinclair BASIC — системой токенов. Вы не можете просто напечатать PRINT по буквам! Нужно либо нажать клавишу P в режиме ввода, либо запоминать, где спрятаны другие команды. Для новичков и тех, кто вернулся к программированию после перерыва, это настоящее мучение.
Исторически это досталось Spectrum в наследство от ZX80 и ZX81, у которых было всего 1 Кб памяти и крошечное ПЗУ. Токены экономили место. Резиновая клавиатура тоже не способствовала быстрому набору. Но Клайв Синклер и Стив Викерс могли бы добавить альтернативный режим ввода... но не сложилось.
На сцену выходит Джефф Вермут!
Ещё в 2004 году энтузиаст Джефф Вермут создал проект The Gosh Wonderful ZX Spectrum ROM, который решает эту проблему. А недавно вышла новая версия — 1.40! Как это работает? Вы просто заменяете стандартное ПЗУ вашего Spectrum (в эмуляторе или даже на реальном компьютере с перепрограммируемой памятью) на новый ROM, и получаете кучу полезных возможностей.
Главные фишки нового ROM
Побуквенный ввод команд
Это "киллер-фича". Теперь вы можете печатать команды по буквам, как на любом нормальном компьютере! Например, просто набираете P-R-I-N-T, и после нажатия Enter оно само превращается в токен. Если ошиблись в слове — интерпретатор укажет на ошибку и не даст ввести строку.По умолчанию режим включён. Чтобы выключить (и вернуть классическое поведение), введите команду STOP (комбинация SS+A).
Новые команды Бейсика
Новый ROM добавляет несколько полезных команд, которые вводятся после оператора REM:- REM COMMANDS (или просто REM) — показывает список всех доступных новых команд.
- REM RENUMBER начало шаг — перенумеровывает всю программу. Первая строка получает номер «начало», дальше с шагом «шаг».
- REM DELETE первая последняя — удаляет строки с «первой» по «последнюю» включительно.
- REM STREAMS — показывает список всех открытых потоков (файлов).
ИСПРАВЛЕНИЕ ДРЕВНИХ МАТЕМАТИЧЕСКИХ ОШИБОК!
Это самое интересное для фанатов. Автор полез в дебри и пофиксил несколько вопиющих багов оригинального ROM.Пример 1: Странная арифметика с десятичными дробями.
Введите на классическом Spectrum:
Бейсик ZX:
PRINT 0.123-123/1000
Логически должно быть 0. Но вы получите -2.910383E-11 (очень маленькое, но не нулевое число)!
Почему? Оригинальный ROM по-разному обрабатывал ввод десятичной дроби (0.123) и целочисленное деление (123/1000). Из-за двоичного представления накапливалась микроскопическая ошибка. В новом ROM дроби обрабатываются принципиально иначе: 0.123 теперь трактуется как целое число 123, которое потом честно делится на 1000. Результаты идентичны, и разность равна 0!
Пример 2: Округление при делении.
Некоторые числа (например, 0.987654325) должны были округляться вверх, но оригинальный ROM этого не делал. Проблема решена сбором так называемого 34-го бита — техника, описанная ещё Логаном и О'Харой в книгах про устройство Spectrum.
Пример 3: Квадратные корни.
Процедура вычисления квадратного корня полностью переработана. Вместо оригинального алгоритма используется метод Ньютона-Рафсона. Он точнее и часто быстрее! Корни из степеней двойки вычисляются за одну итерацию, остальные — за 5-6.
Совместимость
Автор заявляет 100%-ную совместимость со всем софтом для ZX Spectrum. Мы-то знаем, что так не бывает, если изменён хотя бы один байт в ROM. Но можно верить, что 99,9% игр будут работать без проблем. Это грандиозный результат!
Где скачать?
Забрать The Gosh Wonderful ZX Spectrum ROM v1.40 можно:- Официальный сайт проекта
Кто уже пробовал этот ROM? Насколько он хорош в реальной работе? Ставьте