User Tag List

Страница 8 из 9 ПерваяПервая ... 456789 ПоследняяПоследняя
Показано с 71 по 80 из 83

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

  1. #71

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

    По умолчанию

    Если бы эта ошибка была всегда. А то, через раз. И это меня сильно пугает. Микродос - не Windows, Бейсик - не современная среда программирования на гигабайты, чему там глючить в 10 кб кода? Оно может или работать или не работать, либо всегда в одинаковых условиях выдавать один и тот же косяк. Я подозреваю аппаратные проблемы. Завтра включу его и, пока он холодный, позапускаю эти программы.

  2. #72

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

    По умолчанию

    Цитата Сообщение от Arix Посмотреть сообщение
    Если бы эта ошибка была всегда. А то, через раз. И это меня сильно пугает. Микродос - не Windows, Бейсик - не современная среда программирования на гигабайты, чему там глючить в 10 кб кода? Оно может или работать или не работать, либо всегда в одинаковых условиях выдавать один и тот же косяк. Я подозреваю аппаратные проблемы. Завтра включу его и, пока он холодный, позапускаю эти программы.
    Тогда как же
    Цитата Сообщение от Arix Посмотреть сообщение
    В 1988-м Бейсике из-под СР/М всё нормально.
    - - - Добавлено - - -

    Цитата Сообщение от Arix Посмотреть сообщение
    У меня ОПТС 1.1, а в эмуляторе 2.0.
    В некоторых эмулях можно "собрать" конфигурацию похожую на Ваш реал и попробовать погонять софт в эмуле..

  3. #73

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

    По умолчанию

    Цитата Сообщение от AlexS58 Посмотреть сообщение
    Тогда как же
    Это обнадёживает. Запускал разные игрушки, в т.ч., из-под этого Микродоса, надолго оставлял комп включенным, всё нормально.
    Я записал Микродос из образа mdos1_870430.kdi. В этой программе так же вылезает синтаксическая ошибка в строке 100. Пока эксперименты прекращаю, т.к. уезжаю в командировку.

  4. #74

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

    По умолчанию

    Наткнулся:
    Цитата Сообщение от esl Посмотреть сообщение
    Микродос датированый 1990-01-05

    Он есть в \OS\DOS_LAYOUTS\microdos
    mdos2_900105_START.kdi.idb
    mdos2_900105_ROM1.kdi.idb
    mdos2_900105_ROM2.kdi.idb

    он сам по себе забавен, он работает и на ОПТС1 и на ОПТС2
    и нашел: mdos_900105.7z (4 дискеты)
    Бейсик в нем такой же как на дискетах mdos2_880630_1.kdi и CPM-80_000.kdi

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




    [свернуть]

  5. #75

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

    По умолчанию

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

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

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

    Код:
    УПРАВЛЯЮЩИЕ			ДЕЙСТВИЕ
     СИМВОЛЫ:
    
    
    01H,X,Y =>	Перемещение курсора в позицию с номером строки
    		(x-20h) и номером столбца (y-20h)
    04H =>		Стирание  символов от позиции курсора до конца
                    экрана
    07H =>		Выдача звукового сигнала
    08H =>		Возврат курсора на одну позицию назад
    0АH =>		Перемещение  курсора в начало следующей строки
                    (с роллингом)
    0BH =>		Удаление  строки,  на которой находится курсор
                    (оставшиеся до конца экрана строки  сдвигаются
                    вниз, последняя строка пропадает)
    0CH =>		Перемещение  курсора  в  первую позицию первой
                    строки экрана
    0DH =>		Перемещение  курсора  в первую позицию текущей
                    строки
    10H,X =>	Символ  x  выводится  на  экран и не считается
                    управляющим символом
    15H =>		Стирание символов от позиции  курсора до конца
    		строки
    18H =>		Перемещение курсора вправо
    19H =>		Перемещение курсора вверх
    1AH =>		Перемещение курсора вниз
    1CH =>		Вставка  пробела  на  место  курсора  (остаток
                    строки  сдвигается  вправо,  последний  символ
                    строки пропадает)
    1DH =>		Удаление  символа  из позиции курсора (остаток
                    строки сдвигается влево, в  последнюю  позицию
                    строки заносится пробел)
    1EH =>		Вставка   пустой   строки   на  место  курсора
                    (оставшиеся до конца экрана строки  сдвигаются
                    вверх,  на  место  последней  строки заносится
                    пустая строка)
    1FH =>		Очистка всего экрана
    
    УПРАВЛЯЮЩИЕ			ДЕЙСТВИЕ
    ПОСЛЕДОВА-
    ТЕЛЬНОСТИ:
    
    1BH,'0' =>	Включение     основного     набора    символов
                    знакогенератора 
    1BH,'1' =>	Включение   дополнительного   набора  символов
                    знакогенератора
    1BH,'2' =>	Включение нормальной ширины символов
    1BH,'3' =>	Включение удвоенной ширины символов
    1BH,'6' =>	Включение    режима   инверсного   отображения
                    символов
    1BH,'7' =>	Выключение   режима
                    инверсного  отображения  символов
    1BH,':' =>	Разрешение   отображения  курсора
    1BH,';' =>	Запрет   отображения   курсора
    1BH,'<' =>	Включение  режима  автоматического  перехода к
                    новой  строке  экрана  по   достижению   конца
                    текущей строки
    1BH,'=' =>	Выключение  режима  автоматического перехода к
                    новой  строке  экрана  по   достижению   конца
                    текущей   строки   (переход   к  новой  строке
                    выполняется только по управляющим символам)
    1BH,'@' =>	Вставка  пробела  на  место  курсора  (остаток
                    строки  сдвигается  вправо,  последний  символ
                    строки пропадает)
    1BH,'A' =>	Перемещение курсора вверх
    1BH,'B' =>	Перемещение курсора вниз
    1BH,'C' =>	Перемещение курсора вправо
    1BH,'D' =>	Перемещение курсора влево
    1BH,'E' =>	Очистка всего экрана
    1BH,'F' =>	Перемещение курсора в начало следующей строки,
                    а из последней строки экрана в первую
    1BH,'G' =>	Перемещение курсора в начало текущей строки
    1BH,'H' =>	Перемещение  курсора  в  первую позицию первой
                    строки экрана
    1BH,'J' =>	Стирание  символов от позиции курсора до конца
                    экрана
    1BH,'K' =>	Стирание  символов от позиции курсора до конца
                    строки
    1BH,'L' =>	Вставка   пустой   строки   на  место  курсора
                    (оставшиеся до конца экрана строки  сдвигаются
                    вниз, последняя строка пропадает)
    1BH,'M' =>	Удаление  строки,  на которой находится курсор
                    (оставшиеся до конца экрана строки  сдвигаются
                    вверх,   на   место  последней  строки  экрана
                    заносится пустая строка)
    1BH,'P' =>	Удаление  символа  из позиции курсора (остаток
                    строки сдвигается влево, в  последнюю  позицию
                    строки заносится пробел)
    1BH,'Y',X,Y =>	Перемещение курсора в позицию с номером строки
                    (x-20h) и номером столбца (y-20h)
    [свернуть]

    Я к чему это вспомнил.. В нескольких темах периодически возникали вопросы по некоторым режимам. В основном поразрулили...
    А обращали внимание на интерфейс Proffer Commander?
    Очень интересно реализован. Главный экран - панельки - псевдографика в альтернативной кодировке (альтернативный знакогенератор), зато отображение справки по F1 корректно, просмотр того же файла справки (PROFFER.HLP) по F3 тоже корректно.
    Текст в цвете, и это не графика (а может и ошибаюсь) - шибко шустро работает. С LUT хорошо заморочились...

    Набросал пару тестов, переключающих режимы 32 или 64 символа. Сразу после загрузки системы запускать поочередно.
    Modes.zip
    Последний раз редактировалось AlexS58; 09.04.2025 в 17:55.

  6. #76

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

    По умолчанию

    Цитата Сообщение от Serebriakov Посмотреть сообщение
    Сообщение от ivagor:

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

    Этим способом получилось. Очень интересно, как вы его нашли? Как нашли адрес в памяти и почему к нему применяются именно эти логические операции? Они накладывают какую-то определенную битовую маску? Действительно очень интересно.
    В документации ч*рт ногу сломит... Даташиты писать не умели..
    Код:
    ;    Системный регистр вместе с регистром цвета и
    ; цветовой таблицей (см. ниже) располагается в стра-
    ; нице, начальное смещение которой определяется па-
    ; раметром RGBASE, способным принимать одно из 4
    ; значений:
    
    RGBASE1 EQU      3A00H  ; в TRS80 и ROMB2
    RGBASE2 EQU     0FA00H  ; в ROMB1, ODOSA, NDOS и BASIC
    RGBASE3 EQU     0FF00H  ; в DOSA и DOSG1
    RGBASE4 EQU     0BF00H  ; в BASG
    
    SYSREG  EQU     7FH     ; Относительный адрес
                            ; системного регистра
    Ок, понятно, - регистры

    Код:
    ; Адреса остальных регистров, представляющих собой
    ; порты периферийных БИС, сведены в одну страницу,
    ; начальный адрес которой PBASE может принимать одно
    ; из 3 значений:
    
    PBASE1  EQU      3B00H  ; в TRS80 и ROMB2
    PBASE2  EQU     0FB00H  ; в ROMB1, ODOSA, NDOS и BASIC
    PBASE3  EQU     0FE00H  ; в DOSA и DOSG1
    Тоже понятно, - порты

    Код:
            ; КОНТРОЛЛЕР ОТОБРАЖЕНИЯ АЛФАВИТНО-ЦИФРОВОЙ ИНФОРМАЦИИ
    .....................................................
    VIBASE1 EQU      3C00H  ; Начальный адрес АЦЗУ в конфигурациях
                            ; TRS80 и ROMB2
    VIBASE2 EQU     0FC00H  ; Начальный адрес АЦЗУ в конфигурациях
                            ; ROMB1, ODOSA, NDOS и BASIC
    Тоже понятно..

    А это как понимать???
    Код:
    VIREG   EQU     3AH  ; Относительный адрес регистра управления
                         ; отображением
    VISTS   EQU     38H  ; Относительный адрес регистра состояния
                         ; атрибута видеоинверсии
    Почему описаны как регистры? Они же в 0FB00H.

    Код:
    ; Константы для работы с регистрами
    
    ATRMSK  EQU     8  ; Маска атрибута видеоинверсии
    VBLMSK  EQU     2  ; Маска кадрового гасящего импульса
    
    FONT1   EQU     4       ; Выбор альтернативного набора
                            ; символов в знакогенераторе
    LARGE   EQU     8       ; Режим отображения расширенных
                            ; символов (32 символа в строке)
    ATRSET  EQU     10H     ; Установка бита атрибута
    ATRRES  EQU     20H     ; Сброс бита атрибута
    ATRFRE  EQU     30H     ; Сохранение состояния атрибута
                            ; и условие чтения атрибута
    Свалили в кучу...

    Код:
    ; Константы для работы с регистрами
    
    ATRMSK  EQU     8  ; Маска атрибута видеоинверсии
    VBLMSK  EQU     2  ; Маска кадрового гасящего импульса
    ATRSET  EQU     10H     ; Установка бита атрибута
    ATRRES  EQU     20H     ; Сброс бита атрибута
    ATRFRE  EQU     30H     ; Сохранение состояния атрибута
                            ; и условие чтения атрибута
    Это биты VISTS EQU 38H

    Код:
    FONT1   EQU     4       ; Выбор альтернативного набора
                            ; символов в знакогенераторе
    LARGE   EQU     8       ; Режим отображения расширенных
                            ; символов (32 символа в строке)
    А это биты VIREG EQU 3AH

    Дальше
    Код:
            ; КОНТРОЛЛЕР ОТОБРАЖЕНИЯ ГРАФИЧЕСКОЙ ИНФОРМАЦИИ
    ..................................
    PAGREG  EQU     VIREG   ; Адрес регистра выбора страниц
    
    VPAGE0  EQU  00000000B  ; Выбор 0 страницы отображения
    VPAGE1  EQU  00000001B  ; Выбор 1 страницы отображения
    VPAGE2  EQU  00000010B  ; Выбор 2 страницы отображения
    VPAGE3  EQU  00000011B  ; Выбор 3 страницы отображения
    
    RWPAG0  EQU  00000000B  ; Выбор 0 страницы чтения/записи
    RWPAG1  EQU  01000000B  ; Выбор 1 страницы чтения/записи
    RWPAG2  EQU  10000000B  ; Выбор 2 страницы чтения/записи
    RWPAG3  EQU  11000000B  ; Выбор 3 страницы чтения/записи
    О, АЦЗУ и ГЗУ конфигурится одним портом (PAGREG EQU VIREG)

    Код:
    LUT     EQU     0FBH    ; Адрес таблицы присвоения цветов
                            ; (относительный)
    
    ;  При записи в LUT биты D0...D3 задают номер одной из 16
    ; строк таблицы, а D4...D7 - содержимое этой строки.
    ; D3 соответствует АЦЗУ, D2 - слою ГЗУ #2, D1 - слою #1,
    ; D0 - слою #0;  D7 задает интенсивность (яркость),
    ; D6 - наличие красного цвета, D5 - зеленого цвета, D4 -
    ; синего цвета.
    С этим разобрались.. более-менее.
    Последний раз редактировалось AlexS58; 09.04.2025 в 13:48.

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

  8. #77

    Регистрация
    20.06.2014
    Адрес
    г. Орск, Оренбургская обл.
    Сообщений
    813
    Спасибо Благодарностей отдано 
    33
    Спасибо Благодарностей получено 
    80
    Поблагодарили
    60 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от AlexS58 Посмотреть сообщение
    В документации ч*рт ногу сломит... Даташиты писать не умели..
    Всё там правильно и доходчиво расписано.
    Базовый адрес портов PBASE (зависит от выбранной конфигурации) плюс относительный адрес конкретного порта (смещение) и даёт абсолютный адрес порта (FB00H + 3AH = FB3AH).
    Также и с регистрами: RGBASE (FA00H) + SYSREG (7FH) = FA7FH.
    Последний раз редактировалось LeoN65816; 10.04.2025 в 07:59.
    Турбо АГАТ-9/16 (ЦП 65C802, 5 Махов, dual-port SRAM).

  9. #78

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

    По умолчанию

    Цитата Сообщение от LeoN65816 Посмотреть сообщение
    Также и с регистрами: RGBASE (FA00H) + SYSREG (7FH) = FA7FH.
    Тут вопросов нет.

    Цитата Сообщение от LeoN65816 Посмотреть сообщение
    Базовый адрес портов PBASE (зависит от выбранной конфигурации) плюс относительный адрес конкретного порта (смещение) и даёт абсолютный адрес порта (FB00H + 3AH = FB3AH).
    Ну и как сложить базовый адрес и смещение - тоже не высшая математика

    Код:
    VIREG   EQU     3AH  ; Относительный адрес регистра управления
                         ; отображением
    А вот тут вопрос: Почему написано что это регистр, а не порт???

  10. #79

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

    По умолчанию

    Потому что VIREG -- это регистр управления отображением и он доступен через порт C PIA1. Вы можете получить побитовый доступ к регистру VIREG и через порт PIMC1 (3Bh) того же адаптера PIA1. Порт -- это канал связи с внешним устройством и в данном случае это параллельный интерфейс, к выходу порта C которого, в частности, подключен регистр управления отображением. как-то так.

  11. #80

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

    По умолчанию

    Существуют ли компиляторы исходного кода на встроенном Бейсике?
    ÷)

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

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

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

Эту тему просматривают: 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

Ваши права

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