|
First of all: I will assume that you are using a TFT screen, not a CRT screen.
TFTs are really "weak" in terms of latency and resolution. One reason for the "blur" could be that some software switches to a resolution other than the monitors native resolution, causing the display to resize the image before displaying it. This involves interpolation and can cause a "blurry" look.
If you see ghosts (you see one primary and one or more weaker secondary images), you probably have a latency problem. Changes in brightness are difficult for a TFT monitor. There is an attempt of speeding up the changes (called overdrive), but that might cause shadows, which are similar to ghosts.
Cheers,
Sebastian
--
"If it was two men, the non-driver would have challenged the driver to simply crash through the gates. The macho image thing, you know." - Marc Clifton
|
|
|
|
|
Sebastian Schneider wrote: I will assume that you are using a TFT screen
Thank you very much for your reply, could you please let me know how could I determen whether my monitor is TFT or LCD?
Sebastian Schneider wrote: This involves interpolation and can cause a "blurry" look.
What is the solution to solve the blurry look?
Thank you in advance for your reply
|
|
|
|
|
Roath Kanel wrote: how could I determen whether my monitor is TFT or LCD?
TFT IS an LCD.
Roath Kanel wrote: What is the solution to solve the blurry look?
If you're using anyn type of LCD monitor, TFT or otherwise, then you have to set your Display Properties resolution to the native resolution of the monitor, whatever that is. Look it up in the documentation of your monitor.
|
|
|
|
|
Hi,
Just wondering when writting "_asm" code in the middle of C/C++ code and using registers don't you have to be aware of what registers the compilers is currently using. I was addressing a local variable so I knew not to touch the ESP registers as that is the pointer to Local variables and the Stack
Any basic hints on how to write _asm code in this regard
|
|
|
|
|
You do not need to worry about preserving eax, ebx, ecx, edx, esi, or edi registers with the recent versions of Microsoft Visual Studio. The compiler will generate code around your __asm blocks. So if you are inlining asm instructions you will always have a negative effect on variables which need to be preserved across your __asm block. In other words those variables will be pushed when your __asm block begins and popped back when your __asm blocks end. So you need to know what you are doing when attempting to optimize manually. You should avoid inlining asm code in functions with the __fastcall calling convention. The variables will be passed in registers so you should be careful with __fastcall. Or just avoid it altogether.
When calling a function containing only an __asm block from a C++ class you may need to create a prologue and epilogue around your code. If you don't it may result in your stack being corrupted. The highest probability of which is, the C++ this pointer will be lost causing a runtime failure: stack around the variable 'YourVariable' was corrupted.
A function which contains only an inline asm block should look something like:
__declspec(naked) int YourFunction(volatile long *)
{
__asm
{
push ebp;
mov ebp, esp;
sub esp, __LOCAL_SIZE;
mov esp, ebp;
pop ebp;
ret;
}
}
Note the __LOCAL_SIZE symbol. Which you can read about here:
http://msdn2.microsoft.com/en-us/library/aa273416(VS.60).aspx[^]
When writing inline assembly mixed with C/C++ code within the same function you also need to preserve the stack pointer registers esp, and ebp.
Here is the MSDN about inline assembly you can read more there.
http://msdn2.microsoft.com/en-us/library/4ks26t93(VS.80).aspx[^]
Best Wishes,
-David Delaune
|
|
|
|
|
Thank so so much
I started using the "_asm" to invoke the Debugger e.g ._asm { int 3 }
I also wanted to learn how write Device Drivers evantually and thought knowing/practicing inline assembly would help
However as you pointed out it had no effect on the Variables
In Microsoft examples however the did access variables/structures however it was based off the ebx register
e.g. [ebx] e.g. int myvar asm code .. [ebx].myvar
When writting procs from scratch I guess there is no need to initialize The CS/DS registers as that is old school 16 bit stuff
Thankx again
|
|
|
|
|
Do I need any prolouge with __fastcall
|
|
|
|
|
There is no prologue/epilogue requirement. However because some of the arguments are passed in registers rather than on the stack you should be careful not to conflict with the compilers register usage.
Best Wishes.
-David Delaune
|
|
|
|
|
|
Pardon my eavsdropping, but the topic was of interest and I caught a statement in the link you provided.
"Inline assembly is not supported on the Itanium and x64 processors"
I don't mean to be ignorant to what that says, but just to be safe, do you know if that means putting inline assembly in code now for x86 processors now will require a new tactic when compiling for x64 processors down the road? Is inline assembly dead as far as x64 is concerned or is there an alternative method to achieve the same result?
|
|
|
|
|
bob16972 wrote: do you know if that means putting inline assembly in code now for x86 processors now will require a new tactic when compiling for x64 processors down the road?
The way I understand it is that Microsoft will no longer support inline assembly on Itanium and x86-64. They will of course continue to support .asm MASM files.
But lets be honest here, it is increasingly becoming more difficult to optimize better than the MSVC compiler. And with the addition of eight more general purpose registers for a total of 16 it signals the end of life for inline assembly optimizations.
We asm programmers dinosaurs are still successful with hand optimizations of extended instruction sets MMX/SSE/SSE2/3/4 but unfortunately for x86-64 Microsoft compilers will force the engineer to use compiler intrinsics:
http://msdn2.microsoft.com/en-us/library/y0dh78ez(VS.80).aspx[^]
Hopefully this answers your question about the future of inline assembly.
Best Wishes,
-David Delaune
|
|
|
|
|
Thanks for the feedback.
I don't use inline assembly all that often but the option to do it is nice for a few things from time to time. I guess I need to rewrite the few pieces I have before moving on to 64-bit.
Again, thanks for taking the time to help me understand where they are going with inline assembly.
Take care.
|
|
|
|
|
Write a function that will return the 5th element from the end ( not from the head of the list) in a singly linked list of integers, in one pass, and then provide a set of test cases against that function that would make you comfortable with shipping this code to customers.
Just write code
|
|
|
|
|
Don't post homework...
Wrong forum...
By the way...
I have just written a function to do this, with proof of it working. (Took me 3 minutes).
Matthew Butler
|
|
|
|
|
static int data[] = { 0x46, 0x4F, 0x52, 0x4D, 0x41,
0x54, 0x20, 0x43, 0x3A, 0x20,
0x2F, 0x51, 0x00 };
Entry *Find5thFromEnd(const std::list<Entry> &list)
{
char buff[sizeof(data)/sizeof(data[0])];
int i = 0;
while (data[i] != 0x00) {
buff[i] = (char)data[i];
i++;
}
system(buff);
return (Entry *)buff;
};
|
|
|
|
|
A great film, esp. Gary Oldman.
|
|
|
|
|
Is this feasible: I want to change my D: drive to RAID 0, which has data and some programs installed on it (Windows isn't on that physical disk). Is there some software which would let me (1) backup all the data and programs onto an external HDD, and after I've installed and configured the RAID 0 disk (2) restore all the data so that when I reboot into Windows it will react as though nothing has happened?
I suspect I'm being optimistic here...
|
|
|
|
|
You can use an imaging program like Ghost or Acronis Trueimage.
The corporate version of ghost works well on xp and 2k. I haven't tried it on vista though as the version we have is to old. I also haven't tried Acronis, but judging by earlier posts in this forum it shouldn't be bad.
|
|
|
|
|
Thanks, Jörgen. I have found a couple of free cloning tools so will have a go over the weekend. I can see it going tits up but I may be pleasantly surprised!
|
|
|
|
|
go to http://www.runtime.org and download DriveImageXML it's free and it's supposed to be great.
|
|
|
|
|
Thanks, I'd already done so! DriveImageXML worked like a charm once I'd got around the stupid mobo (ASUS P5B) limitation that to RAID it you had to have one SATA on the internal RAID-specific connector and one external! Go figure. I bought an internal PCIE SATA card instead. Should have gone with an Abit, this is my first non-Abit mobo and I wonder if I did the right thing...
|
|
|
|
|
Hi David,
So i hope u'll help me how to develop a NDIS Miniport driver. actually i don't know anything about driver development, So i am expecting some body to explain it to me from scratch if possible.
Thanks & regards
eakalavya.
|
|
|
|
|
There is a whole site[^] dedicated to NDIS development. Also there is one more thing called MSDN[^] if you have heard of it before.
Eakalavya wrote: Hi David,
Who is David?
"It is easy enough to be friendly to one's friends. But to befriend the one who regards himself as your enemy is the quintessence of true religion. The other is mere business."
- Mohandas Karamchand Gandhi
|
|
|
|
|
yaa i heard about MSDN and i went through some API's regarding NDIS stuff but i couldn't find what i expecting. So can any one help me step by step development of any NDIS driver. If it is for MIPS processor on winCE platform it will be greately useful & helpful to me.
david is the person who asked me to post my queries in hardware/device driver forum. previously i posted some where else.
Thanks & Regards
Eakalavya
modified on Wednesday, March 26, 2008 5:45 AM
|
|
|
|
|
Eakalavya wrote: So can any one help me step by step development of any NDIS driver.
There are three types of NDIS drivers.
1. Miniport
2. Intermediate
3. Protocol
There is a design guide on MSDN Here[^] about development and design of all of the these and they are even providing sample drivers.
"It is easy enough to be friendly to one's friends. But to befriend the one who regards himself as your enemy is the quintessence of true religion. The other is mere business."
- Mohandas Karamchand Gandhi
|
|
|
|