Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: программирование на языке Assembler


Информационный Канал Subscribe.Ru

RusFAQ.ru: программирование на языке Assembler

Выпуск № 661
от 09.11.2003, 14:09

Администратор:
Имя: Калашников О.А.
URL: Информационный ресурс
ICQ: 68951340
Россия, Москва
О рассылке:
Задано вопросов: 4461
Отправлено ответов: 12841
Активность: 287.8 %
[Задать вопрос >>][Регистрация эксперта >>]
[Поиск в базе][Обсудить на форуме]


 Список экспертов, ответы которых опубликованы в данном выпуске

never_again
Статус: Доверительный
Общий рейтинг: 136.2
[Подробней >>]
Евгений Иванов
Статус: Профессиональный
Общий рейтинг: 142.43
URL: Super Assembler Software
Телефон: НСС +7 831 3107039
[Подробней >>]
Bob Johnson
Статус: Профессиональный
Общий рейтинг: 149.2
URL: Программирование
[Подробней >>]
 
Maverick
Статус: Профессиональный
Общий рейтинг: 122.83
URL: Эхоконференция по вирмейкингу
Телефон: 89039415024 (BeeLine GSM)
[Подробней >>]
PUSH
Статус: Начальный
Общий рейтинг: 106.74
[Подробней >>]
dr_dolphin
Статус: Доверительный
Общий рейтинг: 117.67
[Подробней >>]
 
_vt
Статус: Профессиональный
Общий рейтинг: 120.37
[Подробней >>]
Gibbel
Статус: Профессиональный
Общий рейтинг: 106.49
URL: Savage Metal Club - жизнь в стиле рок-н-ролл
Телефон: +7 901 710 3146
[Подробней >>]
St
Статус: Профессиональный
Общий рейтинг: 105.95
[Подробней >>]
 
Artemy
Статус: Начальный
Общий рейтинг: 113.51
[Подробней >>]
ASMодей
Статус: Профессиональный
Общий рейтинг: 112.65
[Подробней >>]


 Краткий перечень вопросов

Вопрос № 4421. Уважаемые Эксперты! Подскажите пожалуйста, как переключить видеостраницу, используя только регистры ... (ответов: 2)
Вопрос № 4422. Здравствйте. я начинающий программист на ассемблере, занимаюсь по рассылкам Калашникова Олега. Я дош... (ответов: 7)
Вопрос № 4423. Здравствуйте, уважаемые. Есть ли какая-нибудь функция (wininet или winsock), которая определяла бы с... (ответов: 3)
Вопрос № 4424. Доброго времени суток уважаемые эксперты. Возникло у меня несколько вопросов.. Можно наверное уперет... (ответов: 4)
Вопрос № 4425. Здравствуйте! 1)как работать с сом портом в вин хр какие винапи использовать. в 98 моя прога работае... (ответов: 3)
Вопрос № 4426. Доброго времени суток, эксперты! Как можно получить значение какой-либо системной переменной, наприм... (ответов: 4)
Вопрос № 4427. Здравствуйте эксперты! Мне нужно вывести точку в режиме 13h на языке Си. Помимо этого мне нужна проц... (ответов: 4)
Вопрос № 4428. У меня такая проблема. Программировал под Delphi и ТР7 LPT1 порт т.е. отпускал на выход 8 бит данных... (ответов: 2)
Вопрос № 4429. Вопрос немного не по теме рассылки. Есть ли подобная рассылка по Delphi с возможностью задавать вопр... (ответов: 2)
Вопрос № 4430. Уважаемые эксперты ! Вы не могли бы дать пример или хорошую документацию по работе с fat12. В интерн... (ответов: 1)
Вопрос № 4431. Привет всем! Может кто-нибудь дать пример, определяющий находится комп в онлайне или нет. Если можно... (ответов: 3)
Вопрос № 4432. ПРИВЕТ,пришлите,пожалуйста,программу: Ввести с клавиатуры массив z(5)в котором каждый элемент состо... (ответов: 2)
Вопрос № 4433. Доброго времени суток. Уважаемые господа эксперты. При установке какого либо видеорежима стандартным... (ответов: 3)

Вопросов: 13, ответов: 40


 Вопрос № 4421

Уважаемые Эксперты!
Подскажите пожалуйста, как переключить видеостраницу, используя только регистры контроллера CRT?
Спасибо!



Вопрос отправлен: 04.11.2003, 01:20
Отправитель: equalizer

[Следующий вопрос >>] [Список вопросов]

Отвечает never_again

Здравствуйте, equalizer!
почитай Зубкова.


Ответ отправлен: 04.11.2003, 11:06
Отправитель: never_again


Отвечает Евгений Иванов

Доброе время суток, equalizer!
http://superforest.narod.ru/research_computer2tv.htm
proc get_port_data
mov dx,3D4h
mov al,0Ch
call port_read_w
mov bh,ah
mov al,0Dh
call port_read_w
mov bl,ah
mov ax,bx
mov cx,wptr [cs:sch2] ;#E
ret
endp
proc set_port_data
mov dx,3D4h
mov bl,al
mov al,0Ch
out dx,ax
inc ax
mov ah,bl
out dx,ax
ret
endp
up_up: ;=4d
pusha
call get_port_data
mov bx,80*12
cmp ch,13
jnc m84d
mov bx,80
m84d:
cmp ch,159
jnz m94d
mov bx,200
m94d:
sub ax,bx
jc top_up
ret_all_move:
mov wptr [cs:data_scroll-2],ax
call set_port_data
ret_up_up:
popa
test bptr [cs:sch2],4
jnz m90i92
ret
m90i92:
pop ax
jmp m90i9
top_up:
sub ax,ax
jmp ret_all_move
down_down:
pusha
call get_port_data
mov bx,80*12
cmp ch,13
jnc m154d
mov bx,80
m154d:
cmp ch,159
jnz m164d
mov bx,200
m164d:
add ax,bx
jnc ret_all_move
ret_up_up3:
jmp ret_up_up
up_up_speed:
pusha
call get_port_data
mov bx,80*64
test cl,4
jz m174d2
mov bx,80*14
m174d2:
cmp ch,156
jc m174d3
mov bx,80*28
m174d3:
cmp ch,159
jnz sfera1
mov bx,100*28
sfera1:
cmp ch,13
jnc m174d
mov bx,80*4
test cl,4
jz m174d
mov bx,80*2
m174d:
sub ax,bx
jnc ret_all_move3
top_up2:
jmp top_up
ret_all_move3:
jmp ret_all_move
down_down_speed:
pusha
call get_port_data
mov bx,80*64
test cl,4
jz m254d2
mov bx,80*14
m254d2:
cmp ch,156
jc m254d3
mov bx,80*28
m254d3:
cmp ch,159
jnz sfera2
mov bx,100*28
sfera2:
cmp ch,13
jnc m254d
mov bx,80*4
test cl,4
jz m254d
mov bx,80*2
m254d:
add ax,bx
jnc ret_all_move3
ret_up_up2:
jmp ret_up_up3
left_left:
pusha
call get_port_data
sub ax,1
jnc ret_all_move2
top_up3:
jmp top_up2
right_right:
pusha
call get_port_data
inc ax
jz ret_up_up2
ret_all_move2:
jmp ret_all_move3
left_left_speed:
pusha
call get_port_data
mov bx,10
cmp ch,156
jc m294d
mov bx,40
m294d:
cmp ch,159
jnz sfera3
mov bx,50
sfera3:
sub ax,bx
jc top_up3
jmp ret_all_move2
right_right_speed:
pusha
call get_port_data
mov bx,10
cmp ch,156
jc m394d
mov bx,40
m394d:
cmp ch,159
jnz sfera4
mov bx,50
sfera4:
add ax,bx
jc ret_up_up2
jmp ret_all_move2
* EMan: -=- Любовь существует! =-=


Ответ отправлен: 04.11.2003, 11:09
Отправитель: Евгений Иванов


 Вопрос № 4422

Здравствйте.
я начинающий программист на ассемблере, занимаюсь по рассылкам Калашникова Олега. Я дошёл до цикла (loop). Написал (точнее списал с рассылки) прогу прокомпилировал, а компилятор и говорит, что ,мол, у меня не легальная инструкция. Скорее всего он имеет в виду loop, т.к. без цикла всё идёт. У меня четвёртый пентиум, стоит винд ХР.
Может эта инструкция не поддерживается пентиумом??? (хотя мне должна)
Помогите, пожалуйста, товарищи эксперты, у меня обучение на ассемблере из-зи этого стоит.
До свидания.



Вопрос отправлен: 04.11.2003, 07:51
Отправитель: Alexander_B

[Следующий вопрос >>] [Список вопросов]

Отвечает Bob Johnson

Здравствуйте, Alexander_B!
Версия виндов или пентиума тут значения не имеет. Проверь свою прогу, может ты русскими буквами что-то написал... Еще вначало поставь .386, хотя это не должно влиять.

* EMan1.5: ---===*** The game we play ***===---


Ответ отправлен: 05.11.2003, 21:20
Отправитель: Bob Johnson


Отвечает Евгений Иванов

Здравствуйте, Alexander_B!
:-)
Применяй:
dec ecx
jnz @@m1
:-)
Чао!
(Дело конечно, не в loop ...:-)
* EMan: -=- Любовь существует! =-=


Ответ отправлен: 04.11.2003, 11:21
Отправитель: Евгений Иванов


Отвечает never_again

Добрый день, Alexander_B!
всё твой пень 4 поддерживает, не волнуйся. ты б лучше код прицепил, а то так можно всю жизнь гадать чего он орёт на
illigal instruction.


Ответ отправлен: 04.11.2003, 11:04
Отправитель: never_again


Отвечает Maverick

Доброе время суток, Alexander_B!
Хм, т.е. как так не поддерживается? Все должно работать, давай код.


Ответ отправлен: 05.11.2003, 13:27
Отправитель: Maverick


Отвечает PUSH

Доброе время суток, Alexander_B!loop pentium поддерживает естесно.После инструкции loop должна следовать метка и этa
метка должна быть в программе:
met_1:
..........
..........
loop met_1
Компилятор должен еще саказать и номер
строки,в которой произошла ошибка,посмотрите,может просто неправильно записано
что либо (в EDIT.COM удобно смотреть номера строк)


Ответ отправлен: 05.11.2003, 05:26
Отправитель: PUSH


Отвечает dr_dolphin

Здравствуйте, Alexander_B!
Я бы помог с удовольствием, но для этого мне нужен текст программы. В будущем присылайте вопросы такого типа с текстом программы !!!
Пока !


Ответ отправлен: 05.11.2003, 07:21
Отправитель: dr_dolphin


Отвечает _vt

Добрый день, Alexander_B!
Скорее всего, вы где-то опечатались... Возможно, некорректно выходите из программы (не хватает ret ), в любом случае все программы оттуда работают... Привели бы кусок кода, что ли...

*** E-Man - can help you***


Ответ отправлен: 05.11.2003, 23:14
Отправитель: _vt


 Вопрос № 4423

Здравствуйте, уважаемые.
Есть ли какая-нибудь функция (wininet или winsock), которая определяла бы соединен ли сейчас комп с инетом или нет? Только чтобы окошко с соединением не вылазило
Спасибо



Вопрос отправлен: 04.11.2003, 10:35
Отправитель: Faraon (faraon@hotmail.kz)

[Следующий вопрос >>] [Список вопросов]

Отвечает Gibbel

Здравствуйте, Faraon!
Вообще-то не совсем корректный вопрос...
Советую почитать эту статью.

Ответ отправлен: 04.11.2003, 12:40
Отправитель: Gibbel


Отвечает Bob Johnson

Добрый день, Faraon!
См. ответ на вопрос 4431 (http://rusfaq.ru/cgi-bin/info.cgi?Action=GetQuestion&ID=2947637.16942729 до выхода рассылки).

* EMan1.5: ---===*** The game we play ***===---


Ответ отправлен: 05.11.2003, 21:21
Отправитель: Bob Johnson


Отвечает dr_dolphin

Здравствуйте, Faraon!
Да конечно есть это rasGetConnectStatus.

Пока !


Ответ отправлен: 05.11.2003, 07:22
Отправитель: dr_dolphin


 Вопрос № 4424

Доброго времени суток уважаемые эксперты.
Возникло у меня несколько вопросов.. Можно наверное упереться и попытаться самому дойти,
но я не мазахист, да и вы тут для того и собрались чтобы всякие вопросы разрешать..
Ближе к делу.
В приложенном коде создается рабочий тред который должен 9000 раз добавлять к eax еденичку.
По окончании выполненной работы он посылает окну сообщения WM_FINISH и WM_PAINT.
В ответ на WM_FINISH выдается сообщение о том, что вычисления закончены. А в ответ
на WM_PAINT должна рисоваться строка Stri (Но не рисуется!! гадина.. :( ). Это первый вопрос.
Второй: Когда тред посылает WM_FINISH то приходится вставлять проверку что это сообщение
послано именно тредом (иначе оно выскакивает при загрузки основного окна.. :(.
(Ума не приложу откуда оно в начале берется? Я ж его не посылаю! От сырости что-ли завелось? :) )).
Кроме того был бы признателен если бы кто подсказал как Русские буковки рисовать..
У меня аброкадабра какая-то получается.
И еще вопрос: Как преобразовать значение регистра в строку символов чтобы их нарисовать..
(Знаю, что в рассылке этот вопрос уже был, но в явном виде я его найти не смог.. :( ).
И еще для общего развития. Вот мы рисуем какую-нибудь бяку в окне когда прходит WM_PAINT.
И потом нам уже не надо перерисовывать то что мы нарисовали? Или окно постоянно обновляется
и WM_PAINT приходит постоянно? Или если не постоянно то в каких случаях? Ну когда происходит
загрузка окна или обновление это понятно, а еще есть что-нибудь?
Спасибо.
Ramala.


Приложение:


Вопрос отправлен: 04.11.2003, 13:39
Отправитель: Ramala (Ramala@hotmail.ru)

[Следующий вопрос >>] [Список вопросов]

Отвечает St

Привет, Ramala!
Я попытался понять что в вашей программе не так, почему не выводится одна надпись, хотя выводится другая, но не понял. Но заметил, что вы после обработки сообщений не перескакиваете на метку finish, а продолжаете выполнять код отвечающий за обработку других сообщений, может быть в этом и состоит проблема?
Насчет WM_PAINT - окно надо перерисовывать самому каждый раз когда приходит это сообщение, ведь оно посылается не только когда надо нарисовать что-то самому, это можно сделать и в любом другом месте программы (GetDC-ReleaseDC), но и например когда окно было скрыто под другим и появилось из-под него, тогда WM_PAINT посылается виндами и окно надо перерисовать полностью.
St

Ответ отправлен: 05.11.2003, 12:49
Отправитель: St


Отвечает Евгений Иванов

Доброе время суток, Ramala!
Надо перерисовывать по WM_PAINT! Всегда (кроме прокрутки и сдвига окна - это просто видеопамять копируется для убыстрения)! Поэтому рисуй в совместимом DC и при wm_paint выводи!
Бывай!
* EMan: -=- Любовь существует! =-=


Ответ отправлен: 04.11.2003, 13:55
Отправитель: Евгений Иванов


Отвечает never_again

Добрый день, Ramala!
>> Как преобразовать значение регистра в строку символов
>> чтобы их нарисовать..
P.S. макросы apush и apop просто пушают или попают (нравится мне это слово!:) ) всё, что прописано между < и >

Приложение:

Ответ отправлен: 04.11.2003, 19:01
Отправитель: never_again


Отвечает Artemy

Здравствуйте, Ramala!
; --------- cut ---------
paint:
xor eax,eax
mov eax,333
cmp eax,lParam
jnz A
; --------- end ---------
это вообще чо такое? :-[ ]
Есть два варианта:
1. Поменять MOV на AND.
2. Удалить строку с XOR и поменять JNZ на JE


Ответ отправлен: 05.11.2003, 13:35
Отправитель: Artemy


 Вопрос № 4425

Здравствуйте!
1)как работать с сом портом в вин хр какие винапи использовать.
в 98 моя прога работает.
2)как написать простой драйвер (запись в сом порт и чтение из него) в линуксе...
буду благодарен за любую информацию



Вопрос отправлен: 04.11.2003, 14:25
Отправитель: zag (charizmar@rambler.ru)

[Следующий вопрос >>] [Список вопросов]

Отвечает Bob Johnson

Здравствуйте, zag!
1. Через CreateFile, ReadFile и WriteFile.

* EMan1.5: ---===*** The game we play ***===---


Ответ отправлен: 05.11.2003, 21:22
Отправитель: Bob Johnson


Отвечает dr_dolphin

Доброе время суток, zag!
OpenFile, CloseHandle,ReadFile, WriteFile

Пока !

Ответ отправлен: 05.11.2003, 07:25
Отправитель: dr_dolphin


Отвечает Евгений Иванов

Здравствуйте, zag!
CreateFile.
* EMan: -=- Любовь существует! =-=


Ответ отправлен: 05.11.2003, 00:16
Отправитель: Евгений Иванов


 Вопрос № 4426

Доброго времени суток, эксперты!
Как можно получить значение какой-либо системной переменной, например, PATH или COMSPEC?
Заранее спасибо!



Вопрос отправлен: 04.11.2003, 17:03
Отправитель: AlX1024

[Следующий вопрос >>] [Список вопросов]

Отвечает Bob Johnson

Доброе время суток, AlX1024!
GetEnvironmentVariable.

* EMan1.5: ---===*** The game we play ***===---


Ответ отправлен: 05.11.2003, 21:23
Отправитель: Bob Johnson


Отвечает Artemy

Добрый день, AlX1024!
Для вин32 используй ф-цию API:
GetEnvVariableValue


Ответ отправлен: 05.11.2003, 14:03
Отправитель: Artemy


Отвечает dr_dolphin

Приветствую Вас, AlX1024!
Воспользуйся WinAPI:
GetEnviromentStrings, GetEnviromentVariable
До встречи...


Ответ отправлен: 05.11.2003, 07:27
Отправитель: dr_dolphin


Отвечает Евгений Иванов

Добрый день, AlX1024!
The GetEnvironmentVariable function retrieves the value of the specified variable from the environment block of the calling process. The value is in the form of a null-terminated string of characters.
DWORD GetEnvironmentVariable(
LPCTSTR lpName, // address of environment variable name
LPTSTR lpBuffer, // address of buffer for variable value
DWORD nSize // size of buffer, in characters
);
Parameters
lpName
Points to a null-terminated string that specifies the environment variable.
lpBuffer
Points to a buffer to receive the value of the specified environment variable.
nSize
Specifies the size, in characters, of the buffer pointed to by the lpBuffer parameter.
* EMan: -=- Любовь существует! =-=


Ответ отправлен: 05.11.2003, 00:17
Отправитель: Евгений Иванов


 Вопрос № 4427

Здравствуйте эксперты!
Мне нужно вывести точку в режиме 13h на языке Си.
Помимо этого мне нужна процедура рисования прямой на Си.
---
Где можно дастать библиотеку с этими функциями? Можно написать самому, но так лень в ручную все это делать:)
---
Использую visual C++ 6.0



Вопрос отправлен: 04.11.2003, 17:19
Отправитель: kuper (kuper@hotbox.ru)

[Следующий вопрос >>] [Список вопросов]

Отвечает Artemy

Доброе время суток, kuper!
> Мне нужно вывести точку в режиме 13h на языке Си
Я бы сделал так примерно так:
void Pset( int x, int y, char color)
{
asm { mov ax,0xA000;
push ax;
pop es;
mov ax,y;
xor dx,dx;
mov bx,320;
mul bx;
add ax,x;
mov bx,ax;
mov es:[bx],color;}
}
а насчет остального... чем тебя bgi сервис не устраивает?

Ответ отправлен: 04.11.2003, 17:37
Отправитель: Artemy


Отвечает never_again

Приветствую Вас, kuper!
переключаешься в режим 13Н и переносишь es на 0а000h
в di кладёшь точку (320*у+х)
точку выводишь командой stosb



Ответ отправлен: 04.11.2003, 18:50
Отправитель: never_again


Отвечает Евгений Иванов

Приветствую Вас, kuper!
Вот рисовка линии - изменить для 256 цветов проще простого!
(А это для 16-цветных режимов - из моей игры Калах)...
Ну а точку то вообще просто - умножай координату Y на 320, потом
прибавляй X.
Удачи!
;IN->w[KX],w[KY]-первая точка; CX,DX-вторая точка; b[INK]-цвет;
proc Line ;=l1 =======================================
pusha
mov bx,101h
mov ax,cx
sub ax,wptr [bp+KX-dat]
jnc m10l1
mov bh,-1
neg ax
m10l1:
mov cx,ax
push dx
mov dx,3CEh
mov ax,205h
out dx,ax
pop ax
sub ax,wptr [bp+KY-dat]
jnc m20l1
mov bl,-1
neg ax
m20l1:
mov dx,ax
line_all:
mov wptr [bp+Zip1-dat],bx
cmp cx,dx
jnc m25l1
mov di,cx
sub bh,bh
jmp m30l1
m25l1:
or cx,cx
jz m90l1
mov di,dx
mov dx,cx
sub bl,bl
m30l1:
mov si,dx
mov ax,dx
shr ax,1
m33l1:
add ax,di
jc m35l1
cmp ax,si
jc m37l1
m35l1:
sub ax,si
mov cx,ax
push cx dx
mov cx,wptr [bp+Zip1-dat]
jmp m40l1
m37l1:
mov cx,ax
push cx dx bx
pop cx
m40l1:
movsx dx,cl
movsx cx,ch
add dx,wptr [bp+KY-dat]
add cx,wptr [bp+KX-dat]
mov wptr [bp+KX-dat],cx
mov wptr [bp+KY-dat],dx
push bx ;Рисуем точку
mov bx,cx
shr bx,3
imul ax,dx,Xmax/8
add bx,ax
mov al,[es:bx]
mov dx,3CEh
and cl,7
mov ax,8008h
shr ah,cl
out dx,ax
mov cl,bptr [bp+INK-dat]
mov [es:bx],cl
pop bx ;
pop dx cx
mov ax,cx
dec dx
jnz m33l1
m90l1:
mov dx,3CEh
mov ax,0FF08h
out dx,ax
jcxz $+2
mov ax,5
out dx,ax
popa
ret
endp
;IN -> w[KX],w[KY]-первая точка;
;CX,DX-смещение знаковое до 2 точки; b[INK]-цвет;
proc LineTo ;=l2 =======================================
pusha
mov bx,101h
cmp cx,0
jnl m10l2
mov bh,-1
neg cx
m10l2:
cmp dx,0
jnl m20l2
mov bl,-1
neg dx
m20l2:
jmp line_all
endp
* EMan: -=- Любовь существует! =-=


Ответ отправлен: 05.11.2003, 00:18
Отправитель: Евгений Иванов


Отвечает Bob Johnson

Приветствую Вас, kuper!
А как ты на VC пишешь программы под дос?

* EMan1.5: ---===*** The game we play ***===---


Ответ отправлен: 05.11.2003, 21:24
Отправитель: Bob Johnson


 Вопрос № 4428

У меня такая проблема.
Программировал под Delphi и ТР7 LPT1 порт т.е. отпускал на выход 8 бит данных получал 4бита
Понадобилось более на шине ISA собрал схемку 16 бит на 16
теперь понадобился АЦП
Можно конечно примостить но это громоздко и много времени на отладку

Просьба:

Хотелось бы использовать АЦП звуковой карточки
если можете пришлите что куда и зачем



Вопрос отправлен: 04.11.2003, 18:00
Отправитель: Сергей

[Следующий вопрос >>] [Список вопросов]

Отвечает Евгений Иванов

Доброе время суток, Сергей!
Используй BASS.DLL
BASS is a sound system for use in Win32 (9x/ME/2K/XP) software. It's
purpose is to provide powerful (yet easy to use) sample, stream, MOD
music, audio CD and recording functions.
The latest version of BASS can always be found at the BASS website:
http://www.un4seen.com/
Бывай!


* EMan: -=- Любовь существует! =-=


Ответ отправлен: 05.11.2003, 00:19
Отправитель: Евгений Иванов


Отвечает Bob Johnson

Доброе время суток, Сергей!
Под винды - используй directsound, конкретно - IDirectSoundCapture.

* EMan1.5: ---===*** The game we play ***===---


Ответ отправлен: 05.11.2003, 21:24
Отправитель: Bob Johnson


 Вопрос № 4429

Вопрос немного не по теме рассылки. Есть ли подобная рассылка по Delphi с возможностью задавать вопросы и получать ответы. Конкретно хочется узнать как форматировать текст в компоненте Stringgrid и как получить ширину произвольного столбца. Заранее благодарен, может кто-то из универсальных программистов ответит.



Вопрос отправлен: 04.11.2003, 20:02
Отправитель: Сычев Юрий (ywizard@yandex.ru)

[Следующий вопрос >>] [Список вопросов]

Отвечает ASMодей

Доброе время суток, Сычев Юрий!
Ширину столбца можно получить из свойства ColWidths[index], а вот форматирование похоже можно изменить только при прорисовке текста StringGrid'а (это можно сделать при обработке сообщения OnDrawCell). А вообще для дельфи на RusFAQ.ru есть своя рассылка.

Ответ отправлен: 05.11.2003, 08:03
Отправитель: ASMодей


Отвечает Евгений Иванов

Добрый день, Сычев Юрий!
LVM_GETCOLUMNWIDTH
wParam = (WPARAM) (int) iCol;
lParam = 0;

// Corresponding macro
int ListView_GetColumnWidth(HWND hwnd, int iCol);

The LVM_GETCOLUMNWIDTH message retrieves the width of a column in report or list view. You can send this message explicitly or by using the ListView_GetColumnWidth macro.
Parameters
hwnd
Handle to the list view control.
iCol
Index of the column. This parameter is ignored in list view.
Return Value
Returns the column width if successful or zero otherwise.
* EMan: -=- Любовь существует! =-=


Ответ отправлен: 05.11.2003, 00:20
Отправитель: Евгений Иванов


 Вопрос № 4430

Уважаемые эксперты !
Вы не могли бы дать пример или хорошую документацию по работе с fat12.
В интернете я стоящего почти не нашел :(
Заранее благодарен.



Вопрос отправлен: 04.11.2003, 22:46
Отправитель: Дмитрий (leg_@rambler.ru)

[Следующий вопрос >>] [Список вопросов]

Отвечает never_again

Приветствую Вас, Дмитрий!
да кажись такая же работа. только файлов поменьше влазит 2^12 всего...

Ответ отправлен: 05.11.2003, 00:56
Отправитель: never_again


 Вопрос № 4431

Привет всем! Может кто-нибудь дать пример, определяющий находится комп в онлайне или нет. Если можно то с кодом... Заранее спасибо!



Вопрос отправлен: 04.11.2003, 23:34
Отправитель: Neo

[Следующий вопрос >>] [Список вопросов]

Отвечает Gibbel

Доброе время суток, Neo!
Попробуй подключиться к какому-либо серверу. Если не получается, значит в offline.

Ответ отправлен: 05.11.2003, 12:42
Отправитель: Gibbel


Отвечает never_again

Доброе время суток, Neo!
очень просто! кликни на Internet Explorer и если страница загрузилась значит комп on-line

Ответ отправлен: 05.11.2003, 00:51
Отправитель: never_again


Отвечает Bob Johnson

Добрый день, Neo!
Если ты ориентируешься на dial-up подключение (т.е. не по ЛС), то можно вызывать функцию RasEnumConnections, которая вернет все активные в данный момент соединения. Если же нужен именно контроль наличия интернета на компьютере независимо от типа подключения, то можно пробовать соединяться с каким-либо заранее известным адресом, типа microsoft.com. Вообще-то я давно видел в msdn что-то подобное, но не помню сейчас.

* EMan1.5: ---===*** The game we play ***===---


Ответ отправлен: 05.11.2003, 21:25
Отправитель: Bob Johnson


 Вопрос № 4432

ПРИВЕТ,пришлите,пожалуйста,программу:
Ввести с клавиатуры массив z(5)в котором каждый элемент состоит из двух символов.В каждом елементе округлить биты под четным номером и вывести двойное изображение на экран.



Вопрос отправлен: 05.11.2003, 12:46
Отправитель: АРЗУ РАГИМОВА (PLUTONKA@list.ru)

[Следующий вопрос >>] [Список вопросов]

Отвечает Artemy

Приветствую Вас, АРЗУ РАГИМОВА!
Разъясни плз, что значит округлить биты
и что такое двойное изображение :)

Ответ отправлен: 05.11.2003, 13:39
Отправитель: Artemy


Отвечает never_again

Доброе время суток, АРЗУ РАГИМОВА!
Девушка, милая. Вы ведь этот вопрос уже задавали...

>> Ввести с клавиатуры массив z(5)в котором каждый элемент >> состоит из двух символов.
Ass equ 5 ; array 'super' size
.model small
.stack 100h
.data
z dw Ass dup (?)
.code
assume ds:@data
start:
push @data
pop ds
pop es

mov di,offset z
mov cx,Ass
shl cx,1 ; becouse of word
L:
mov ah,01h
int 21h ; get ASCII
stosb ; put to array
int 21h ; get ASCII
stosb ; put to array
loop L
mov ah,4ch ; exit to dos
int 21h
end start
>> В каждом елементе округлить биты под четным номером
Ещё раз спрашиваю, солнышко, что вы подрозумеваете под округлением битов - замена на противоположный, обнуление или установка в 1 ?
>> вывести двойное изображение на экран
опять же, что вы имеете в виду? Если вывод на экран содержимого массива в двоичном коде, то как - побайтово, пословно или весь массив подряд?
Вот подпрограмма выводящая на экран 1 байт в двоичном коде:
; al = byte to print
print_bin_byte proc
mov cx,8
mov ah,02h ; print symbol
pbb_L:
xor dl,dl ;
shl al,1 ; put a msb to carry
adc dl,0 ; get a msb from carry
or dl,30h ; turn it to ASCII
int 21h ; print symbol
loop pbb_l
ret
print_bin_byte endp
Удачи, лапочка.

Ответ отправлен: 05.11.2003, 23:30
Отправитель: never_again


 Вопрос № 4433

Доброго времени суток.
Уважаемые господа эксперты.
При установке какого либо видеорежима стандартными функциями BIOS (int 10h) происходит сброс системы и компьютер перезагружается.
В свое время нашел в сети исходник, где перед установкой видеорежима производятся какие-то манипуляции со стеком (если не изменяет память), и в частности с регистрами BP и SP.
При использовании этого куска в своей программе вышеуказанная ошибка не возникала.
Но связи с некоторыми обстоятельствами драгоценный код был утерян (format c: и т.д.:)), а его назначение так и не понял, но без него программа не идет (см. выше).
Не могли бы вы привести пример такого кода с хотя бы скупыми комментариями, что и для чего.
Заранее спасибо.



Вопрос отправлен: 05.11.2003, 12:55
Отправитель: Сергей (intro@nikol.ru)

[Следующий вопрос >>] [Список вопросов]

Отвечает Artemy

Доброе время суток, Сергей!
Странно, у меня никогда таких проблем не было.
1. Посмотри какие резидентные программы висят на
int 10h и не грузи их.
2. Проверься на вирусы.
3. Попробуй:
push bp
mov bp,sp
...
но это скорее всего не поможет. Это вставляет С++
при входе в процедуру для извлечения передаваемых
параметров из стека.
Да... было бы неплохо посмотреть исходник.

Ответ отправлен: 05.11.2003, 13:55
Отправитель: Artemy


Отвечает Евгений Иванов

Здравствуйте, Сергей!
Всё должно работать!
Дело не в стеке и не в регистре BP.
Хотя регистр BP меняется многими функциями BIOS, так что будь осторожен!
Бывай!
* EMan: -=- Любовь существует! =-=


Ответ отправлен: 05.11.2003, 17:46
Отправитель: Евгений Иванов


Отвечает Bob Johnson

Добрый день, Сергей!
Такого быть не должно. Видеорежим меняется обычно так:
mov ax, 03
int 10h
mov ax, 4c00h
int 21h
при этом второй инт - это завершение программы. Если это у тебя будет глючить, то попробуй загрузиться в чистом досе (возможно какая-то левая резидентная программа перехватила 10-е прерывание и она уже глючит).

* EMan1.5: ---===*** The game we play ***===---


Ответ отправлен: 05.11.2003, 21:26
Отправитель: Bob Johnson



Форма отправки вопроса

Внимание!
Мы рекомендуем открывать рассылку в программе Internet Explorer 5.0+ или отправлять вопросы с сайта по адресу: http://rusfaq.ru/cgi-bin/Message.cgi.

(C) 2002-2003 Команда RusFAQ.ru.

 Персональные данные

Ваше имя:

Ваш e-mail:

Опубликовать мой e-mail в рассылке


 Вопрос и дополнение

Ваш вопрос:


Приложение (если необходимо):


Получить ответов:


 Выбор рассылки

Программисту
Assembler (32)
C / C++ (26)
Perl (3)
Builder / Delphi (22)
Pascal (20)
Basic / VBA (6)
Java / JavaScript (8)
PHP (13)
Криптография (9)
WinAPI (14)
Пользователю
Windows 95/98/Me (45)
Windows NT/2000/XP (61)
"Железо" (39)
Поиск информации (28)
Администратору
Windows NT/2000/XP (37)
Linux / Unix (16)
Юристу
Гражданское право (10)
Семейное право (7)
Трудовое право (7)
КоАП (7)

Отправить вопрос всем экспертам выбранной рассылки.




Задать вопрос | Регистрация эксперта | Поиск в базе | Чат | Форумы | Новости
Проект экспертов RusFAQ.ru | Фотоальбом | Virus.RusFAQ.ru | Администрирование
Профессиональная WEB-Студия B.I.T.


Яндекс цитирования
© 2001-2003 Россия, Москва. Авторское право: Калашников О.А.


http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу

В избранное