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