Вопрос № 54936: Добрый день!Подскажите пожалуйста как под управлением отладчика AFDPRO открыть прогамму типа com.
Заранее благодарен!...Вопрос № 55047: Здравствуйте!
Пишу лабораторную по теме "Драйвер клавиатуры" (полный код приведен ниже) и столкнулся с некоторыми трудностями:
1. Линковщик отказывается генерить COM-файл, выдаёт сообщение
"Fatal:Cannot generate COM-file:se...Вопрос № 55050: Доброго времени суток уважаемые эксперты-ассемблерщики.
Может кто знает. Вот в текстовых редакторах, поле куда там текст пишется – это эдит или просто клиентская часть.
А в экселе ячейки это API функция Rectange да или нет ????????
Спаси...Вопрос № 55054: Здраствуйте!!!
Подскажите где можно найти, или мож у кого есть хороший справочник по прерываниям BIOS . Лучше на русском, но можно и на Английском. +с какими нибудь примерами. +программирование на уровне BIOS`a графической среды!...
Вопрос № 54.936
Добрый день!Подскажите пожалуйста как под управлением отладчика AFDPRO открыть прогамму типа com.
Заранее благодарен!
Отвечает: Gluck3D
Здравствуйте, Maksim,V,I/max!
Можно на прямую через командную строку. К примеру если у вас есть файл asm.com и он лежит в каталоге AFDPRO, то пишем строку: afdpro asm.com и жмем Enter.
Можно через сам AFDPRO: в командной строке пишем L asm.com (!!!! ЕСЛИ asm.com лежит в каталоге с AFD).
Если AFD или ваша программа лежит в другом каталоге, то пишем полный путь (На пример для командной строки AFD: L C:PROCasm.com
Ответ отправил: Gluck3D (статус: 1-ый класс)
Ответ отправлен: 10.09.2006, 20:02 Оценка за ответ: 5
Вопрос № 55.047
Здравствуйте!
Пишу лабораторную по теме "Драйвер клавиатуры" (полный код приведен ниже) и столкнулся с некоторыми трудностями:
1. Линковщик отказывается генерить COM-файл, выдаёт сообщение
"Fatal:Cannot generate COM-file:segment-relocatable items present" - в чём причина? вроде все данные описаны в сегменте кода, других сегментов нет...
2. обработчик прерывания (9h) на клавиатуру - требуется работа с портами, чего раньше никогда не делал. У Зубкова изложено только в теории, что помогает мало. Считал что-то там из порта и... что с этим делать? Да и неохота изобретать велосипед честно говоря... Может кто-нибудь поделится кусочком кода?
В общем вроде установил вектора на свои обработчики, а что дальше делать - ума не приложу :( Асм только изучаю, примеров катастрофически не хватает - как дальше реализовывать обработчики? Нужно ли в их начале вызывать старые обработчики и зачем эта мера вообще?
Немножко сумбурно получилось, но точнее не получается. Заранее спасибо.
Вместо "seg k_int", "seg v_int" используйте cs - ведь все процедуры в одном сегменте (cs)...
В перывании из 60-го порта получил код нажатой(отжатой) клавиши, теперь осталось - по скан-коду определить код нажатой клавиши, создать в памяти буфер клавиатуры и добавить в него символ, соотвествующий этому коду (не забывая про shift, Caps, etc.)...
--------- Открыть глаза навстречу солнцу
Ответ отправил: ADSota (статус: Специалист)
Ответ отправлен: 11.09.2006, 16:58 Оценка за ответ: 4 Комментарий оценки: В перывании из 60-го порта получил код нажатой(отжатой) клавиши, теперь осталось - по скан-коду определить код нажатой клавиши, создать в памяти буфер клавиатуры и добавить в него символ, соотвествующий этому коду (не забывая про shift, Caps, etc.)... - вот это место пожалуйста поподробнее. что значит "создать буфер" ? ни одного примера не нашёл.
и очень интересует отлов Shift, Caps. Спасибо.
Отвечает: Sergijj
Здравствуйте, Дмитрий Валковой!
Читать напрямую буфер клавиатуры (csan-code) Вы можете через порт 60h (scan-code 1 = Клавиша <ESC>; scan-code 2 = Клавиша F1 и т.д.), а управлять контроллером клавиатуры - через порт 64h.
Указатели на начало и конец буфера клавиатуры лежат по адресам 041Ah и 041Ch соответственно.
Если нужен "облагороженный" scan-code клавиши (с флагами Alt, Ctrl, Shift) - можно вызвать int 16h (ax = 01).
Получить в AX эти флаги можно через int 16h (ax = 12h).
Удачи!
--------- Стучитесь! И Вас откопают...
Ответ отправил: Sergijj (статус: 5-ый класс)
Ответ отправлен: 12.09.2006, 10:21
Вопрос № 55.050
Доброго времени суток уважаемые эксперты-ассемблерщики.
Может кто знает. Вот в текстовых редакторах, поле куда там текст пишется – это эдит или просто клиентская часть.
А в экселе ячейки это API функция Rectange да или нет ????????
Спасибо.
Отправлен: 11.09.2006, 16:52
Вопрос задал: ENS (статус: 1-ый класс)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 2)
Отвечает: Xaud
Здравствуйте, ENS!
Все зависит от текстовых редакторов. Для простых (notepad, akelpad и иже с ними) используется большой EDIT-контрол. Для серьезных или более основательных - конечно же клиентская часть, вот только не обязательно главного окна. Обычно создается свой контрол (как то MySuperEditClass), который отрабатывает сообщения от клавиатуры, сам опеделяет что отображать, подсвечивать, шрифты и пр.; и помещается на главное окно как дочернее (CHILD).
В excel'e - может и Rectangle, может LineTo, а может и еще чего-нибудь. Суть в том чтобы красиво и понятно для пользователя отобразить содержимое, для этого можно использовать любые графические функции и даже другие дочерние контролы (например Header, Button, ListBox и пр.) поверх текущего контрола.
Ответ отправил: Xaud (статус: 1-ый класс)
Ответ отправлен: 11.09.2006, 21:33
Вопрос № 55.054
Здраствуйте!!!
Подскажите где можно найти, или мож у кого есть хороший справочник по прерываниям BIOS . Лучше на русском, но можно и на Английском. +с какими нибудь примерами. +программирование на уровне BIOS`a графической среды!
Отправлен: 11.09.2006, 17:19
Вопрос задал: chikanok (статус: 2-ой класс)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Волков Павел Юрьевич
Здравствуйте, chikanok!
залил на фтпшник справочник по функциям и структурам BIOS,DOS
/books/program/assembler/tech60.rar
о подключении к фтпшнику:
http://rusfaq.ru/forum/Opinions/68/3
лучшим справочником по прирываниям считается подборка Ральфа Брауна ("Ralf Brown's Interrupt List")
http://www.cs.cmu.edu/~ralf/files.html
конечно на русском нечего путнего не найдете, если только отдельные статьи.
ИМХО в подборке "Ralf Brown's Interrupt List" есть все, что надо.
--------- Век живи, век учись.
Ответ отправил: Волков Павел Юрьевич (статус: 7-ой класс)
Ответ отправлен: 11.09.2006, 20:50