1. Клавиатура
Клавиатура ZX Spectrum состоит из 40, а ZX Spectrum+ - из 58
клавиш. Ключевые слова BASIC вводятся одним нажатием клавиши.
Вводимые знаки и слова высвечиваются в нижней части экрана в месте,
обозначенном мигающим курсором. Курсор не виден сразу после
включения компьютера либо после вывода сообщения, он появляется
только после нажатия клавиши. Буква внутри курсора указывает, что
ожидает от Вас компьютер или в каком режиме он находится
(анг. mode):
K - ключевые слова (keywords);
L - прописные буквы (letters);
C - заглавные буквы и некоторые символы (capitals);
E - ключевые слова и знаки, размещенные
над и под клавишей (extended mode);
G - графические символы (graphics).
Значение клавиши зависит, кроме заданного режима, также от нажатия
(или нет) одновременно с ней (чуть раньше) одной из двух
специальных клавиш:
Caps Shift - заглавная буква (CS);
Symbol Shift - символ (SS).
Пользуясь ими, необходимо вначале нажать "Caps Shift" (или "Symbol
Shift"), а затем, не отпуская функциональную клавишу, нажать нужную
клавишу, например цифру 2. Подобные действия будут обозначаться
символом "/", например SS/2.
Одна клавиша в ZX Spectrum может иметь до 8 различных значений.
Вот что будет высвечено на экране при нажатии, например, клавиши
"R":
режим E : INT
режим H : R прописная
режим C : R
режим K : RUN
режимы L,C,K+SS/ : <
режим E : VERIFY
режим G : знак в форме буквы R, либо другой
определенной пользователем (для
клавиш A-U); клавиши V, W, X, Y,
Z в этом режиме не используются.
Режим G для этой группы клавиш
равнозначен режиму L с постоянным
нажатием CS и обеспечивает высве-
чивание заглавных литер.
Над некоторыми клавишами верхнего ряда, например, над клавишей с
цифрой 3, размещено по две надписи:
режим E+CS/ : magenta (цвет знака)
режим E : magenta (цвет фона)
режимы K,L,C+CS/ : True video
режим E+CS/ : Line
и т.д.
В режиме G после нажатия этой клавиши на экране появится
графический символ, а в случае одновременного нажатия CS или SS -
тот же символ с измененным цветом. Надпись над клавишей обозначает
контрольный символ. Они не высвечиваются как знаки на экране, а
только вызывают определенные эффекты. Например, в рассмотренном
режиме такая клавиша определяет цвета фона и самого знака для
следующих символов:
Режим E+CS/ Режим E
(цвет символа) (цвет фона)
CS/0 черный (black) 0
CS/1 темно-голубой (blue) 1
CS/2 красный (red) 2
CS/3 фиолетовый (magenta) 3
CS/4 зеленый (green) 4
CS/5 светло-голубой (cyan) 5
CS/6 желтый (yellow) 6
CS/7 белый (white) 7
CS/8 одинаково с FLASH1 8
одинаково с BRIGHT1
CS/9 одинаково с FLASH0 9
одинаково с BRIGHT0
Обратим внимание, что клавиши "8" и "9" тоже имеют в этом
режиме значения, несмотря на то, что на клавиатуре обозначений нет.
При курсоре K, L или C только комбинации CS/3 и CS/4 вызывают
цветовые эффекты:
CS/3 - смена цветов фона и символов
(inverse video);
CS/4 - возвращает на первоначальный цвет
(true video).
В ZX Spectrum+ этим комбинациям соответствуют специальные клавиши.
Обратим внимание, что использование вышеописанных комбинаций
клавиш - единственный способ замены цветов текста программы.
Остальные комбинации будут рассмотрены далее. А теперь займемся
способами изменения состояния курсора. Прямого перехода от режима G
к E нет. Также пользователь не может непосредственно влиять на
переход компьютера из режима K в режимы L и С обратно. Эта система
является сложной только на первый взгляд. Уже после нескольких
проб все оказывается просто и мы даже начинаем замечать
определенные достоинства такой организации клавиатуры.
Клавиша "Break/Space" во время ввода данных служит для
внесения пропусков (пробелов) между знаками.
В модели ZX Spectrum+ клавиатура расширена и более удобна в
использовании. Смена режимов достигается однократным нажатием.
Также все контрольные символы, получаемые в классической модели с
помощью CS/цифра, в нем представлены отдельными клавишами.
Выделены также наиболее употребляемые знаки препинания. Информация,
записанная ранее над клавишей и под ней здесь находится в верхней
части клавиши. Остальные принципы использования и смены режимов
идентичны.
2. Редактор
Редактор (Editor) - это заключенная в ПЗУ программа,
способствующая взаимодействию человека с компьютером: вводу данных,
их модификации и корректировке. Все, что мы набираем на клавиатуре,
обычно появляется в нижней части экрана. Любой текст в этой области
можно модифицировать или редактировать. Клавиши CS/5 и CS/8
(стрелки влево и вправо в ZX Spectrum+) позволяют передвигать
курсор влево и вправо вдоль редактируемой строки без стирания
информации. Для стирания символов служит клавиша CS/0 ("Delete" в
ZX Spectrum+). Стирается знак, расположенный непосредственно
перед курсором, при этом ключевые слова BASIC трактуются как
отдельные знаки.
Во время набора программы или оперативных директив редактор во
многих случаях (после ввода ключевого слова, двоеточия, THEN и
т.п.) сам изменяет режим ввода (между K, L или C), оберегая
пользователя от случайных ошибок. Но если кому-то надо такую ошибку
сделать специально, то можно его "обмануть", вставляя, к примеру,
двоеточие для получения режима K, а затем удаляя его. Такой обман
не избавляет, конечно, от последующих неприятностей со вводом
ошибочной строки в программу.
Конец редактирования, ввода строки команд или очередной
программной строки сигнализируется клавишей "Enter". Компьютер
молниеносно проверяет синтаксис (т.е. согласие с правилами
употребления языка BASIC). В случае необходимости в непонятном ему
месте появляется мигающий знак вопроса. Он может появляться
значительно дальше, чем ошибка, например, при отсутствии одной из
замыкающих скобок. В сложном выражении Spectrum не в состоянии
определить место, куда надо было ее вставить и подаст сигнал об
ошибке только в конце выражения.
Но восприятие строки компьютером не гарантирует ни
правильности ее логики, ни согласия с желаниями автора.
Нет возможности принудить компьютер к запоминанию ошибочной (в
смысле синтаксиса BASIC, а не логики программы) последовательности
команд. Между прочим, это означает, что без присоединения ZX
интерфейса 1 невозможно даже подготовить управляющую программу для
обмена с памятью типа Microdrive, так как нельзя даже ввести
потребных для этого специфических команд.
Если в корректируемом месте размещены контрольные символы,
перемещаемый курсор ведет себя иногда странно и необычно (исчезает,
отступает). Не стоит из-за этого расстраиваться. В процессе
удаления таких знаков могут появиться вопросительные знаки, которые
необходимо убирать отдельно - эти символы (контрольные) обычно
занимают в памяти два байта и Spectrum, вынужденный высвечивать
знак с кодом меньше 32, выводит в его месте вопросительный знак,
если не сможет интерпретировать его иначе.
Чтобы исправить уже введенную в память строку программы,
необходимо вначале скопировать ее в нижнюю часть экрана. С этой
целью перемещаем указатель текущей строки ( > ) вверх или вниз
клавишами CS/6 и CS/7 (в ZX Spectrum+ стрелки вверх и вниз). При
более длинных программах быстрее пользоваться инструкцией LIST N.
Можно вводить число, немного меньшее, чем номер нужной строки, если
мы уверены, что в программе нет строки с таким номером, чтобы
случайно не затереть нужную строку. После нажатия "Enter" указатель
будет установлен на первой строке с номером больше заданного, либо
последней, если заданной нет в программе. Указатель ( > ) после
такого предприятия может быть временно невидимым, но после
нажатия CS/1 ("Edit" в Spectrum+) желаемая строка будет скопирована
в рабочее поле редактора.
Нажатие одной "Enter" при пустой нижней части экрана приводит
к высвечиванию фрагмента программы, включающего текущую строку
(отмеченную указателем ">"). Однократно можно ввести оператор любой
длины. Поначалу нижняя часть экрана будет автоматически
расширяться, но постепенно компьютер будет реагировать все
медленней, сигнализируя растущее неодобрение действиями человека.
После запоминания 22 строк протест компьютера станет значительно
резче. Он перестанет высвечивать следующие символы, вводимые с
клавиатуры, и на каждое нажатие клавиши отреагирует неприятным
ворчанием. Но, несмотря на это, он и дальше примет и запомнит все,
что мы наберем. Его сопротивление можно смягчить, модифицируя
соответствующие системные переменные. Клавиша CS/1 ("Edit")
позволяет также одноразовое удаление всей нижней части экрана.