Ru-Board.club
← Вернуться в раздел «Прикладное программирование»

» Assembler

Автор: bomzzz
Дата сообщения: 18.07.2010 20:20
люди. а чем драйвер от обычной программы отличается? он компилируется как по особому?
Автор: bomzzz
Дата сообщения: 19.07.2010 11:09
я уже с ума схожу - как нарисовать в текстовом режиме курсор мыши - чтоб если тама букавка была - она в белом квадратике черным рисовалась. на эммуляторе делаю - получается, на железе и виртуалке - не работает никак. а мышиный драйвер на виртуалке курсор правильно рисует - то есть как то сделать можно.

уже все варианты перебрал и прямой записью в видео память и через видео сервис. и пытался символы друг на друга накладывать - ничего не получается.
Автор: Prober
Дата сообщения: 19.07.2010 12:49
bomzzz

Цитата:
как нарисовать в текстовом режиме курсор мыши

Давно с ДОСом расстался, но краем мозга еще помню, что там в текстовых режимах цвет символа и цвет фона задаются независимо в каждой позиции. Может, для позиции с курсором эти цвета просто обменять друг с другом?
Автор: bomzzz
Дата сообщения: 19.07.2010 13:24
ни понил.
в памяти идет символ сначала потом его цвет. на эммуляторе если левый крайинй бит выставить цвета - как раз получается XOR, а на виртуалке и железе от этого только мигать начинает. но опыт не совсем чистый эммулятор после отработки программы вообще останавливается. может если бы он работал там тоже мигало
Автор: Prober
Дата сообщения: 19.07.2010 13:55
Вот, нашел раритетную книгу Фроловых (когда-то ее, наверное, даже читал!). Цитата из главы 4.1:

Цитата:
Стандартные текстовые режимы работы видеоадаптеров позволяют вывести на экран 25 строк по 40 или 80 символов. Для кодирования каждого знакоместа экрана (символа) используются два байта. Первый из них содержит ASCII код отображаемого символа, а второй - атрибуты символа. Коды символов имеют четные адреса, а их атрибуты - нечетные.

Атрибуты определяют цвет символа и цвет фона. Благодаря такому режиму хранения информации достигается значительная экономия памяти по сравнению с графическим режимом. Формат байта атрибутов символа приведен ниже:

D2-D0 Цвет символа
Автор: akaGM
Дата сообщения: 19.07.2010 14:07
bomzzz

Цитата:
как нарисовать в текстовом режиме курсор мыши

использовать 0аh функу 33-его прерывания...
AX 000aH
BX pointer type: 0=software ptr; 1=hardware ptr
CX AND mask (if BX=0) or cursor start line (if BX=1)
DX XOR mask (if BX=0) or cursor end line (if BX=1)
Автор: bomzzz
Дата сообщения: 19.07.2010 15:44
akaGM
ну а сам драйвер как рисует?

Prober
спс. читаю, понимаю
Автор: akaGM
Дата сообщения: 19.07.2010 16:13
bomzzz
а на фиг мне эти схоластические знания?
дизассемблер тебе в помощь...
Автор: bomzzz
Дата сообщения: 19.07.2010 17:05
я тебе их и не предлагаю. но для того, чтоб нарисовать квадратик без потери буквы, расковыривать драйвер - сильно
Автор: akaGM
Дата сообщения: 19.07.2010 17:25
bomzzz
ты меня спрашиваешь "знаю ли я как?..."
я тебе на это отвечаю...
интересно (хотя и не очень) что за задачи у тебя...
Автор: bomzzz
Дата сообщения: 19.07.2010 18:21
да какие задачи - сижу изгаляюсь. все можно было, давно уже написано. ну учу как бы ассемблер
Автор: akaGM
Дата сообщения: 19.07.2010 18:24
bomzzz
а зачем учить мёртвую латынь или греческий, если ты не узкий спец. в этой области?
асм для IBM360 тоже был неплох...
Автор: bomzzz
Дата сообщения: 19.07.2010 18:32
Prober
спс сделал - протупил с 16 ричной системой.

Добавлено:
akaGM
язык как язык. получше многих. паскаль что ли выучить

Добавлено:
я в школе бейсик учил, меня от паскаля и си тошнит. вот ассемблер нормально. 16 битные приложения помогают лучше разбираться в жонглировании байтами

Добавлено:
я вот пару дней прогу написал для копирования файлов, копирует файлы быстрее всяких модных теракопи, и памяти жрет 32 кб, а не 50 мб. ну интерфейс конечно слабый и имена короткие. с батником отлично. в папочке лежит для траспортировки фильмов

Добавлено:
а под досом хуже копирует, чем штатная копи. или из за нтфс драйвера или из за того, что штатная прерываниями биоса пользуется, а не дос - хз. болванка есть, потом на 32 масм переделкаю
Автор: akaGM
Дата сообщения: 19.07.2010 18:45
bomzzz

Цитата:
язык как язык. получше многих.

ты меня не понял... всё что ты делаешь (курсор мыши, цветные атрибуты символа, все
эти 16-разрядные тонкости) никому не нужны и врядли тебе пригодятся в дальнейшем...
возьми лучше директории masm32/examples/examplХХ для изучения...
Автор: bomzzz
Дата сообщения: 19.07.2010 18:47
лежит у меня масм32. хочу руку набить на байтах, сегментах. а тама скучна, плети паутину из апи фукций, никакой романтики
Автор: akaGM
Дата сообщения: 19.07.2010 18:58
и разговариваешь чёрте с кем...

bomzzz
имхо, учиться лучше всего на конкретных (после освоения синтаксиса языка) задачах, а не на абстракте...
Автор: aspis
Дата сообщения: 19.07.2010 19:24
Внесу свои 5 копеек в дискуссию.

Цитата:
хочу руку набить на байтах, сегментах

Сегментная модель отжила, а в Win32 с плоской моделью практически вообще забудете про сегментные регистры.

Цитата:
а тама скучна, плети паутину из апи фукций, никакой романтики

А чем прерывания (int) отличаются от API? )
Под ДОС хорошо как средство обучения, но реальные программы создаются именно в WinAPI. Хотя вместо ДОС можно с таким же успехом применять консольный режим.
Автор: bomzzz
Дата сообщения: 21.07.2010 00:42
мне сегментные регистры не мешают. вот сразу видно человек в школе паскаль учил
Автор: aspis
Дата сообщения: 21.07.2010 07:02
Вам подсказать хотят, что актуальнее изучать, а вы сразу в штыки. Ну учите дальше что хотите и как хотите, ваше право, но на личности и способности переходить не стоит.
Автор: bomzzz
Дата сообщения: 21.07.2010 09:02
да спасибо, не надо. не думаю, что масм32 пострадает от масма 6.11. че там изучать весь синтаксис одинаковый. свет клином на винде не сошелся

Добавлено:
я вот даже не представляю зачем теребить масм32 не начав даже не с доса, а с загрузочного сектора - раз уж так процессор работает.
Автор: akaGM
Дата сообщения: 21.07.2010 13:40
bomzzz
да ради бога...
я б лично такого студента/аспиранта себе с руками оторвал...
который мало того, что сам себе задачу ставит, так ещё и тренериуется на [сегментных] кошках... гы
Автор: bomzzz
Дата сообщения: 21.07.2010 17:21
никто не знает как волков коммандер активирует свои горячие клавиши? прерывание 09h он не перехватывает
Автор: VGrad
Дата сообщения: 25.07.2010 23:17

Цитата:
прерывание 09h он не перехватывает

а int 16h ?
Автор: bomzzz
Дата сообщения: 25.07.2010 23:39
самые похожие int1b int21.но он еще и отключает все чужие клавиши

Добавлено:
еще тот жулик - сам не показывает про себя , что перехватил, а нахватал многа
до того как

после того как


Добавлено:

Цитата:

Сравнение файлов BEFORE.TXT и AFTER.TXT
00000002: 5B 7C int0h
00000003: 0B 0E
0000006E: 5B 7C int1b
0000006F: 0B 0E
00000072: 5B 7C int1c
00000073: 0B 0E
00000084: E1 AC int21h
00000085: 20 04
00000086: CE 5A int22h
00000087: 04 0B
0000008A: FE E8 int22h
0000008B: D5 DC
0000008E: 5B 7C int23h
0000008F: 0B 0E
00000092: 5B 7C int24h
00000093: 0B 0E
0000009C: D0 FC int27h
0000009D: 0F 04
0000009E: C9 5A
0000009F: 00 0B
000000BA: FE E8 int2Eh
000000BB: D5 DC
Для продолжения нажмите любую клавишу . . .

наверно дальше тоже стоит проверить

Добавлено:

Цитата:

Сравнение файлов BEFORE.TXT и AFTER.TXT
FC: различия не найдены


Добавлено:

Цитата:

INT 1bH: прерывание с клавиатуры.
Этот вектор (0:006c) берется, когда BIOS распознает нажатие клавиши Ctrl-Break. INT 1bH первоначально указывает на IRET, но DOS устанавливает его на локальную программу, которая взводит внутренний флаг DOS. DOS время от времени проверяет этот флаг и действует в соответствии с действующим режимом обработки прерываний.


Добавлено:

Цитата:

int 21h 01H: ввод с клавиатуры

Считывает (ожидает) символ со стандартного входного устройства. Отображает этот символ на стандартное выходное устройство (эхо). при распознавании Ctrl-Break выполняется INT 23H.
Автор: akaGM
Дата сообщения: 26.07.2010 17:18
bomzzz

Цитата:
никто не знает как волков коммандер...

ковыряй лучше сорсы FAR'а
по кр. мере и народу будет больше пользы...
Автор: conty9
Дата сообщения: 05.08.2010 09:12
Просьба к знатокам. Нужен "стартер" для программ. Т.е., нужна обычная ЕХЕ-шка, являющаяся аналогом команды Start, которая в качестве переменной принимает имя реально запускаемой программы с ключами и стартует её так:
стартер.ехе программа.(ехе/bat/cmd/au3/...) -ключи
Нужна для работы в среде WinPE, с минимальным размером в виде готового продукта (ЕХЕ).
Автор: bomzzz
Дата сообщения: 05.08.2010 09:35
conty9
http://forum.ru-board.com/topic.cgi?forum=5&topic=29819&start=1200#4
может вот это подойдет

Добавлено:
екзешка.
в качестве параметра принимает имя путь программы
в качестве параметра принимает параметр запуска
в вин пе работает
минимальный размер - 1.5 кб меньше не получиться для 32 бит, может упсом сжать
готовый продукт
под вин пе работает (не уверен что будет под микро хп) надо проверить может библиотек не хватить, но врядли чтоб не было командной строки, вида окна, и порождение процесса - тогда никакие бы проги не запускались
вид окна в нагрузку, но тройка в конце будет болтаться, зато можно батники невидимые запускать.
возвращает код ошибки в нагрузку
вроде подходит
Автор: conty9
Дата сообщения: 05.08.2010 10:38
bomzzz, BatStarter не всегда работает. Больше подходит hidcon.exe, работает железно (попутно скрывая стартовые cmd-файлы), не нравится одно - висит в памяти, пока не закроется программа. Да и скрывать, в общем случае, не нужно.
Автор: bomzzz
Дата сообщения: 05.08.2010 10:40
как это не работает. в каких случаях?

Добавлено:
это чистая апи функция с доступом через командную строку.
Автор: conty9
Дата сообщения: 05.08.2010 10:46
bomzzz, некоторые ЕХЕ-шки скрывает так, что не видно саму программу

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384

Предыдущая тема: .NET GUI компоненты


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.