Could you please prompt me a good resource on Watcom assembly language?
What resources had you been using back in the old days (1993 or something) while learning Watcom assembly tricks for 32-bit mode.
Thank you in advance.
Levent at
Re: Watcom assembly language
if you know some tasm, masm, nasm etc. you can understand watcom assembler without much effort with included documentation (open watcom c/c++ tools user's guide) and some working code.
if you don't know well about x86 assembly, you should study some introductory material like: http://drpaulcarter.com/pcasm/index.php with this book you can learn assembly with nasm and gcc in windoze, linux, freebsd. but watcom example files exist.
michael abrash's graphics programming black book may also be useful if you're not so beginner. it is about performance coding with masm and tasm in dos 16-bit environment
Awesoken at
Assembler optimization tricks are specific to the processor, not the operating system or compiler. Here are some good assembler language links: http://www.agner.org/assem/ http://www.azillionmonkeys.com/qed/tech.shtml http://www.sandpile.org http://grail.cba.csuohio.edu/~somos/asmx86.html http://home.sch.bme.hu/~ervin/codegems.html http://x86.ddj.com/articles/sse_pt1/simd1.htm http://www.tommesani.com/Docs.html
Alex at
Thank you all for help.
from http://www.advsys.net/ken/build.htm: ... 08/18/1993: I compile my first program in Watcom C but I'm worried that I will have to learn all new assembly tricks for 32-bit mode ....
I was just wondering which resources had you been using back then in 1993 to learn all that new 32-bit assembly tricks.
Thank you in advance.
Awesoken at
I learned assembler mainly from the Intel 386 DX Microprocessor Programmer's Reference Manual, published in 1990. My dad happened to have a copy of it at work, so he borrowed it 'permanently' for me ; ) I used to bring that thing everywhere. The manual did not have many tricks though - I had to figure those out on my own, by studying the clock cycle counts, lots of daydreaming, and plenty of trial & error. The fun part of optimization is: if it doesn't work, you simply revert the changes.
Alex at
Thank you very much for your replies!
There is another thing that I want to trouble you with :)
Could you please prompt me some resources regarding low-level programming of hardware, such as video card, sound card, network, modem, keyboard, mouse. In other words some kind of resource that tells you what bytes to what ports should be written in order to for example set up palette, or play sound with sound blaster and so on.
How did you learn things like that back in the old days (1993 or something)?
Edited by Alex at
Awesoken at
video card: I had a few books. The one I remember most was "Programmer's Guide to the EGA and VGA cards" by Richard Ferraro.
sound card: For adlib music, I used the ProAudio Spectrum developor's toolkit. The ProAudio Spectrum was a competitor to Sound Blaster. It used the same music chip as the Sound Blaster. For Sound Blaster sound effects, I hacked around with the 0x22x registers, knowing they were probably laid out similar to the ProAudio Spectrum. Eventually, I got a single-shot sound to play. I didn't figure out auto-buffer mode (continuous playback) until I got my hands on the Sound Blaster toolkit (which was some time later).
network, modem: I didn't do much with this until 1994, when my job required me to copy Doom's tech. I bought books on the details of IPX, the serial port, and the AT commands for modems. There's a lot more to network coding than knowing what interrupts and I/O ports to use. You have to know how to synchronize the game state, optimize bandwidth, handle latency, etc.. I didn't get these things worked out until 1996.
keyboard, mouse: I used the book, "Advanced MS-DOS Programming", which had a list of interrupts, such as int 33h for the mouse. It also had examples on how to set up interrupt handlers for the keyboard & timer.
-------------
PC-GPE has all the information you are looking for: http://www.qzx.com/pc-gpe/ If this online reference had existed in 1993, I probably would have had a lot more competition ; )