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

User Tag List

Страница 4 из 5 ПерваяПервая 12345 ПоследняяПоследняя
Показано с 31 по 40 из 48

Тема: Оконный интерфейс для asm, может кто помнит?

  1. #31
    Guru Аватар для CodeMaster
    Регистрация
    26.04.2009
    Адрес
    г. Воронеж
    Сообщений
    6,244
    Спасибо Благодарностей отдано 
    142
    Спасибо Благодарностей получено 
    211
    Поблагодарили
    182 сообщений
    Mentioned
    6 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Destr Посмотреть сообщение
    на зачуханом i286 сумели надстроить дос до окон 3.11
    Это делали ремесленники за зарплату.

    Цитата Сообщение от Destr Посмотреть сообщение
    Затомыпишимдемыкакихнивид илсвет!
    А свободные художники только так ;-)
    "Во времена всеобщей лжи говорить правду - это экстремизм" - афоризм.

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

  3. #32
    Guru Аватар для Shiny
    Регистрация
    19.01.2017
    Адрес
    г. Арзамас
    Сообщений
    2,194
    Записей в дневнике
    40
    Спасибо Благодарностей отдано 
    4
    Спасибо Благодарностей получено 
    57
    Поблагодарили
    39 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    по кодировкам. можно писать русские буквы в 866 и включать в db ""(любимый Emeditor, ага). ужясм хавает и не плачет. только ему слэши не нравятся.

  4. #33
    Veteran
    Регистрация
    08.05.2007
    Адрес
    Dnepropetrovsk
    Сообщений
    1,058
    Спасибо Благодарностей отдано 
    220
    Спасибо Благодарностей получено 
    47
    Поблагодарили
    31 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Destr Посмотреть сообщение
    Это имею в виду что даже на зачуханом i286 сумели надстроить дос до окон 3.11 а мы с тырдосом так и чухаемся...
    А чем не нравится IS-DOS? Полный набор: оконный интерфейс, система перемещаемых драйверов памяти, дисков, клавиатуры, файловая система, куча прикладного софта. Есть и другие оси. DOORS - не щупал, не знаю, но наверняка тоже все атрибуты ОС имеются. Просто данная тема форума - про собственный, отдельный оконный интерфейс.

  5. #34
    Guru Аватар для CodeMaster
    Регистрация
    26.04.2009
    Адрес
    г. Воронеж
    Сообщений
    6,244
    Спасибо Благодарностей отдано 
    142
    Спасибо Благодарностей получено 
    211
    Поблагодарили
    182 сообщений
    Mentioned
    6 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Barmaley_m Посмотреть сообщение
    Просто данная тема форума - про собственный, отдельный оконный интерфейс.
    Тема да, но пост Destr про то, что вместе с мелкомягкими окнами (на самом деле задолго до них) на ПЦ появилась и оконная экосистема, которой мог пользоваться каждый, а не выдумывать каждый раз свою. Как ТС использовать окна IS-DOS для своей задачи?
    "Во времена всеобщей лжи говорить правду - это экстремизм" - афоризм.

  6. #35
    Member Аватар для asve79
    Регистрация
    13.11.2018
    Адрес
    г. Москва
    Сообщений
    47
    Записей в дневнике
    31
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Barmaley_m, Вопрос по твоей оконной системе.
    В модуле работы с клавиатурой есть код:

    Код:
    CST:	LD	HL,(ULBUF)
    	LD	A,L
    	CP	H
    	LD	A,0
    	RET	Z
    	CPL
    	RET
    
    CONIN:	EI
    CONIN0:	CALL	CST
    	JR	Z,CONIN0
    	DI
    	LD	A,L
    	INC	A
    	CP	LENBUF-1
    	JR	NZ,CONIN1
    	XOR	A
    CONIN1:	LD	(ULBUF),A
    	LD	DE,BUFKLA
    	LD	H,0
    	ADD	HL,DE
    	LD	A,(HL)
    	EI
    	RET
    Физический смысл его это ожидания нажатия на клавишу, код которой в ULBUF, пришедший в буфер из ф-ции прерывания?
    Последний раз редактировалось asve79; 25.12.2018 в 16:21.

  7. #36
    Veteran
    Регистрация
    08.05.2007
    Адрес
    Dnepropetrovsk
    Сообщений
    1,058
    Спасибо Благодарностей отдано 
    220
    Спасибо Благодарностей получено 
    47
    Поблагодарили
    31 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от asve79 Посмотреть сообщение
    Barmaley_mВ модуле работы с клавиатурой есть код:
    Физический смысл его это ожидания нажатия на клавишу, код которой в ULBUF, пришедший в буфер из ф-ции прерывания?
    Да, смысл данного кода - это ожидание нажатия на клавишу. В данном драйвере используется буфер клавиатуры, в который подпрограмма INTKEY, работающая по прерываниям, помещает коды клавиш по мере их нажатия. Если подпрограмма CONIN (ожидание нажатия на клавишу) долго не вызывалась - то в буфере может быть несколько кодов. Они будут по одному извлечены из буфера за несколько вызовов CONIN. Переменные ULBUF и USBUF - это не коды клавиш, а указатели в пределах буфера. Сам буфер расположен в области памяти BUFKLA.

    Устройство буфера - типичный кольцевой буфер (Ring buffer, Circular Buffer). Имеется два указателя - один на запись, второй на считывание. Тот, который на запись, изменяется только по прерываниям. Тот указатель, который на считывание, изменяется только в подпрограмме CONIN.

    Замечу, что эта функция составлена неэффективно. Вероятно, авторы драйвера (и я в 1996г) не понимали, что кольцевой буфер относится к структурам данных с возможностью неблокирующего доступа (Lock-free data structure). Если подпрограмма CONIN составлена грамотно - то неважно, в каком месте она может быть прервана прерыванием, её работа будет в любом случае корректной. Иными словами, можно таким образом изменить функцию CONIN, чтобы в ней не надо было запрещать прерывания. Это устранит вероятность пропуска прерывания и сделает работу системы более отзывчивой.

    К тебе вопрос - ты можешь внести меня на Github в список разработчиков проекта, чтобы я мог вносить свои изменения? А то как раз появилось желание немного оптимизировать код.

  8. #37
    Member Аватар для asve79
    Регистрация
    13.11.2018
    Адрес
    г. Москва
    Сообщений
    47
    Записей в дневнике
    31
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Barmaley_m Посмотреть сообщение
    К тебе вопрос - ты можешь внести меня на Github в список разработчиков проекта, чтобы я мог вносить свои изменения? А то как раз появилось желание немного оптимизировать код.
    Да не вопрос! В xasconv? Добавил.

  9. #38
    Member Аватар для asve79
    Регистрация
    13.11.2018
    Адрес
    г. Москва
    Сообщений
    47
    Записей в дневнике
    31
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Barmaley_m Посмотреть сообщение
    Да, смысл данного кода - это ожидание нажатия на клавишу. В данном драйвере используется буфер клавиатуры, в который подпрограмма INTKEY, работающая по прерываниям, помещает коды клавиш по мере их нажатия. Если подпрограмма CONIN (ожидание нажатия на клавишу) долго не вызывалась - то в буфере может быть несколько кодов. Они будут по одному извлечены из буфера за несколько вызовов CONIN. Переменные ULBUF и USBUF - это не коды клавиш, а указатели в пределах буфера. Сам буфер расположен в области памяти BUFKLA.
    Добавил в код ф-цию CONINW, которая не ждет нажатия на клавишу. а возвращает 0, если пусто.
    В моем случае в это возможность опросить порт на предмет входящих данных.

    Постепенно прихожу к мысли. что было бы здорово иметь возможность "переключаться" в область вывода другого окна, как будто текущее закрылось, а потом возвращаться в область координат текущего с текущим положением курсора. При этом перекрыванием окон можно пренебречь и оставить на совести пользователя. Но тут похоже не такая малая доделка нужна.

  10. #39
    Veteran
    Регистрация
    08.05.2007
    Адрес
    Dnepropetrovsk
    Сообщений
    1,058
    Спасибо Благодарностей отдано 
    220
    Спасибо Благодарностей получено 
    47
    Поблагодарили
    31 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от asve79 Посмотреть сообщение
    Добавил в код ф-цию CONINW, которая не ждет нажатия на клавишу. а возвращает 0, если пусто.
    В моем случае в это возможность опросить порт на предмет входящих данных.
    Такая функция имеет ограниченную область применения. А именно - во время длительной операции обработки данных или рисования смотреть, не нажата ли клавиша, которая должна прервать этот процесс. Во всех остальных случаях рекомендуется пользоваться блокирующей функцией CONIN. Это идеология многопоточных систем, в которых следует избегать циклов, где что-то опрашивается и процессор занят на 100%. Хотя в моей библиотеке многопоточности пока нет, но её можно прикрутить (см., например, мою тему в этом разделе "вытесняющая многозадачность").
    Цитата Сообщение от asve79 Посмотреть сообщение
    Постепенно прихожу к мысли. что было бы здорово иметь возможность "переключаться" в область вывода другого окна, как будто текущее закрылось, а потом возвращаться в область координат текущего с текущим положением курсора. При этом перекрыванием окон можно пренебречь и оставить на совести пользователя. Но тут похоже не такая малая доделка нужна.
    Если перекрыванием пренебречь - то доделка будет умеренной. С перекрыванием - да, сложнее. Попробую покумекать на досуге. Мой план: сначала сделать Diff твоей репозитории на GitHub со своими исходниками, чтобы точно выяснить, что ты поменял; и тогда уже начну вносить свои изменения.

    Почему ты, кстати, настаиваешь на отказе от кодировки CP866 в исходниках?

  11. #40
    Member Аватар для asve79
    Регистрация
    13.11.2018
    Адрес
    г. Москва
    Сообщений
    47
    Записей в дневнике
    31
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Barmaley_m Посмотреть сообщение
    Почему ты, кстати, настаиваешь на отказе от кодировки CP866 в исходниках?
    Да я не то, чтобы настаиваю. Я работаю под linux, система работает в UTF-8 и не надо ничего придумывать с IDE. Плюс если делать pull/merce реквесты в github-е, то изменения проще сравнивать когда кодировки UTF8, не уверен что там будет корректно отображаться другие кодировки. Но Это не проверял, поэтому высказываю лишь свои предположения.
    Посмотрел что будет если кириллицу попробовать вывести - мда, выводит коряво, видимо ассемблер не переводит кодировку, что наверное и не удивительно. На этот счет не размышлял еще.

    Цитата Сообщение от Barmaley_m Посмотреть сообщение
    сделать Diff твоей репозитории на GitHub со своими исходниками, чтобы точно выяснить, что ты поменял
    В целом, я только устранял несоответствие между синтаксисом zasm/sjasm. Т.е удалял CSEG/DSEG. Добавлял описание модулей в файлах модулей. Добавлял названия модулей в CALL-ах, ссылающихся на ф-ции в других модулях. Удалил упоминания EXTERN/PUBLIC, добавил Include.

    В логический состав кода не лазал.

Страница 4 из 5 ПерваяПервая 12345 ПоследняяПоследняя

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

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

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

Похожие темы

  1. Кто помнит пленочную клавиатуру?
    от SaintTurnip в разделе Устройства ввода
    Ответов: 6
    Последнее: 05.02.2014, 09:17
  2. Аркадные автоматы. Кто чего помнит
    от KiN0 в разделе Зарубежные компьютеры
    Ответов: 9
    Последнее: 31.05.2012, 00:53
  3. Оконный интерфейс для БК0011
    от vinxru в разделе БК-0010/0011
    Ответов: 43
    Последнее: 17.03.2012, 19:33
  4. Ответов: 6
    Последнее: 28.08.2008, 21:34

Ваши права

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