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

User Tag List

Страница 28 из 72 ПерваяПервая ... 242526272829303132 ... ПоследняяПоследняя
Показано с 271 по 280 из 716

Тема: TR-DOS Navigator (TRDN)

  1. #271
    Veteran Аватар для Grand
    Регистрация
    10.04.2005
    Адрес
    Сибирь
    Сообщений
    1,153
    Спасибо Благодарностей отдано 
    214
    Спасибо Благодарностей получено 
    331
    Поблагодарили
    146 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Lightbulb Детектирование Скорпиона

    Какое-то время назад была затронута проблема о том, что TR-DOS Navigator версии 0.75 не совсем точно олределяет Скорпион, точнее принимает за него ZX Spectrum +3 с DivIDE, поскольку тот тоже использует рестарты RST8 \ DB #81.
    Я написал другую процедуру детектирования Скорпиона, которая должна работать правильно.
    Эта процедура уже используется в новом Scorpion ProfROM Test V2. Поэтому приглашаю желающих протестировать работу этой программы на других Spectrum-совместимых компьютерах. Если Scorpion ProfROM Test V2 запускается не на Скорпионе, то должно всегда выдаваться сообщение системы ZX Spectrum "Q Parameter error".

    Новая процедура детектирования Скорпиона такая (ниже даны комментарии):
    Код:
    ;Детектирование Scorpion'а, 2019.
    ;Процедура должна нажодиться ниже адреса #C000!
            DI
    ;Предполагается, что к этому моменту конфигурация памяти: ROM1, RAM0
            LD      BC,#1FFD
            LD      HL,#00F1
            OUT     (C),H	;*1
            LD      D,(HL)	;*2
            LD      E,2
            OUT     (C),E	:*3
            LD      A,(HL)	;*4
            CP      D	;*5
            OUT     (C),H	;*6
            LD      B,#7F	;
            LD      A,#10	;
            OUT     (C),A	;
            JR      Z,$+5
            LD	(23388),A;*7
    *1 - В порт #1FFD записывается #00. На компьютерах типа Pentagon и фирменном ZX Spectrum 128 подключится ROM0 и RAM0, на Скорпионе и ZX Spectrum +3 останется прежняя конфигурация (ROM1 и RAM0).
    *2 - В регистр D помещается содержимое ячейки по адресу #00F1 для образца.
    *3 - В порт #1FFD записывается #02. На Пне и ZX Spectrum 128 подключится ROM0 и RAM2, на Скорпионе - ROM2, а на ZX Spectrum +3 вывод этого значения в порт не имеет смысла и конфигурация остается прежней.
    *4 - В A помещается число из #00F1 - для Скорпиона это код версии.
    *5 - Сравнение с ранее считанным числом в D - если значения равны (Z=1), значит ROM'ы не переключались и компьютер не Скорпион.
    *6 - Восстановление прежней конфигурации, если было ее переключение.
    *7 - Для Скорпиона уствновка системной переменной BANKM, чтобы после вызовыов RST 8 включался экран 0.


    Если ни у кого нет других предложений, то эта процедура детектирования Скорпиона будет включена в новую версию TRDN.
    Если в каком-либо моем посте перестала работать гиперссылка или показываться картинка, напишите мне об этом в личном сообщении,чтобы я смог это исправить.

    Grand's - сайт об электронно-вычислительной технике (зеркало)

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

    Djoni (31.08.2020)

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

  4. #272
    Activist
    Регистрация
    10.01.2010
    Адрес
    Смоленская обл.
    Сообщений
    424
    Спасибо Благодарностей отдано 
    132
    Спасибо Благодарностей получено 
    124
    Поблагодарили
    59 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Grand Посмотреть сообщение
    В порт #1FFD записывается #00. На компьютерах типа Pentagon и фирменном ZX Spectrum 128 подключится ROM0 и RAM0, на Скорпионе и ZX Spectrum +3 останется прежняя конфигурация (ROM1 и RAM0).
    Ну х.з. в большинстве наверно так и будет, если не добавлены доработки какие, типа полной дешифрации. Я бы на всякий выставил эту конфигурацию через порт #7FFD

    А вообще я как раз и переделывал автоопределялку памяти для BGE 3.12 demo для отсечки косяков с портом #1FFD на +2A, +3.
    Правда не расширял определение памяти больше 1024 K (влом было да памяти на таблицу пожалел )) ) и ловил +2A, +3 на замене 5-го сегмента в позиции #4000, поэтому пихал код и стек при автоопределении во 2-й сегмент (#8000-#BFFF).
    Вроде пока работает без нареканий. ))

    Вот тут выкладывал её отвязанный от BGEшных особенностей код :
    https://zx-pk.ru/threads/30887-opred...=1#post1051919

  5. #273
    Veteran Аватар для Grand
    Регистрация
    10.04.2005
    Адрес
    Сибирь
    Сообщений
    1,153
    Спасибо Благодарностей отдано 
    214
    Спасибо Благодарностей получено 
    331
    Поблагодарили
    146 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Dart Alver
    Я бы на всякий выставил эту конфигурацию через порт #7FFD
    Предполагается, что перед работой процедуры уже выставлены ROM1 и RAM0, и работает она ниже #C000.
    Цитата Сообщение от Grand
    Код:
    ;Процедура должна нажодиться ниже адреса #C000!
    ...
    ;Предполагается, что к этому моменту конфигурация памяти: ROM1, RAM0
    Я просто не вставил эти команды в листинг. Также в TRDN останется возможность принудительного отключения функционала Скорпиона, как в текущей версии.

  6. #274
    Veteran Аватар для Grand
    Регистрация
    10.04.2005
    Адрес
    Сибирь
    Сообщений
    1,153
    Спасибо Благодарностей отдано 
    214
    Спасибо Благодарностей получено 
    331
    Поблагодарили
    146 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Lightbulb Тестовая версия с поддержкой Scorpion GMX

    В настоящее время ведется работа над новой версией TR-DOS Navigator'а. В ней будет реализована поддержка компьютера Scorpion GMX с версией Теневого монитора (ТМ) G5.00.

    Приглашаем всех желающих, в первую очередь владельцев компьютера Scorpion GMX с контроллером SMUC и HDD, принять участие в тестировании TRDN. Также приглашаются владельцы "обычных" компьютеров Scorpion - их мнение не менее ценно для нас.

    В данной тестовой версии процедура монтирования псевдодисков осталась прежней, но изменена процедура подсчета контрольной суммы "сектора эмуляции", вызываемая из ROM с учетом типа компьютера. Эта тестовая версия проверялась мной на реальных компьютерах: Scorpion ZS 256 Turbo с ProfROM и ZX Evolution в конфигурации Scorpion GMX.
    Необходимо проверить надежно ли происходит монтирование псевдодисков SMUC HDD на реальном компьютере Scorpion GMX. Также обращайте внимание на все особенности работы, удобство управления, орфографию и т.д., и сообщайте о найденных ошибках тестовой версии в данной теме на нашем Форуме.

    При тестировании лучше на всякий случай использовать HDD-носитель без важных данных или сделать его резервную копию.
    Тестовая версия не является законченным продуктом, поэтому не распространяйте ее.


    Если вы не знакомы с TRDN, изучите его последнюю официальную версию; она доступна в первом сообщении данной темы.



    Тестовая версия представляет собой С-файл "альтернативного magic'а" ТМ Скорпиона.
    Способ запуска и условия тестирования.

    Тестовая версия стартует с пустыми файловыми панелями.
    Вставьте в привод дискету TR-DOS (можно примонтировать псевдодиск SMUC HDD) и нажмите на клавиатуре буквенную клавишу, соответствуюшую имени привода ("A"..."D"). Можно вызвать меню устройств клавишами SS/1 или SS/2 и выбрать привод из него.
    Последний раз редактировалось Grand; 10.12.2023 в 09:25. Причина: удаление вложения

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

    Evgeny Muchkin (30.08.2020)

  8. #275
    Activist Аватар для tae1980
    Регистрация
    09.09.2018
    Адрес
    г. Саратов
    Сообщений
    436
    Спасибо Благодарностей отдано 
    143
    Спасибо Благодарностей получено 
    110
    Поблагодарили
    48 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Если будет возможность, сделайте систему драйверов, что бы их можно было переписать другое железо.
    Я бы мог попробовать написать драйвер для экрана Профи.

  9. #276
    Master
    Регистрация
    23.04.2020
    Адрес
    г. Тотьма
    Сообщений
    831
    Спасибо Благодарностей отдано 
    239
    Спасибо Благодарностей получено 
    271
    Поблагодарили
    151 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Пока что проблем с монтированием не заметил. Заметил что не запускается через бейсик загрузчик. А из монитора норм.

    Ещё при размонтировании после нажатия SS+Z сообщение о подтверждении жду секунды 3. Может это притормаживает контроллер клавиатуры, у него такое бывает.

    При переименовании диска доступно 8 символов + 3 расширение. Необычно немного. Вроде бы стандартно 10 символов всего.

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


    https://drive.google.com/drive/folde...xZ83juCuaBe32I

    Scorpion ZS 256 Turbo+/GMX 2MB/SMUC v1.3 OP/CF-IDE 2GB/TS ARM/Covox #DD/FDD 5'25/FDD 3'5/AT Kbrd & Mouse Ctrl v2.5/Universal PS/2 Kbrd Ctrl/ZX WiFi
    Leningrad 1/Sega Joy Adapter
    DivGMX
    ZX Spectrum +2A
    ZX Evolution rev. C

    TCK Computer 486DX2-66/512K Tridend 9000i/8MB SIMM72/CF-IDE 512MB/ESS 1869/CNet CN200/FDD 5'25/FDD 3'5
    [свернуть]

  10. #277
    Veteran Аватар для Grand
    Регистрация
    10.04.2005
    Адрес
    Сибирь
    Сообщений
    1,153
    Спасибо Благодарностей отдано 
    214
    Спасибо Благодарностей получено 
    331
    Поблагодарили
    146 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от izzx
    Заметил что не запускается через бейсик загрузчик.
    К сожалению, это очередной мелкий баг Теневого монитора. Насколько я понял, имя дисковода, выставленное в Disk utility, должно совпадать с именем дисковода, с которого мы грузимся.

    Цитата Сообщение от izzx
    ...после нажатия SS+Z сообщение о подтверждении жду секунды 3. Может это притормаживает контроллер клавиатуры...
    Нет, дело в другом. Окно "Dismount" появляется после отпускания клавиш. Постараюсь это исправить.


    Цитата Сообщение от izzx
    ...8 символов + 3 расширение. Необычно немного. Вроде бы стандартно 10 символов всего.
    Можно задействовать и 11-й, если в его коде 7-й бит будет установлен. Поэтому в TRDN это используется.

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

    Цитата Сообщение от tae1980
    Если будет возможность, сделайте систему драйверов, что бы их можно было переписать другое железо.
    Tут проблема в том, что очень мало осталось свободного места.

    Я думаю, можно начать адаптацию и без этого. Сначала надо переписать подпрограммы печати и рисования окон. Мы готовы помогать в этом вопросе.
    Можно же вести работу постепенно, когда есть вдохновение.

    Для переделки лучше всего подходит версия 0.74b, как я писал ранее здесь.

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

    Цитата Сообщение от tae1980
    Если будет возможность, сделайте систему драйверов ...
    Я бы мог попробовать написать драйвер для экрана Профи.
    Ну а саму структуру драйвера для экранов мы могли бы обсудить и сейчас. Как он должен выглядеть?
    Кто как думает?
    Последний раз редактировалось Grand; 31.08.2020 в 05:28.

  11. #278
    Activist Аватар для tae1980
    Регистрация
    09.09.2018
    Адрес
    г. Саратов
    Сообщений
    436
    Спасибо Благодарностей отдано 
    143
    Спасибо Благодарностей получено 
    110
    Поблагодарили
    48 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Grand Посмотреть сообщение
    Ну а саму структуру драйвера для экранов мы могли бы обсудить и сейчас. Как он должен выглядеть?
    Кто как думает?
    В наличие есть исходники нескольких драйверов консоли под CP/M.
    Сам драйвер должен обеспечивать минимальный уровень железо зависимых операций, с поддержкой некого объемы команд управления. По этому ИМХО лучше всего взять за основу один из существующих стандартов терминалов и реализовать его. При наличии исходников для CP/M, можно взять этот стандарт.

    Вот описание одного из драйверов

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

    ╞╞╞╞╞╞╞╞╞╞╞╞╞╞╞╞╞╞╞╞╞╞╞╞╞╞╞╞╞╞╞╞╞╞╞╞╞╞╞╞╞╞╞╞╞╞╞╞╞╞╞╞╞╞╞╞╞╞╞╞
    ²²²²²²²²²²²² Драйвер дисплея DSPK.DRV ²²²²²²²²²²²²²²²²²²
    ╛╛╛╛╛╛╛╛╛╛╛╛╛╛╛╛╛╛╛╛╛╛╛╛╛╛╛╛╛╛╛╛╛╛╛╛╛╛╛╛╛╛╛╛╛╛╛╛╛╛╛╛╛╛╛╛╛╛╛╛

    Copyright(c) Oct-1992 by Крестьяников А.А.

    ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■

    Драйвер DSPK.DRV ( DiSPlay driver ) - драйвер дисплея,
    работающий в составе Concurrent BIOS; он максимально совмес-
    тим с KCO6430 ( и несколько менее с SCO... ), но обеспечива-
    ет более полное использование аппаратных ресурсов машины (
    ESC+a,b,c,d,e ); кроме того, изъяты ( ESC+E,N,O,U,s ) или
    модифицированы ( ESC+F,G ) некоторые архаичные функции.Более
    подробное описание точек входа в драйвер и стандартные мак-
    росы для работы с дисплеем ( и, кстати, звуком ) интересую-
    щиеся могут посмотреть в файлах DSPK.H, BIOS.H, DRIVER.H.
    Мнемоники управляющих символов описаны в CHARS.H .

    ²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²

    Управляющие символы и ESC-последовательности

    Управляющие ( имеющие код 0..1FH ) символы полностью
    соответствуют тому, что было во всех предыдущих версиях,
    начиная с SCO... ESC-последовательности частично изменены
    ( ESC-последовательность - последовательность символов,
    начинающаяся с символа ESC ( 1BH ) ). Далее приводится их
    описание с исчерпывающими примерами использования, сгруппи-
    рованное по их функциям ( .OUTCHAR и .BEEP - стандартные
    макросы, описанные в файле DSPK.H ). Модифицированные функ-
    ции помечены '*', удаленные '-', добавленные '+'.

    ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■

    Первый символ ESC-последовательностей

    1BH ^[ ESC Эскейп ( Escape, отмена ). Далее ESC-последова-
    тельности будут представлены в виде ESC+символ
    или ESC+символ+символ...

    ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■

    Перемещение курсора

    08H ^H LFT Перемещение курсора вправо, влево, вверх и вниз.
    ESC+D .OUTCHAR LFT .OUTCHAR RGT
    18H ^X RGT .OUTCHAR UP .OUTCHAR DN
    ESC+C курсор возвратился на исходую позицию
    19H ^Y UP .OUTCHAR ESC .OUTCHAR 'D'
    ESC+A .OUTCHAR ESC .OUTCHAR 'C'
    1AH ^Z DN .OUTCHAR ESC .OUTCHAR 'A'
    ESC+B .OUTCHAR ESC .OUTCHAR 'B' алогично

    09H ^I TAB Табуляция - перемещение курсора на ближайшую
    справа позицию, кратную восьми. Например,если он
    изначально находился на знакоместе 53 , то
    .OUTCHAR TAB знакоместо 56
    .OUTCHAR TAB знакоместо 0 следующей строки

    0AH ^J LF Перевод строки ( LineFeed ) - перемещение курсо-
    ра вниз; аналогична DN ( 1AH ) за тем исключе-
    нием, что, дойдя до последней строки экрана, DN
    переводит курсор на первую строку ( строка 0 ),
    а LF сдвигает экран на одну строку вверх ( вызы-
    вает скроллинг, или прокрутку экрана )
    позиция 28,9 .OUTCHAR LF позиция 29,9
    позиция 29,9 .OUTCHAR LF скроллинг, поз 29,9
    позиция 29,9 .OUTCHAR DN позиция 0,9

    0BH ^K HOM Установка курсора в начало экрана ( позиция 0,0)
    ESC+H позиция 23,7 .OUTCHAR HOM позиция 0,0

    0DH ^M CR Возврат курсора(CursorReturning) в начало строки
    позиция 23,7 .OUTCHAR CR позиция 23,0

    ESC+Y+(20H+строка)+(20H+позиция)
    ESC+(80H+строка)+([80H+]позиция) []-необязательно
    Прямое позиционирование курсора
    .OUTCHAR ESC .OUTCHAR 'Y'
    .OUTCHAR 36H .OUTSHAR 50H позиция 22,48
    .OUTCHAR ESC
    .OUTCHAR 89H .OUTSHAR 0A8H позиция 9,40

    ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■

    Очистка

    0CH ^L CLS Очистка всего экрана, установка курсора в его
    начало ( позиция 0,0 )
    позиция 7,15 .OUTCHAR CLS очистка, поз 0,0

    16H ^V CLR Очистка строки от курсора до ее конца
    ESC+K позиция 4,48 .OUTCHAR CLR очистка, поз 4,48

    ESC+J Очистка экрана от курсора до его конца
    позиция 9,18
    .OUTCHAR ESC .OUTCHAR 'J' очистка, поз 9,18

    ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■

    Кодировка символов

    0EH ^N Переход в KOI7(рус) - русский алфавит
    ESC+@ .OUTCHAR ESC .OUTCHAR '@'
    .OUTCHAR 59H .OUTCHAR 79H печать ыЫ

    ESC+\ Переход в KOI7(лат/рус)
    .OUTCHAR ESC .OUTCHAR '\'
    .OUTCHAR 59H .OUTCHAR 79H печать YЫ

    0EH ^O Переход в KOI8 и ее подмножество KOI7(лат)
    ESC+Z,ESC+] .OUTCHAR ESC .OUTCHAR 'Z'
    .OUTCHAR 59H .OUTCHAR 79H печать Yy
    .OUTCHAR 0D9H .OUTCHAR 0F9H печать ыЫ
    .OUTCHAR 81H .OUTCHAR 0BBH печать │╩

    ESC+[ Переход в кодировку IBM ALT
    .OUTCHAR ESC .OUTCHAR '['
    .OUTCHAR 59H .OUTCHAR 79H печать Yy
    .OUTCHAR 0D9H .OUTCHAR 0F9H печать ╘╧
    .OUTCHAR 81H .OUTCHAR 0BBH печать Б▀

    ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■

    Управление формой и типом курсора

    Следящим называется немигающий курсор, постоянно присутству-
    ющий на экране. Неследящий курсор мигает и видим только при
    обращении к функции CONIN драйвера клавиатуры KBDK.DRV. Сле-
    дящий курсор может вызвать неприятный эффект своим мелькани-
    ем по экрану во время его перерисовки, поэтому рекомендуется
    его не использовать. К сожалению, некоторые программы ( на-
    пример, dBASE II ) для ввода символа используют функции вида
    LOOP:
    CALL CONSTAT ; проверка состояния клавиатуры
    OR A ; был ввод ?
    JR Z,LOOP ; ввода не было
    CALL CONIN ; собственно ввод
    и, таким образом, в функции CONIN пребывают мизерное время,
    так что неследящий курсор даже не успевает включиться. В
    таких случаях приходится включать следящий курсор. Мораль:
    используйте для ввода с клавиатуры вызов CALL CONIN, который
    сам обеспечит необходимый цикл ожидания. Впрочем,приведенный
    пример можно использовать в случае, если нужно ввести символ
    без включения курсора ( что обычно и делает CopyK ).

    ESC+Q Включение следящего курсора
    .OUTCHAR ESC .OUTCHAR 'Q'

    ESC+R Выключение следящего курсора
    .OUTCHAR ESC .OUTCHAR 'R'

    ESC+I+(шаблон)
    Шаблон курсора. Каждый бит шаблона соответствует
    одной строке растра в знакоместе ( D0-нижняя ).
    .OUTCHAR ESC .OUTCHAR 'I'
    .OUTCHAR 00000111B - прямоугольный курсор в
    трех нижних строках растра

    + ESC+a Битовая карта ( BitMap ) курсора. Эта новая ESC-
    последовательность дает возможность создать кур-
    сор ЛЮБОЙ формы. Битовая карта - восемь последо-
    вательных байт, указатель на которые передается
    в HL во ВРЕМЯ ПЕРЕДАЧИ СИМВОЛА 'a'. Каждый байт
    отвечает одной строке растра знакоместа, первый
    байт - верхняя строка.
    .OUTCHAR ESC
    LD HL,CURBITMAP
    .OUTCHAR 'a'
    CURBITMAP:
    DB 0,0,0,0,0,0FFH,0FFH,0FFH
    - эквивалентно предыдущему примеру
    .OUTCHAR ESC
    LD HL,CURBITMAP
    .OUTCHAR 'a'
    CURBITMAP:
    DB 0FFH,81H,81H,81H,81H,81H,81H,0FFH
    - пустой прямоугольник на все знако-
    место ( устанавливается изначально )

    ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■

    Управление цветом

    Палитра - байт, биты которого имеют следующее значение :
    D2..0 - цвет точек; D5..3 - цвет фона; D6 - повышенная яр-
    кость ( Bright ); D7 - мерцание ( Flash ). Цвета кодируются
    следущим образом: 0 - черный ( Black ); 1 - синий ( Blue );
    2 - красный ( Red ); 3 - фиолетовый ( Magenta ); 4 - зеленый
    ( Green ); 5 - голубой ( Cyan ); 6 - зеленый ( Yellow ); 7 -
    белый ( White ); эти мнемоники определены в файле DEVICE.H.

    + ESC+k Включение цветового сопровождения вывода символов

    + ESC+l Выключение цветового сопровождения вывода симво-
    лов. Символ при этом выводится в той палитре,
    которая была установлена для этого знакоместа
    ранее.

    * ESC+P+(палитра)
    Установка глобальной палитры. На всем экране,
    независимо от того, включен ли цвет, устанавли-
    вается соответствующая палитра.
    .OUTCHAR ESC .OUTCHAR 'P'
    .OUTCHAR 8*black+white
    -стандартная палитра(белый по черному)

    + ESC+b Установка глобальной палитры. Действует анало-
    гично предыдущей функции, но на каждую строку
    растра знакоместа устанавливается своя палитра
    ( при этом наборы палитр для разных знакомест
    совпадают ). Указатель на вектор из восьми па-
    литр передается в HL во ВРЕМЯ ПЕРЕДАЧИ СИМВОЛА
    'b' ( первая палитра соответствует верхней стро-
    ке растра ).
    .OUTCHAR ESC
    LD HL,PALLETS - желтые символы на фоне :
    .OUTCHAR 'b' красном в верхней поло-
    PALLETS: вине символа, синем - в
    REPT 4 нижней
    DB 8*red+yellow
    ENDM
    REPT 4
    DB 8*blue+yellow
    ENDM

    * ESC+V+(палитра/инверсия)
    В режиме выключенного цвета младший бит третьего
    байта последовательности определяет, будут ли
    последующие символы выводиться с инверсией(D0=1)
    или без ( D0=0 ). При включенном цвете этот байт
    определяет локальную палитру ( палитру вывода
    последующих символов ).

    + ESC+d+(инверсия)
    Включение инверсии. Работает аналогично предыду-
    щей в режиме выключенного цвета, но данная по-
    следовательность сработает на включение/выключе-
    ние инверсии и в режиме включенного цвета.
    .OUTCHAR ESC .OUTCHAR 'P'
    .OUTCHAR 8*black+white - глобальная палитра
    .OUTCHAR ESC .OUTCHAR 'k'
    .OUTCHAR ESC .OUTCHAR 'V'
    .OUTCHAR red*8+green - локальная палитра
    .OUTCHAR 'H' - зеленая буква на красном фоне
    .OUTCHAR ESC .OUTCHAR 'l'
    .OUTCHAR 'J' - белая буква на черном фоне
    .OUTCHAR ESC .OUTCHAR 'V'
    .OUTCHAR 1
    .OUTCHAR 'K' - черная буква на белом фоне
    .OUTCHAR ESC .OUTCHAR 'k'
    .OUTCHAR ESC .OUTCHAR 'd'
    .OUTCHAR 1
    .OUTCHAR 'L' - красная буква на зеленом фоне

    + ESC+c Установка локальной палитры. Работает независимо
    от того, включен ли цвет ( но пока он выключен,
    локальная палитра будет игнорироваться ). На
    каждую строку растра знакоместа задается своя
    палитра. Указатель на вектор из восьми палитр
    передается HL во ВРЕМЯ ПЕРЕДАЧИ СИМВОЛА 'c'
    ( первая палитра соответствует верхней строке
    растра ).
    .OUTCHAR ESC
    LD HL,PALLETS - желтые символы на фоне :
    .OUTCHAR 'c' красном в верхней поло-
    PALLETS: вине символа, синем - в
    REPT 4 нижней
    DB 8*red+yellow
    ENDM
    REPT 4
    DB 8*blue+yellow
    ENDM

    + ESC+v Расцвечивание экрана. Независимо от того, вклю-
    чен ли цвет, расцвечивает прямоугольный участок
    экрана согласно указанной палитре. Параметры
    передаются с адреса 80H:
    ORG 80H
    DB позиция, строка верхнего левого угла
    DB длина, ширина прямоугольника в знакоместах
    DB палитра
    При вызове параметры портятся.
    LD HL,PARAMS - бело - красная палитра в
    LD DE,80H верхней левой четверти
    LD BC,5 экрана
    LDIR
    .OUTCHAR ESC .OUTCHAR 'v'
    PARAMS:
    DB 0,0,32,15,red*8+white

    + ESC+e+(цвет)
    Установка цвета бордюра.
    .OUTCHAR ESC .OUTCHAR 'e' .OUTCHAR green


    ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■

    Пиктограммы

    + ESC+i Нарисовать пиктограмму. Сама пиктограмма описы-
    вается с адреса 80H :
    ORG 80H
    DB позиция , строка верхнего левого угла
    DB длина , ширина пиктограммы в знакоместах
    DW указатель на битовую карту точек
    DW указатель на байтовую карту палитр
    При вызове параметры портятся. Структура карт:
    знакоместа описываются последовательно, слева
    направо, строки - сверху вниз. Описание одного
    знакоместа в битовой карте - 8 байт, по байту на
    строку растра, аналогично и в карте палитр.
    LD HL,ICON - желтая стрелка на
    LD DE,80H красном поле
    LD BC,8
    LDIR
    .OUTCHAR ESC .OUTCHAR 'i'

    ICON:
    DB 3,7 - позиция ( 7,3 )
    DB 2,1 - размеры 1х2
    DW POINTS
    DW PALLETS

    POINTS:
    DB 0,0,0,0FH,0FH,0,0,0
    DB 0,40H,60H,0F0H,0F0H,60H,40H,0
    ; ╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟
    ; ╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟
    ; ╟╟╟╟╟╟╟╟╟╟╟╟╟╟
    ; ╟╟╟╟╟╟╟╟
    ; ╟╟╟╟╟╟╟╟
    ; ╟╟╟╟╟╟╟╟╟╟╟╟╟╟
    ; ╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟
    ; ╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟╟

    PALLETS:
    REPT 16
    DB 8*red+yellow
    ENDM

    ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■

    Разное

    01H ^A GRF Печать следующего символа как псевдографику,даже
    если его код меньше,чем 20H.Кодировка символов с
    кодом 0..1FH совпадает с кодировкой IBM ALT, на
    печать остальных символов ^A не влияет.
    .OUTCHAR 1
    .OUTCHAR 3 печать сердечка
    .OUTCHAR 1
    .OUTCHAR 'S' печать S

    07H ^G BEL Звуковой сигнал тона 18 длительностью 21 ( в
    относительных единицах ).
    .OUTCHAR 7 эквивалентно .BEEP 18,21

    + ESC+j Печать строки. Сама строка помещается с адреса
    81H, количество символов в строке - с адреса 80H
    LD HL,STRING
    LD DE,80H
    LD C,(HL)
    LD B,0
    INC BC
    LDIR
    .OUTCHAR ESC
    .OUTCHAR 'j'
    STRING: DB 17,'Concurrent BIOS',CR,LF

    ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■

    Инициализация драйвера

    Работа драйвера управляется блоком параметов, в который вхо-
    дят: глобальная и локальная палитра, битовая карта курсора
    ( по восемь байт ), тип курсора, режим цветности, цвет бор-
    дюра, кодировка, наличие инверсии. На самом деле таких бло-
    ков два, временный и системный. Все изменения, произведенные
    с помощью описанных ранее функций изменяют только временный
    блок, и именно он управляет текущим выводом. Системный блок
    нужен для реинициализации драйвера при выходе из программы.

    * ESC+F Временный блок параметров становится системным.

    * ESC+G Системный блок параметров становится временным,
    в соответствии с ним производится реинициализа-
    ция драйвера ( установка палитр, типа и формы
    курсора, кодировки и т.д. ). Именно эта команда
    подается DOSом при каждом выходе из программы
    прежде чем напечатать промпт A>.

    + ESC+f Подавить один последующий вызов ESC+G. Это может
    понадобится, например, при последовательном вы-
    зове двух программ, когда первая ( например,
    утилита COLOR ) расцвечивает экран для работы
    второй. При этом первая, прежде чем закончит
    свою работу, должна дать эту команду; иначе в
    промежутке между их исполнением DOS успеет вы-
    дать ESC+G для сброса консоли, что приведет к
    его обесцвечиванию ( точнее, его расцвечиванию
    согласно текущей глобальной палитре), а это было
    бы неприятно.

    ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■

    Исключенные функции

    - ESC+E Сброс консоли. Легко заменяется последователь-
    ностью CLS, ESC+G

    - ESC+N Переход на 32-символьную консоль

    - ESC+O Переход на 64-символьную консоль

    - ESC+U Печать версии драйвера

    - ESC+s Отображение фона экрана

    ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
    [свернуть]
    Последний раз редактировалось tae1980; 31.08.2020 в 08:34.

  12. #279
    Master
    Регистрация
    23.04.2020
    Адрес
    г. Тотьма
    Сообщений
    831
    Спасибо Благодарностей отдано 
    239
    Спасибо Благодарностей получено 
    271
    Поблагодарили
    151 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Grand Посмотреть сообщение
    Окно "Dismount" появляется после отпускания клавиш.
    И после отпускания клавиш проходит какое-то время.

    Про драйвер: Я тоже сразу подумал про CP/M. А как быть с разными размерами экрана? TRDN подстроится под другое количество символов по ширине-высоте? Там конечно вроде есть функция установить окно таких то размеров. Но драйвер должен сообщить какие размеры он умеет.

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


    https://drive.google.com/drive/folde...xZ83juCuaBe32I

    Scorpion ZS 256 Turbo+/GMX 2MB/SMUC v1.3 OP/CF-IDE 2GB/TS ARM/Covox #DD/FDD 5'25/FDD 3'5/AT Kbrd & Mouse Ctrl v2.5/Universal PS/2 Kbrd Ctrl/ZX WiFi
    Leningrad 1/Sega Joy Adapter
    DivGMX
    ZX Spectrum +2A
    ZX Evolution rev. C

    TCK Computer 486DX2-66/512K Tridend 9000i/8MB SIMM72/CF-IDE 512MB/ESS 1869/CNet CN200/FDD 5'25/FDD 3'5
    [свернуть]

  13. #280
    Veteran Аватар для Grand
    Регистрация
    10.04.2005
    Адрес
    Сибирь
    Сообщений
    1,153
    Спасибо Благодарностей отдано 
    214
    Спасибо Благодарностей получено 
    331
    Поблагодарили
    146 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от tae1980
    ИМХО лучше всего взять за основу один из существующих стандартов
    Посмотрю, интересно.

    Цитата Сообщение от izzx
    Про драйвер: Я тоже сразу подумал про CP/M.
    А вот мне подумалось про контроллер КЦГД на ДВК-3.

    Цитата Сообщение от izzx
    TRDN подстроится под другое количество символов по ширине-высоте?
    Придется в каких-то местах подправить оболочку.

Страница 28 из 72 ПерваяПервая ... 242526272829303132 ... ПоследняяПоследняя

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

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

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

Похожие темы

  1. spectrum navigator
    от scl^mc в разделе Софт
    Ответов: 21
    Последнее: 03.05.2021, 16:50
  2. Софт для PC : Dos Navigator
    от spensor в разделе PC-совместимые компьютеры
    Ответов: 13
    Последнее: 26.02.2021, 19:09

Ваши права

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