Синтаксис 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

Другие вопросы по тегам