Что делать, если нет РОБИКА, а русский бейсик охота?
Вид для печати
В ZX-ФОРУМ №1 статья "Расширение функций оператора PRINT".
Возможности:
- переключение на русский и английский FONT'ы;
- печать шрифтом высотой 8 и шириной от 3 до 7 пикселов;
- печать шрифтом высотой 16 и шириной 8 пикселов;
- печать 2-х типов меню с тенью или без неё;
- печать собственных или системных токенов ключевых слов.
Подпрограмма, выдающая номер выбранной опции из меню.
Подпрограмма, похожая на ПЗУ-шную 203CH, только требующая для своей работы в регистре A - номер печатаемого стринга и в ОЗУ - таблицу начальных адресов этих стрингов.
AndTorp, ну потому и показалось что громоздко.
Хотя,конечно, тоже круто, да.
(всегда фапал на системное программирование, но не срослось, дурак я, ламер...)
В "Орель БК-08" тоже был русифицированный заводской бейсик. В придачу шла расширенная клавиатура, на которой помещались русские буквы, специальная клавиша "РУС/ЛАТ" и другие. Все сообщения бейсика об ошибках были переведены на русский, кроме того, при загрузке вместо "Program:", "Bytes:", "Number array:", "Character array:" выводились сообщения "Программа", "Байты", "Массив чисел", "Массив символов" соответственно.
Скажу сразу, что ничего хорошего из этого не вышло. Ну разве что разработчики в отчете себе плюсики поставили и премии получили. От русских сообщений толку никакого. Писать программы с русскими надписями в бейсике было возможно, но такие программы корректно работали только на "Орелях". А из-за того, что бейсик был сильно перепахан, потерялась совместимость со многими играми. Хоть я и был, наверно, одним из немногих, кто на практике воспользовался русификацией бейсика - писал маленькие свои программки с русским текстом - но даже мне в конце концов это не понравилось, и впоследствии я применял прошивки без русификации. Тем же, кто на "Орелях" только играл, пользы от русификации было еще меньше, а был один лишь вред из-за потери совместимости.
Так что не советую.
Ну а чтобы "попробовать" - то здесь есть эмулятор Unreal с поддержкой орелевской клавиатуры. В темах про "Орель БК-08" где-то пробегала и заводская прошивка бейсика. Также в интернете можно скачать заводские инструкции к компьютеру и бейсику, где работа с орелевской клавиатурой описана подробно.
Всем спасибо за ссылки/советы. Однако все-таки первоначальный вариант является оптимальным для моей задачи. Задача была в том, чтобы получить бейсик с возможностью переключения раскладок в листинге/строке редактирования/строке ввода при выполнении самой программы. Причем и листинг и строка редактирования тоже должны были отображаться корректно. Далее, нужна была раскладка ЙЦУКЕН для комфортной работы на pc-шной клаве, в связи с этим пришлось пожертвовать строчными буквами. В общем, это практически все удалось, есть только два неприятных момента:
1. Клавиша с буквой Э на PC-клаве обычно маппится на кавычки, и будут проблемы при ее использовании, поэтому в программе она замаппена на апостроф.
2. Если при вводе строки переключать только один раз раскладку, то строка будет отображаться некорректно(используя только один из шрифтов).
Первая фича решается переназначением клавиш в эмуле/прошивкой zx-evo (если есть:))
Вторую можно решить программно, но мне не хватает мозгов. Думаю проблема решится автоматической вставкой кода лат.раскладки(0) после токена например.
Для чего мне нужны все эти извращения? Есть zx-evo, есть книга по программированию на бейсике для детей, есть сами дети:) Последнее слагаемое, чтобы попытатся заинтересовать детей - бейсик с комфортной работой с русским шрифтом. Если кому вдруг интересно - trd в атаче.
Den1982, интерфейсы бейсиков для ZX Spectrum'а не являются особенно дружественными. Может имеет смысл заняться с детьми не выводами строчно-текстовой информации, а какими-нибудь графическими эффектами - построение простейших геометрических фигур, их заливка и т.п.
Для этих целей может подойти система PRO-DOS (описана в книге "Диалекты Бейсика для ZX-Spectrum" - Питер'92).
Ух ты.. а я просто шрифт переключал на русский и получал БАСИЦ ))) Ну вы поняли - все буквы латиницы заменялись на кириллицу.. Местами весьма ржачно было )