Are all device drivers written in assembly language?
Would an assembly language programmer be able to hi-jack aany printers functions so that he might get native control over print head( x,y loc) upon page and ink squirt control?
Is assembly language programming a lucrative area of coding work?
Do assembly language programmers see themselves as somehow different in outlook and perspectives than many other 'higher level users'?
I am curious about this field of yours.
Wot can u do, Who r u .
cheers,
dave

> Are all device drivers written in assembly language?
No.
There isn't a lot that can't be achieved with 'C'. A small amount of asm in the bootstrap is usually enough to establish a viable 'C' environment for a limited subset of 'C' at least. If specialised instructions are needed (say to flush the cache), then they're typically wrapped in small functions which can be called from 'C'.

> Would an assembly language programmer be able to hi-jack aany printers
> functions so that he might get native control over print head( x,y loc) upon
> page and ink squirt control?
If that is the level of control that your simple printer device offers, then yes.
If you were writing software at a low level on the printer itself (and not your PC), then most definitely yes.

> Is assembly language programming a lucrative area of coding work?
It's very specialised.
You also have to update your skills every time a new processor (or variant) comes out if you want to stay at the top. You might know x86 inside out, but if I'm looking for MIPS, then you're no use to me.

Processors are powerful enough, and memory cheap enough that it's no longer cost-effective to employ hoards of assembler programmers to squeeze every last instruction and byte of memory to make it all fit and work.

> Do assembly language programmers see themselves as somehow different in outlook
> and perspectives than many other 'higher level users'?
Since I use both (on occasion), I see it more as a deeper understanding of what is really going on. I have no problem debugging at the assembler level for example, whether that assembler was hand-crafted or generated by a compiler.

The most recent trend for assembly is on embedded devices (like your cell phone, the thing under the dash in your car, GPS devices, new game systems, etc.)

Like Salem said, it is very specialized. Employers may or may not care if you know their specific machine, but they will care that you are capable with basic PC systems, like x86 and MIPS. If you are capable in several systems then you will have no problem picking up a specialized chip's architecture.

While jobs for people who know assembly are relatively rare, they do exist. They aren't necessarily glamorous though (i.e. they don't necessarily pay that much more than any other programmer job).

AFAIK.

It will only help you to know assembly. But you don't really need to spend a lot of time with it at the start if all you want is a high-paying job. People who are good at assembly are good because they enjoy it. Money is a nice side effect.

Thanks for the feedback guys.
Many years ago when I was a teenage computer geek I played around abit with the 6502? AppleII assembly. I was never much good, but the raw ground level mechanics of assembly or machine code really impressed me and I was in awe of the programmers who could get graphics and sound out of the apple.
How things have moved on since then huh!!!
Today the programming world seems vast and complex and unaccessible to me, but everynow and then I dabble in a bit of C or Visual Basic. I was gobsmacked by Visual Basic when it wouldnt allow me to directly put a value into a memory address- but equally amazed that 5 lines of code could speak out a text file!

The reason i asked about the direct control of printer was an old idea to directly hold the printhead of a printer in the hand, and wave it manually over a canvas - and verbally instruct the computer as to - print style colour etc.
Easier said than done? I assume the printer does a deal of processing these days and 'images' are sent to the printer rather than any direct mechanical control.

Cheers guys,
you do sound like a special breed.
Dave.

Oh, another dim question:
A couple of years back I tried to send pulse width information directly from the parallel port of an old thinkpad notebook. It didnt work. The pulse signals sent were often not what were recieved. Am I essentially correct in thinking that windows parallel processing - polling tasks might have had something to do with this? ? And my motor driver program was not always running the show?

> The reason i asked about the direct control of printer was an old idea to directly hold the
> printhead of a printer in the hand, and wave it manually over a canvas - and verbally instruct
> the computer as to - print style colour etc.
That's a nice idea, an electronic paintbrush.
It's certainly do-able, though personally I would use some kind of dedicated machine (based say on a PIC) where you have absolute control over everything that happens.

Oh, and printer heads get damn hot as well.

As you've already experienced with your PCM experiments, very high resolution control of the hardware is not practical in Windows, since it is not a real-time operating system.

Yeah, 20 years ago seems like the dark ages compared to now... Used to be you could know just about everything about computers... now it is an ocean of information.

Every printer nowdays has an onboard processor that manages all incoming data --I don't think you could gain direct access even if you wanted. The only trick is just sending it the right commands to print graphics. You might have more fun with something ancient like an old dot-matrix printer.

This article has been dead for over six months. Start a new discussion instead.