User Tag List

Страница 44 из 46 ПерваяПервая ... 40414243444546 ПоследняяПоследняя
Показано с 431 по 440 из 454

Тема: Компьютер "Океан-240"

  1. #431

    Регистрация
    28.03.2006
    Адрес
    Санкт-Петербург
    Сообщений
    2,777
    Спасибо Благодарностей отдано 
    554
    Спасибо Благодарностей получено 
    200
    Поблагодарили
    138 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от yevrowl Посмотреть сообщение
    Какая кодировка используется в «Океане-240»? Доступна ли таблица символов?
    Кодировка вроде бы КОИ-8. Таблицу символов можно распечатать простой программой на Basic, переключаясь между наборами с заглавными и прописными буквами латиницы и кириллицы:

    <ESC>7N - ВЫБОР НАБОРА СИМВОЛОВ N=0,1,2
    N= 0: ЛАТИНСКИЕ, ПРОПИСНЫЕ/СТРОЧНЫЕ
    1: РУССКИЕ, ПРОПИСНЫЕ/СТРОЧНЫЕ
    2: ПРОПИСНЫЕ, ЛАТИНСКИЕ/РУССКИЕ

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

    yevrowl(19.10.2025)

  2. #432

    Регистрация
    06.09.2025
    Адрес
    г. Киев, Украина
    Сообщений
    246
    Спасибо Благодарностей отдано 
    417
    Спасибо Благодарностей получено 
    30
    Поблагодарили
    26 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от tnt23 Посмотреть сообщение
    Таблицу символов можно распечатать простой программой на Basic
    Попытался вывести таблицу символов посредством IBasic и MBasic:

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

Название:	IBASIC.jpg 
Просмотров:	32 
Размер:	23.3 Кб 
ID:	83004 Нажмите на изображение для увеличения. 

Название:	MBASIC.jpg 
Просмотров:	33 
Размер:	20.5 Кб 
ID:	83005

    Первый выдаёт ошибку синтаксиса, второй зависает после ввода первой строки программы.
    ÷)

  3. #433

    Регистрация
    28.03.2006
    Адрес
    Санкт-Петербург
    Сообщений
    2,777
    Спасибо Благодарностей отдано 
    554
    Спасибо Благодарностей получено 
    200
    Поблагодарили
    138 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Вечером попробую на реале.

    На всякий случай есть немного инфы по IBASIC от @ivagor

    Скрытый текст


    Коротко про IBASIC. Составил Иван Городецкий, 02.02.2019

    1. Служебные директивы (только те, которые необычные, RUN и LIST не вижу смысла комментировать)
    1.1 SCR - просто стирает текущую программу в памяти (в других бейсиках это часто NEW)
    1.2 NEW[имя] - как SCR, но с заданием имени.
    1.3 SAVE[имя] - выгрузка программы
    1.4 OLD[имя] - загрузка программы
    1.5 SYS - выход в дос
    1.6.1 NAME - показывает текущее имя программы
    1.6.2 NAMEимя - задает новое имя программы
    1.7 UNSAVE[имя.BSC] или ERA[имя.BSC] - удаление программы с диска
    1.8 LLIST - в данном бейсике синоним LIST, такие дела
    1.9 NULLаргумент. Аргумент от 0 до 255. Задание задержки при переходе к новой строке или при скролле.
    Замечание по поводу директив с именем в квадратных скобках. Это значит, что имя можно указывать, а можно не указывать, и тогда будет использовано имя заданное при старте программы или через NAME (или запрошено в случае OLD).

    2. Звук
    2.1. BELL - звонок
    2.2. SOUND высота, длительность - задает параметры звука для BELL.

    3. Графика
    3.1 GRAF - очистка экрана, вместо CLS. Кроме того этот оператор установит 3й бит в BFDC и BFE6 и получится аналог CLS 8-15 (т.е. без скролла основого экрана) в MB.COM. Выйти из этого режима можно по директиве LIST
    3.2 RECT x,y - прямоугольник из текущей точки до x,y
    3.3 COL цвет
    3.4 POS x,y - перемещение графического курсора
    3.5 LINE x,y - линия из текущей точки до x,y
    3.6 SET палитра,цвет_фона
    3.7 SYM выражение для печати - аналог PRINT, но с возможностью задания места для печати с точностью до точки (позицию для печати задает предыдущий графический оператор, удобно использовать POS).

    4. Cредства для взаимодействия с машиннокодовыми процедурами.
    4.1 Функция ARG(значение) - задает значение пары BC, которое будет передано CALL
    4.2 Функция CALL(адрес), про которую я уже упоминал. На входе: BC - значение заданное в ARG, DE - указатель на специальный стек. В качестве результата возвращает содержимое BA (т.е. B как бы старшая половина регистровой пары, A - младшая). Кроме того можно возвратить значение в "стеке", указатель на который был передан в DE.
    4.3 Функция POP() - выбирает значение со "стека", с которым работал CALL. Т.е. CALL кроме результата в BA может вернуть и другие результаты работы машиннокодовой процедуры.
    4.4 Функция UNTRAP(). Весьма специфическая. Машиннокодовая процедура, вызываемая по CALL или POKE могут изменить ячейку, отвечающую за "стек перехвата ошибок". Как я понимаю, это нужно для расширения возможностей бейсика, например так можно добавить работу со строковыми переменными. UNTRAP снимает с этого стека значение, т.е. убирает перехват.
    Еще можно упомянуть, что есть функция INP для чтения портов. Оператора OUT для записи в порты (в отличие от MB.COM) в IBASIC нет.
    Но благодаря мощным возможностям по взаимодействию с машиннокодовыми процедурами можно доопределить нужные вещи, хоть печать esc, хоть запись в порты.
    Например, для печати esc можно использовать процедурку
    4000h mvi c,1Bh
    4002h jmp 0913h
    Вызов:
    5GRAF
    10A=CALL(16384)
    20PRINT"1234" - нарисует прямоугольник
    или 20PRINT"2345" - нарисует линию
    [свернуть]

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

    yevrowl(19.10.2025)

  4. #434

    Регистрация
    06.09.2025
    Адрес
    г. Киев, Украина
    Сообщений
    246
    Спасибо Благодарностей отдано 
    417
    Спасибо Благодарностей получено 
    30
    Поблагодарили
    26 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от tnt23 Посмотреть сообщение
    Кодировка вроде бы КОИ-8.
    Не слишком напоминает КОИ-8 или CP866 ввиду отсутствия кириллицы. =)

    Выяснил, что CHR$(31) и CHR$(159) — очистка экрана, а CHR$(13) — смещение «каретки» в верхний левый угол экрана.

    Вот компилированная программка на CP/M которая выводит задаваемые диапазоны символов: font.7z

    Код:
    110 FOR I = 1 TO 25
    120 PRINT
    130 NEXT I
    140 INPUT "A (FROM 1 TO 255) = "; A
    150 INPUT "B (FROM 1 TO 255) = "; B
    160 FOR I = 1 TO 25
    170 PRINT
    180 NEXT I
    190 FOR I = A TO B
    200 IF I = 31 THEN I = I + 1
    210 IF I = 159 THEN I = I + 1
    220 PRINT I; "= "; CHR$(I); " ";
    230 NEXT I
    240 PRINT
    250 END
    Сложилось впечатление, что всего 95 символов:

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

Название:	codepage.png 
Просмотров:	32 
Размер:	1.3 Кб 
ID:	83009
    Последний раз редактировалось yevrowl; 19.10.2025 в 16:18.
    ÷)

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

    tnt23(19.10.2025)

  5. #435

    Регистрация
    28.03.2006
    Адрес
    Санкт-Петербург
    Сообщений
    2,777
    Спасибо Благодарностей отдано 
    554
    Спасибо Благодарностей получено 
    200
    Поблагодарили
    138 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от yevrowl Посмотреть сообщение
    Сложилось впечатление, что всего 95 символов
    В знакогенераторе - да, причем они разные для разных режимов (ESC<7><режим>), описанных выше.

    Также в REL.8 есть странный режим "вывод игровой графики", добавляется еще 32 изображения пиктограмм. Но это все особенности чисто "Океана".

  6. #436

    Регистрация
    06.09.2025
    Адрес
    г. Киев, Украина
    Сообщений
    246
    Спасибо Благодарностей отдано 
    417
    Спасибо Благодарностей получено 
    30
    Поблагодарили
    26 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от tnt23 Посмотреть сообщение
    В знакогенераторе - да, причем они разные для разных режимов (ESC<7><режим>), описанных выше.

    Также в REL.8 есть странный режим "вывод игровой графики", добавляется еще 32 изображения пиктограмм. Но это все особенности чисто "Океана".
    Подскажите пожалуйста, можно ли вывести средствами Бейсика (MBasic) на экран все упомянутые символы?
    ÷)

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

  8. #437

    Регистрация
    28.03.2006
    Адрес
    Санкт-Петербург
    Сообщений
    2,777
    Спасибо Благодарностей отдано 
    554
    Спасибо Благодарностей получено 
    200
    Поблагодарили
    138 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Можно, попробуйте перед прогоном цикла печати символов давать последовательности кодов

    27, 55, 48

    27, 55, 49

    27, 55, 50

    27, 55, 51

    - - - Добавлено - - -

    См. наборы Г0 и Г1 тут:

    https://meganorm.ru/Data2/1/4294820/4294820311.htm
    Последний раз редактировалось tnt23; 19.10.2025 в 21:25. Причина: исправил 53 на 55

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

    yevrowl(19.10.2025)

  9. #438

    Регистрация
    06.09.2025
    Адрес
    г. Киев, Украина
    Сообщений
    246
    Спасибо Благодарностей отдано 
    417
    Спасибо Благодарностей получено 
    30
    Поблагодарили
    26 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от tnt23 Посмотреть сообщение
    Можно, попробуйте перед прогоном цикла печати символов давать последовательности кодов
    Каким образом, то бишь какими командами Бейсика, эти коды давать?
    Из прочитанных сведений о ГОСТах не уразумел, каким образом задействовать представленные четыре набора из трёх чисел.
    Последний раз редактировалось yevrowl; 19.10.2025 в 20:00.
    ÷)

  10. #439

    Регистрация
    28.03.2006
    Адрес
    Санкт-Петербург
    Сообщений
    2,777
    Спасибо Благодарностей отдано 
    554
    Спасибо Благодарностей получено 
    200
    Поблагодарили
    138 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от yevrowl Посмотреть сообщение
    Каким образом, то бишь какими командами Бейсика, эти коды давать?
    При помощи функции CHR$(), как в вашем примере. В нашем случае как-то так:

    Код:
    105 PRINT CHR$(27);CHR$(53);CHR$(48)
    - - - Добавлено - - -

    Что-то MBasic какой-то неживой - практически все время то зависает, то вываливается назад в CP/M.

    - - - Добавлено - - -

    Вот результат переключения кодовой страницы из латиницы в кириллицу подачей последовательности 27, 55, 49 (ESC 7 1):

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

Название:	esc_7_1.jpg 
Просмотров:	22 
Размер:	19.9 Кб 
ID:	83016

    Остальные три варианта дают разные сочетания латиницы и кириллицы в строчном и прописном исполнении.

    До пиктограмм пока не добрался, где-то была фотка в этом разделе форума.
    Последний раз редактировалось tnt23; 19.10.2025 в 22:30. Причина: накосячил с картинкой, плохо считаю к тому же

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

    yevrowl(19.10.2025)

  11. #440

    Регистрация
    06.09.2025
    Адрес
    г. Киев, Украина
    Сообщений
    246
    Спасибо Благодарностей отдано 
    417
    Спасибо Благодарностей получено 
    30
    Поблагодарили
    26 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от tnt23 Посмотреть сообщение
    При помощи функции CHR$(), как в вашем примере. В нашем случае как-то так
    Вообще не заменил разницы в выводе:

    Код:
    100 INPUT "X (FROM 1 TO 4) = "; X
    110 PRINT CHR$(31)
    120 IF X = 1 THEN PRINT CHR$(27); CHR$(53); CHR$(48);
    130 IF X = 2 THEN PRINT CHR$(27); CHR$(53); CHR$(49);
    140 IF X = 3 THEN PRINT CHR$(27); CHR$(53); CHR$(50);
    150 IF X = 4 THEN PRINT CHR$(27); CHR$(53); CHR$(51);
    160 FOR I = 1 TO 255
    170 IF I = 13 THEN I = I + 1
    180 IF I = 31 THEN I = I + 1
    190 IF I = 159 THEN I = I + 1
    200 PRINT CHR$(I); " ";
    210 NEXT I
    220 PRINT
    230 END
    Цитата Сообщение от tnt23 Посмотреть сообщение
    Что-то MBasic какой-то неживой - практически все время то зависает, то вываливается назад в CP/M.
    Поэтому приходится компилировать при помощи BasCom для i8080 и передавать исполняемые файлы в эмулятор «Океан-240».
    ÷)

Страница 44 из 46 ПерваяПервая ... 40414243444546 ПоследняяПоследняя

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

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

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

Похожие темы

  1. Ответов: 1382
    Последнее: 31.10.2020, 09:49
  2. Ответов: 0
    Последнее: 15.08.2010, 14:38
  3. Изучаю спрос на игровой компьютер "Квант"
    от KaraCurt в разделе Барахолка (архив)
    Ответов: 2
    Последнее: 28.01.2010, 18:30
  4. Ответов: 27
    Последнее: 19.12.2009, 18:49
  5. Ответов: 0
    Последнее: 26.06.2005, 11:52

Ваши права

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