Синтаксис Err GET на Apple II, AppleDOS 3.3 с использованием Applesoft
Я использую эмулятор AppleWin, настроенный как Apple IIe, Apple DOS 3.3 с Applesoft. Моя цель - сделать простую игру.
Эта простая программа GET отлично работает на ]
Подскажите (не уверен, но думаю, это называется монитором).
10 GET V$
20 PRINT V$
Он печатает нажатую клавишу, как ожидалось
Затем я запускаю Applesoft, используя LOAD APPLESOFT
. Я пробовал писать такую же простую программу, как на]
незамедлительный. Но на этот раз, когда я набираю первую строку10 GET V$
Я получаю как результат *** SYNTAX ERR
.
Я думаю, что это не поддерживаемая функция, но в Справочном руководстве по базовому программированию ApplesoftII они перечисляют зарезервированное ключевое слово.
Я мог бы обновить Applesoft до более поздней версии, тогда какая версия Applebasic будет его поддерживать? Я также могу использовать другой метод получения нажатия клавиши без необходимости последующего нажатия пользователем клавиши ВВОД.
3 ответа
Продолжив исследовать свою проблему, я нашел расположение памяти для буфера клавиатуры.
Буфер клавиатуры -16384
и способ сбросить это значение этого адреса - получить доступ -16368
.
Если значение в -16384
больше 128, значит была нажата клавиша. Итак, я могу использоватьPEEK -16384
прочитать значение. Чтобы получить код ASCII, вам нужно вычесть 128 из этого значения. Пример кода:
KEY= PEEK(-16384)
IF KEY>=128 THEN PRINT KEY-128
Чтобы сообщить системе, что вы имели дело с нажатием клавиши и сбросом значения, вам необходимо получить доступ к значению в -16368
. ИспользуяPEEK or POKE
. Пример кода:
POKE -16368,0
Or can also be PEEKed
PRINT PEEK -16368
Applesoft для Apple ][e (первая версия для Apple, которая вообще поддерживает строчные буквы) чувствительна к регистру, а все ключевые слова - только ЗАГЛАВНЫМИ, поэтому get
не будет соответствовать ключевому слову (или чему-то еще) и выдаст вам синтаксическую ошибку.
Конечно, если вы эмулируете оригинальный Apple ][, строчных букв нет вообще, а строчные буквы отображаются как мигающие прописные - и все равно не соответствуют ключевому слову.
если вы получаете ошибку *** SYNTAX ERR, а не «?SYNTAX ERROR», то вы используете целочисленный базовый, а не базовый Applesoft. Попробуйте сначала переключиться на AppleSoft Basic с помощью FP