User Tag List

Страница 31 из 33 ПерваяПервая ... 27282930313233 ПоследняяПоследняя
Показано с 301 по 310 из 330

Тема: Любительская девборда на Z80

  1. #301
    ZEK
    Гость

    По умолчанию

    а курсор кстати софтовый будет? на прерывании висеть мигать?

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

  3. #302

    Регистрация
    14.06.2005
    Адрес
    г. Калуга
    Сообщений
    10,141
    Спасибо Благодарностей отдано 
    216
    Спасибо Благодарностей получено 
    769
    Поблагодарили
    417 сообщений
    Mentioned
    23 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ZEK Посмотреть сообщение
    а курсор кстати софтовый будет? на прерывании висеть мигать?
    Да, в обработчике прерывания будет вызываться функция мигания курсора.

    ---------- Post added at 15:46 ---------- Previous post was at 15:42 ----------

    Цитата Сообщение от IanPo Посмотреть сообщение
    Лучше бы не символа в HEX-виде, а 16-битного числа в двоичном и шестнадцатиричном форматах.
    A=код функции
    BC=число
    D=основание(2,10,16)
    вывод тек.цветом с тек.позиции
    Вот ты это зря. Я столько раз пользовался и пользуюсь выводить символы в
    HEX виде, это очень удобно со времен РКшки.

    А функции преобразования можно отдельно забубенить.

    ---------- Post added at 15:48 ---------- Previous post was at 15:46 ----------

    Цитата Сообщение от IanPo Посмотреть сообщение
    Просто любопытно: вот эти функции, они где-нибудь реально используются ?
    Чтение текущей позиции курсора
    Прочитать символ и его цвет с текущего положения курсора

    Про первую не скажу, а вторая реально может использоваться если например, хочешь проинвертировать символ. Грубо говоря менять менюшки непосредственно в экранной памяти - т.е. не нужно в буфере меню еще раз отрисовывать
    Сайт поддержки моих изделий - http://micklab.ru/
    Группа ВКонтакте - https://vk.com/micklab

  4. #303

    Регистрация
    31.03.2008
    Адрес
    Москва
    Сообщений
    735
    Спасибо Благодарностей отдано 
    10
    Спасибо Благодарностей получено 
    80
    Поблагодарили
    37 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Mick, а что это значит "символ в HEX виде"? Я думал, это опечатка.
    ZXM-Phoenix rev.01 2048K, VG93 hw emulator

  5. #304

    Регистрация
    14.06.2005
    Адрес
    г. Калуга
    Сообщений
    10,141
    Спасибо Благодарностей отдано 
    216
    Спасибо Благодарностей получено 
    769
    Поблагодарили
    417 сообщений
    Mentioned
    23 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от IanPo Посмотреть сообщение
    Mick, а что это значит "символ в HEX виде"? Я думал, это опечатка.
    Я скорее всего неправильно выразился. Там как бы байт в HEX виде.

    Вот у тебя допустим есть код в регистре 31h. Если ты выведешь как символ, то на экране будет один символ 1. А если как HEX то на экране будут уже два символа 31.

    В РКшке это функция F815 ели не ошибаюсь.
    Последний раз редактировалось Mick; 26.07.2013 в 16:26.
    Сайт поддержки моих изделий - http://micklab.ru/
    Группа ВКонтакте - https://vk.com/micklab

  6. #305

    Регистрация
    14.08.2006
    Адрес
    Владимир
    Сообщений
    4,581
    Спасибо Благодарностей отдано 
    64
    Спасибо Благодарностей получено 
    112
    Поблагодарили
    97 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Mick Посмотреть сообщение
    Цитата Сообщение от IanPo
    Просто любопытно: вот эти функции, они где-нибудь реально используются ?
    Чтение текущей позиции курсора
    Прочитать символ и его цвет с текущего положения курсора
    Про первую не скажу, а вторая реально может использоваться если например, хочешь проинвертировать символ. Грубо говоря менять менюшки непосредственно в экранной памяти - т.е. не нужно в буфере меню еще раз отрисовывать
    Первая используется в любом оконном драйвере открывающем и, что принципиально, закрывающем окна с возвращением фокуса (в примитиве - курсора) туда, откуда он был сорван.
    Вторая может использоваться в том же драйвере для прочитывания "подоконного" экранного ОЗУ используемого в момент закрытия окна (восстановления нижнего плана), если для этого не будет отдельной функции (ибо читать по символу да еще каждый раз выставляя курсор - тормознуто).
    Лучше сделать и жалеть, чем не сделать и жалеть.

    Некоторые из моих поделок тут: https://github.com/serge-404

  7. #306

    Регистрация
    14.06.2005
    Адрес
    г. Калуга
    Сообщений
    10,141
    Спасибо Благодарностей отдано 
    216
    Спасибо Благодарностей получено 
    769
    Поблагодарили
    417 сообщений
    Mentioned
    23 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Error404 Посмотреть сообщение
    Первая используется в любом оконном драйвере открывающем и, что принципиально, закрывающем окна с возвращением фокуса (в примитиве - курсора) туда, откуда он был сорван.
    Вторая может использоваться в том же драйвере для прочитывания "подоконного" экранного ОЗУ используемого в момент закрытия окна (восстановления нижнего плана), если для этого не будет отдельной функции (ибо читать по символу да еще каждый раз выставляя курсор - тормознуто).
    Можно тогда добавить по этому случаю пару функций.
    1. Копирование области экрана по указанному юзером адресу
    2. Копирование из области памяти юзера в экран.
    Сайт поддержки моих изделий - http://micklab.ru/
    Группа ВКонтакте - https://vk.com/micklab

  8. #307

    Регистрация
    14.08.2006
    Адрес
    Владимир
    Сообщений
    4,581
    Спасибо Благодарностей отдано 
    64
    Спасибо Благодарностей получено 
    112
    Поблагодарили
    97 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Mick Посмотреть сообщение
    Можно тогда добавить по этому случаю пару функций.
    1. Копирование области экрана по указанному юзером адресу
    2. Копирование из области памяти юзера в экран.
    Да, это было бы правильно. Но и чтение единичного символа под курсором все равно надо тоже оставить. Такая функция есть во многих реализациях VT-52/VT-100. Вдруг кто-то на базе БИОСа напишет эти подгружаемые драйвера.
    И хорошо бы векторизировать подпрограммы БИОСа (т.е. при старте в ОЗУ инициализировать керналь через которую пропускать вызовы)
    Лучше сделать и жалеть, чем не сделать и жалеть.

    Некоторые из моих поделок тут: https://github.com/serge-404

  9. #308

    Регистрация
    14.06.2005
    Адрес
    г. Калуга
    Сообщений
    10,141
    Спасибо Благодарностей отдано 
    216
    Спасибо Благодарностей получено 
    769
    Поблагодарили
    417 сообщений
    Mentioned
    23 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Error404 Посмотреть сообщение
    И хорошо бы векторизировать подпрограммы БИОСа (т.е. при старте в ОЗУ инициализировать керналь через которую пропускать вызовы)
    Это можно сделать.


    Так вот обновленный список функций RST 10h

    Код:
    ;---------------------------------------------------------------------
    ; Функция  00h  - Инициализация видеодрайвера
    ;---------------------------------------------------------------------
    ; Входные параметры: A = 00h
    ; Выходные параметры: нет
    ; Описание: Происходит инициализация драйвера видеоконтроллера.
    ; Устанавливается 1 видеостраница, отображение экрана происходит
    ; в адресах 2000....3FFFh. Происходит очистка экрана и установка
    ; цвета символов и фона по умолчанию, а именно белые буквы на черном фоне
    ; Курсор устанавливается в левый верхний угол (координаты 0,0).
    ; Курсор при этом выключен (не отображается)          
    ;--------------------------------------------------------------------
    ; Функция  01h  - Установка режима работы курсора 
    ;---------------------------------------------------------------------
    ; Входные параметры: A = 01h
    ;        C = 00h - курсор выключен, 
    ;              01h - курсор включен (мерцает)
    ; Выходные параметры: нет
    ; Описание: Происходит установка режима работы курсора. Если курсор
    ; включен, то текущее знакоместо будет мерцать (происходит попеременное
    ; влючение/выключение инверсии символа)
    ;--------------------------------------------------------------------
    ; Функция  02h  - Чтение режима работы курсора 
    ;---------------------------------------------------------------------
    ; Входные параметры:  A = 02h
    ; Выходные параметры: С = текущий режим работы курсора
    ; Описание: Происходит чтение текущего значения режима работы курсора
    ; (выключен или включен).
    ;--------------------------------------------------------------------
    ; Функция  03h  - Установка позиции курсора
    ;---------------------------------------------------------------------
    ; Входные параметры: A = 03h
    ;        B = позиция по Y (вертикали), с значениями 0...24
    ;        С = позиция по X (горизонтали), с значениями 0...79
    ; Выходные параметры: нет
    ; Описание: Происходит установка новой позиции курсора. После этого
    ; вывод символьной информации будет осуществлятся с новой позиции курсора
    ;--------------------------------------------------------------------
    ; Функция  04h  - Чтение текущей позиции курсора
    ;---------------------------------------------------------------------
    ; Входные параметры:  A = 04h
    ; Выходные параметры: текущая позиция курсора
    ;         B = позиция по Y (вертикали)
    ;         С = позиция по X (горизонтали)
    ; Описание: Происходит чтение текущей позиции  курсора.
    ;--------------------------------------------------------------------
    ; Функция  05h  - Установка цвета символов
    ;---------------------------------------------------------------------
    ; Входные параметры: A = 05h
    ;        C = цвет фона и цвет точек, с значениями  0...15
    ; Выходные параметры: нет
    ; Описание: Происходит установка нового цвета знакоместа. После этого
    ; вывод символьной информации будет осуществлятся с новым цветом.
    ;--------------------------------------------------------------------
    ; Функция  06h  - Чтение текущей цвета символов
    ;---------------------------------------------------------------------
    ; Входные параметры:  A = 06h
    ; Выходные параметры: С = текущий цвет 
    ; Описание: Происходит чтение текущего цвета.
    ;--------------------------------------------------------------------
    ; Функция  07h  - Установить активную страницу экрана
    ;---------------------------------------------------------------------
    ; Входные параметры:  A = 07h
    ;                     C = новая страница экрана с значением 0..7
    ; Выходные параметры: нет
    ; Описание: По этой команде происходит переключение на новую страницу экрана
    ;--------------------------------------------------------------------
    ; Функция  08h  - Установить пользовательский знакогенератор
    ;---------------------------------------------------------------------
    ; Входные параметры:  A = 08h
    ;                     BC = адрес знакогенератора пользователя
    ; Выходные параметры: нет
    ; Описание: По этой команде происходит копирование знакогенератора из программы
    ; пользователя в область знакогенератора страницы экрана
    ;--------------------------------------------------------------------
    ; Функция  09h  - Вывод символа на экран
    ;---------------------------------------------------------------------
    ; Входные параметры:  A = 09h
    ;                     C = выводимый символ
    ; Выходные параметры: нет
    ; Описание: Выводится символ в текущее положение курсора с текущим цветом
    ; Кроме того обрабатываются управляющие символы
    ;--------------------------------------------------------------------
    ; Функция  0Ah  - Вывод символа и его цвета на экран
    ;---------------------------------------------------------------------
    ; Входные параметры:  A = 0Ah
    ;         B = цвет символа и цвет фона  
    ;                     C = выводимый символ
    ; Выходные параметры: нет
    ; Описание: Выводится символ и его цвет в текущее положение курсора. 
    ; В этой команде не обрабатываются управляющие символы
    ;--------------------------------------------------------------------
    ; Функция  0Bh  - Прочитать символ и его цвет с текущего положения курсора
    ;---------------------------------------------------------------------
    ; Входные параметры:  A = 0Bh
    ; Выходные параметры: 
    ;         B = цвет символа и цвет фона  
    ;                     C = выводимый символ
    ; Описание: Происходит чтение символа и его цвета из текущего положения курсора. 
    ;--------------------------------------------------------------------
    ; Функция  0Ch  - Заполнение символом и его цветом область экрана
    ;---------------------------------------------------------------------
    ; Входные параметры:  A = 0Сh
    ;         B = цвет символа и цвет фона  
    ;                     C = выводимый символ
    ;         D = количество строк  
    ;         E = количество символов в строке
    ; Выходные параметры: нет
    ; Описание: Заполняется область экрана начиная с текущей позиции курсора 
    ; символом и его цветом.
    ; В этой команде не обрабатываются управляющие символы
    ;--------------------------------------------------------------------
    ; Функция  0Dh  - Вывод байта в HEX виде экран
    ;---------------------------------------------------------------------
    ; Входные параметры:  A = 0Dh
    ;                     C = выводимый байта
    ; Выходные параметры: нет
    ; Описание: Выводится байта в виде HEX в текущее положение курсора и 
    ; в текущем цвете.
    ;--------------------------------------------------------------------
    ; Функция  0Eh  - Отрисовка окна без заголовка
    ;---------------------------------------------------------------------
    ; Входные параметры:  A = 0Eh
    ;         B = цвет символа и цвет фона  
    ;                     C = выводимый символ
    ;         D = размер окна по вертикали (число строк)
    ;         E = размер окна по горизонтали (число символов в строке)
    ; Выходные параметры: нет
    ; Описание: Создается область на экране окруженная рамкой, созданная 
    ; символом и его цветом. Кроме того область внутри окна очищается
    ; символом пробела с цветом, заданным при создании окна .
    ; Окно отрисовывается с текущего положения курсора.
    ;--------------------------------------------------------------------
    ; Функция  0Fh  - Отрисовка окна c заголовком
    ;---------------------------------------------------------------------
    ; Входные параметры:  A = 0Fh
    ;         B = цвет символа и цвет фона  
    ;                     C = выводимый символ
    ;         D = размер окна по вертикали (число строк)
    ;         E = размер окна по горизонтали (число символов в строке)
    ;         HL = адрес текстовой строки заголовка
    ; Выходные параметры: нет
    ; Описание: Создается область на экране окруженная рамкой, созданная 
    ; символом и его цветом. Кроме того область внутри окна очищается
    ; символом пробела с цветом, заданным при создании окна 
    ; Окно отрисовывается с текущего положения курсора.
    ;-----------------------------------------------------------------------
    Сайт поддержки моих изделий - http://micklab.ru/
    Группа ВКонтакте - https://vk.com/micklab

  10. #309

    Регистрация
    14.06.2005
    Адрес
    г. Калуга
    Сообщений
    10,141
    Спасибо Благодарностей отдано 
    216
    Спасибо Благодарностей получено 
    769
    Поблагодарили
    417 сообщений
    Mentioned
    23 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Продолжение

    Код:
    ;--------------------------------------------------------------------
    ; Функция  10h  - Вывод строки символов на экран
    ;---------------------------------------------------------------------
    ; Входные параметры:  A = 10h
    ;                     BC = адрес выводимой строки
    ; Выходные параметры: нет
    ; Описание: Выводится строка символов в текущее положение курсора с текущим цветом
    ; Кроме того обрабатываются управляющие символы.
    ; Строка должна заканчиваться кодом - 00h
    ;--------------------------------------------------------------------
    ; Функция  11h  - Вывод строки символов и их цвета на экран
    ;---------------------------------------------------------------------
    ; Входные параметры:  A = 11h
    ;                     BC = адрес выводимой строки
    ; Выходные параметры: нет
    ; Описание: Выводится строка символов в текущее положение курсора
    ; Формат симольной строки должен соответствовать следующей последовательности - символ, цвет,.... 
    ; Кроме того управляющие символы не обрабатываются 
    ; Строка должна заканчиваться кодом - 00h
    ;---------------------------------------------------------------------
    ; Функция  12h  - Копирование области экрана в память программы пользователя
    ;---------------------------------------------------------------------
    ; Входные параметры:  A = 12h
    ;         B = количество строк 
    ;         С = количество символов в строке
    ;         HL = адрес памяти куда будет происходить копирование
    ; Выходные параметры: нет
    ; Описание: Копируется область экранной памяти из текущей позиции курсора
    ; в область памяти программы пользователя. Стоит учитывать, что копируется
    ; кроме символа, еще и его атрибут. 
    ;---------------------------------------------------------------------
    ; Функция  13h  - Копирование из памяти программы пользователя в область экрана
    ;---------------------------------------------------------------------
    ; Входные параметры:  A = 13h
    ;         B = количество строк 
    ;         С = количество символов в строке
    ;         HL = адрес памяти откуда будет происходить копирование
    ; Выходные параметры: нет
    ; Описание: Копируется из области памяти программы пользователя в область 
    ; экранной памяти в текущую позицию курсора.
    ; Стоит учитывать, что копируется кроме символа, еще и его атрибут. 
    ;--------------------------------------------------------------------
    ; Функция  14h  - Вывод байта или слова в двоичном, десятичном или шестнадцатеричном 
    ; виде на экран
    ;---------------------------------------------------------------------
    ; Входные параметры:  A = 14h
    ;         B = старший байт если выводится слово
    ;         C = младший байт
    ;         E = 00h вывод байта в двоичном виде 
    ;           = 01h вывод байта в десятичном виде
    ;           = 02h вывод байта в шестнадцатеричном виде
    ;           = 04h вывод слова в двоичном виде 
    ;           = 05h вывод слова в десятичном виде
    ;           = 06h вывод слова в шестнадцатеричном виде
    ; Выходные параметры: нет
    ; Описание: Выводится байт или слова на экран в двоичном, десятичном или шестнадцатеричном 
    ; виде на экран  в текущее положение курсора и в текущем цвете.
    ;---------------------------------------------------------------------
    Сайт поддержки моих изделий - http://micklab.ru/
    Группа ВКонтакте - https://vk.com/micklab

  11. #310

    Регистрация
    31.03.2008
    Адрес
    Москва
    Сообщений
    735
    Спасибо Благодарностей отдано 
    10
    Спасибо Благодарностей получено 
    80
    Поблагодарили
    37 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Вроде все хорошо, маленькое замечание по формату:
    Код:
    ; Формат симольной строки должен соответствовать следующей последовательности - символ, цвет,....
    Нужна будет PC прога, рисующая менюшки и экранчики, и создающая текстовую последовательность для вставки в текст программ (asm и C). Может, уже есть такие?
    ZXM-Phoenix rev.01 2048K, VG93 hw emulator

Страница 31 из 33 ПерваяПервая ... 27282930313233 ПоследняяПоследняя

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

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

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

Похожие темы

  1. Прикольная девборда... для спека в самый раз :)
    от ILoveSpeccy в разделе Несортированное железо
    Ответов: 12
    Последнее: 15.08.2008, 07:06

Ваши права

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