Важная информация

User Tag List

Страница 2 из 9 ПерваяПервая 123456 ... ПоследняяПоследняя
Показано с 11 по 20 из 83

Тема: BASIC на Корвете

  1. #11

    Регистрация
    20.06.2007
    Адрес
    С.-Петербург
    Сообщений
    4,299
    Спасибо Благодарностей отдано 
    1,028
    Спасибо Благодарностей получено 
    813
    Поблагодарили
    484 сообщений
    Mentioned
    26 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ivagor Посмотреть сообщение
    У оператора LUT есть недостаток (или наоборот достоинство, кому как).
    Я смутно вспоминаю, как мы вредничали LUT-ом, делая наверное черный на черном. Хорошо, что спастись из такой ситуации было нетрудно.
    Больше игр нет

  2. #12

    Регистрация
    08.06.2015
    Адрес
    г. Санкт-Петербург
    Сообщений
    11
    Спасибо Благодарностей отдано 
    1
    Спасибо Благодарностей получено 
    3
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ivagor Посмотреть сообщение
    У оператора LUT есть недостаток (или наоборот достоинство, кому как). После синтаксической ошибки (например, случайно набрали что-то в строке и нажали ввод) цвета вернутся к исходным, а в моем варианте они изменятся "навсегда".
    Это наоборот достоинство же )
    Последний раз редактировалось bars_z; 05.12.2018 в 14:32.

  3. #13

    Регистрация
    06.04.2013
    Адрес
    г. Могилев, Беларусь
    Сообщений
    254
    Записей в дневнике
    3
    Спасибо Благодарностей отдано 
    110
    Спасибо Благодарностей получено 
    62
    Поблагодарили
    28 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Как известно, в Корвете есть две половинки символов знакогенератора:

    Нажмите на изображение для увеличения. 

Название:	korvetfont-korvet2.png 
Просмотров:	246 
Размер:	10.7 Кб 
ID:	67389

    Символы из первой половинки вывести в бейсике очень легко:
    PRINT CHR$(код от 32 до 255)

    Вопрос: можно ли как-то из бейсика переключиться на вторую половину знакогенератора? Может есть какие-нибудь управляющие символы или может возможно записать через POKE бит по какому-нибудь хитрому адресу для переключения?

    Из стандартных управляющих символов мне известны:
    Цитата Сообщение от «Знакомьтесь: персональная ЭВМ Корвет», страница 152
    PRINT CHR$(27);"3" - включение режима "32 cимвола в строке" - широкие символы
    PRINT CHR$(27);"2" - включение режима "64 cимвола в строке" - стандартный режим
    PRINT CHR$(27);"6" - инвертирование строки
    PRINT CHR$(27);"7" - обратное инвертирование строки
    Последний раз редактировалось Serebriakov; 20.12.2018 в 19:39.

  4. #14

    Регистрация
    07.08.2008
    Адрес
    г. Уфа
    Сообщений
    8,390
    Спасибо Благодарностей отдано 
    763
    Спасибо Благодарностей получено 
    2,367
    Поблагодарили
    1,317 сообщений
    Mentioned
    38 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    В Бейсике 2.0 есть штатные средства:
    PRINTCHR$(27);"0" - основной знакогенератор
    PRINTCHR$(27);"1" - альтернативный знакогенератор

    В Бейсике 1.1 можно использовать POKE (в 2.0 они тоже сработают)
    POKE&HFB3A,PEEK(&HFB3A)AND251 - основной знакогенератор
    POKE&HFB3A,PEEK(&HFB3A)OR4 - альтернативный знакогенератор

  5. #15

    Регистрация
    06.04.2013
    Адрес
    г. Могилев, Беларусь
    Сообщений
    254
    Записей в дневнике
    3
    Спасибо Благодарностей отдано 
    110
    Спасибо Благодарностей получено 
    62
    Поблагодарили
    28 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Круто! Большое спасибо! Давно хотел сделать тест знакогенератора на бейсике, но не знал как переключать знакогенератор.

    Тогда еще вопрос. Заметил, что PRINT CHR$(код) не умеет выводить символы ниже 32. Нашел другой способ их вывода - писать через POKE напрямую в память АЦЗУ код символа.
    Например: POKE &HFC00,2 - выведет смайлик c кодом 2 в верхний левый угол.
    Адреса методом тыка нашел следующие: от &HFC00 (64512) - верхний левый угол экрана до &HFFFF (65535) - правый нижний.

    Может быть существует какой-нибудь штатный способ их отрисовки (символов ниже 32)?

    Цитата Сообщение от ivagor Посмотреть сообщение
    В Бейсике 2.0 есть штатные средства:
    PRINTCHR$(27);"0" - основной знакогенератор
    PRINTCHR$(27);"1" - альтернативный знакогенератор
    Ни в дисковом, ни в пзу-шном Бейсике 2.0 такой способ почему-то не заработал.

    Цитата Сообщение от ivagor Посмотреть сообщение
    В Бейсике 1.1 можно использовать POKE (в 2.0 они тоже сработают)
    POKE&HFB3A,PEEK(&HFB3A)AND251 - основной знакогенератор
    POKE&HFB3A,PEEK(&HFB3A)OR4 - альтернативный знакогенератор
    Этим способом получилось. Очень интересно, как вы его нашли? Как нашли адрес в памяти и почему к нему применяются именно эти логические операции? Они накладывают какую-то определенную битовую маску? Действительно очень интересно.
    Последний раз редактировалось Serebriakov; 22.12.2018 в 07:13.

  6. #16

    Регистрация
    07.08.2008
    Адрес
    г. Уфа
    Сообщений
    8,390
    Спасибо Благодарностей отдано 
    763
    Спасибо Благодарностей получено 
    2,367
    Поблагодарили
    1,317 сообщений
    Mentioned
    38 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Serebriakov Посмотреть сообщение
    Ни в дисковом, ни в пзу-шном Бейсике 2.0 такой способ почему-то не заработал.
    Могу только привести скриншоты из emu
    Нажмите на изображение для увеличения. 

Название:	rom20.png 
Просмотров:	184 
Размер:	1.5 Кб 
ID:	67398Нажмите на изображение для увеличения. 

Название:	rom20alt.png 
Просмотров:	201 
Размер:	1.8 Кб 
ID:	67399Нажмите на изображение для увеличения. 

Название:	disk20.png 
Просмотров:	211 
Размер:	1.6 Кб 
ID:	67400Нажмите на изображение для увеличения. 

Название:	disk20alt.png 
Просмотров:	163 
Размер:	2.0 Кб 
ID:	67401

    Цитата Сообщение от Serebriakov Посмотреть сообщение
    Этим способом получилось. Очень интересно, как вы его нашли?
    Есть техническая информация, например здесь. В данном случае нужно смотреть регистр VIREG, а конкретный бит можно понять по маске FONT1.

    Этот пользователь поблагодарил ivagor за это полезное сообщение:

    Serebriakov(13.11.2019)

  7. #16
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  8. #17

    Регистрация
    27.11.2014
    Адрес
    г. Саратов
    Сообщений
    549
    Спасибо Благодарностей отдано 
    57
    Спасибо Благодарностей получено 
    39
    Поблагодарили
    30 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Как в графическом режиме вывести текст в нужном месте экрана? Не через LOCATE. То есть, не в определенном знакоместе, а привязать его к определенной точке экрана. Через LOCATE получается слишком дискретно, по высоте с шагом в 16 точек, а мне нужно 12. У Корвета слишком мало строк, всего 16, в то время, как у Суры - 24.На Суре я писал что-то вроде PRESET (120,50):PRINT"текст", и текст начинался от точки 120,50. Здесь это не проходит, текст всё равно выводится от левого края и по высоте с шагом 16 точек.
    Короче, я делаю игру "Морской бой", вернее, адаптирую c Q-Basic (в котором я написал её ещё в 90-х). Два игровых поля - корабли противника и свои, между полями нужно написать цифры 1-9, 0, как на картинке:
    Нажмите на изображение для увеличения. 

Название:	морбой.PNG 
Просмотров:	154 
Размер:	6.3 Кб 
ID:	70422
    B Q-Basic'e клетки имеют размер 16х16 точек, на Суре - 8х8. А на Корвете приходится делать их 16х12, чтобы они были квадратными. А шаг текста по высоте 16 точек, цифры "убегают" вниз. Вроде, можно написать PRINT AT(координаты), но я не помню синтаксиса. В книге про Корвет я такого не нашёл.

  9. #18

    Регистрация
    06.02.2009
    Адрес
    Кемерово
    Сообщений
    1,409
    Спасибо Благодарностей отдано 
    72
    Спасибо Благодарностей получено 
    227
    Поблагодарили
    161 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Писать свою процедуру вывода строк без использования АЦЗУ.
    ПК8010 "Корвет"+ExtRom+AY, Atari 65XE+SDrive, Дельта-С(52ИС)+AY, Scorpion ZS 1024+SMUC

  10. #19

    Регистрация
    12.05.2018
    Адрес
    с. Телешовка, Киевская обл., Украина
    Сообщений
    33
    Спасибо Благодарностей отдано 
    3
    Спасибо Благодарностей получено 
    13
    Поблагодарили
    11 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Serebriakov Посмотреть сообщение
    Ни в дисковом, ни в пзу-шном Бейсике 2.0 такой способ почему-то не заработал.
    В "железе" должен работать. Не во всех эмулях работает. В SPCKorvet (Андроид) работает, в korvet-v09 работает, в VirtualKorvet не работает. В других не проверял.

  11. #20

    Регистрация
    27.11.2014
    Адрес
    г. Саратов
    Сообщений
    549
    Спасибо Благодарностей отдано 
    57
    Спасибо Благодарностей получено 
    39
    Поблагодарили
    30 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от marinovsoft Посмотреть сообщение
    Писать свою процедуру вывода строк без использования АЦЗУ.
    Я решил легко выйти из положения. Просто нарисовать цифры операторами LINE. Пусть они будут квадратными или как на почтовом индексе. А потом я обнаружил оператор DRAW. Вместо нескольких LINE можно использовать один DRAW. Но Бейсик ругается: Ошибка синтаксиса. Я пишу правильно, как в книжке про Корвет. Даже буква в букву из примера, например, DRAW"E30R340F30",7. Ну что ему опять не нравится???

Страница 2 из 9 ПерваяПервая 123456 ... ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. 128 basic
    от sevol в разделе Для начинающих
    Ответов: 149
    Последнее: 08.02.2025, 05:10
  2. Ответов: 33
    Последнее: 05.12.2018, 09:00
  3. Дизассемблер BASIC-48
    от Prusak в разделе Пресса
    Ответов: 4
    Последнее: 22.06.2010, 22:52
  4. Программы на BASIC
    от form в разделе ДВК, УКНЦ
    Ответов: 14
    Последнее: 17.04.2010, 15:41
  5. Софт от MSX на Корвете
    от AlexFantasy в разделе MSX
    Ответов: 4
    Последнее: 09.07.2008, 21:07

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •