Applesoft Basic, как скрыть мигающий курсор?

Я наконец-то решил создать ежемесячную бюджетную программу для Apple //e. Прямо сейчас я использую эмулятор AppleWin.

Кто-нибудь знает, как скрыть курсор в Applesoft Basic? Я думал о том, чтобы либо спрятать его с помощью Poke, либо изменить символ курсора на пробел?

Я знаю, что VisiCalc делает это, когда вы загружаете программу, мигающий курсор не мигает, пока вы не начнете редактирование. Я хочу сделать эту же функцию в моей программе.

Примечание: я не хочу делать это через эмулятор, так как в конечном итоге перенесу это на оборудование Apple.

3 ответа

Решение

Я нашел решение для этого здесь. Управление терминалом / Скрытие курсора.

Мне удалось скрыть курсор с помощью команды WAIT, а затем получить следующий символ с помощью GET.

WAIT 49152, 128
GET I$

Больше примеров здесь: Основные примеры Applesoft

VisiCalc написан на ассемблере, как и Applesoft BASIC, как и процедура прошивки, которую Applesoft вызывает, чтобы получить клавишу во время мигания курсора. Вы можете читать клавиатуру, не мигая курсором из Applesoft или языка ассемблера, но вам необходимо изучить основные программные переключатели, используемые для этого.

Name     Hex    Decimal  Negative
KBD      $C000  49152    -16384
KBDSTRB  $C010  49168    -16368

Таким образом, вы читаете KBD, чтобы получить значение последней нажатой клавиши. Бит 8 этого значения ("строб") будет установлен, если это новый ключ - в этом случае вам нужно вычесть 128, чтобы получить значение ключа. Затем вы получаете доступ к KBDSTRB, чтобы очистить строб-бит KBD. Для получения дополнительной информации я отсылаю вас к странице 5 Справочного руководства Apple II или странице 12 Технического справочного руководства Apple IIe.

Еще одна хорошая книга, в которой рассказывается об этом и многом другом, - "Руководство пользователя нового Apple II".

Вот простой пример использования этих программных переключателей:

10 KEY = PEEK (-16384) : REM READ KEY
20 IF KEY >= 128 THEN PRINT PEEK (-16368) : REM CLEAR STROBE
30 GOTO 10

Наконец, рассмотрите посещение Retrocomputing для таких вопросов.

Оригинальный ответ:

Существует недокументированный способ сделать это на Apple IIe

POKE 2043, ASC(" ") + 128

Дополнительная информация: https://www.atarimagazines.com/compute/issue90/Feedback_Custom_Cursor.php

Обновить

Как сказал @Nick Westgate. Это работает для Apple IIc, а не для Apple IIe.

Дополнительная информация: https://github.com/AppleWin/AppleWin/issues/135

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