Ron's Cornucopia


This site caters for programmers, especially enthusiasts of the assembly language, though it will contain some excursions into other  programming areas and also into mathematics. The focus is however predominately assembly programming, with particular concentration on graphics programming which benefits greatly from the fast execution speed which can be achieved with this efficient language. Code size is naturally very small, as opposed to the dreadful Windows bloatware that inexorably fills our hard disks. So, if you are a fellow enthusiast with some experience of the assembly language then you have found a "cornucopia" which covers both non-graphics and graphics programming. The non graphics, or general section will cover various interesting topics and the graphics section will range from basic pixel plotting, through coverage of the graphics primitives, to animation code and I'm sure you will find something to interest you. The site will be developed as I find the time, adding or replacing articles in a dynamic manner in order not to exceed the meagre web site space allocation. I hope you will enjoy your stay and visit it again. If so you might want to "bookmark" this site.

Win32 Programming using assembly

After many years of avoiding the Windows programming environment, because of the huge bloatware programs which seemed to be inevitable, I have relented and decided to see what can be achieved if one dispenses with the easy visual development tools like Visual "C", Visual Basic, Delphi etc and use instead the familiar and powerful tool - the assembler. Microsoft does not provided much in the way of documentation on how to create applications in this way, and we have to look to other quarters for the necessary information. We are fortunate however to have many enthusiasts in this area who have put in considerable ground work and made their findings available to the public domain. If you are starting out, I suggest you visit the official "home" of Win32asm which is maintained by Iczelion. This site has many links to other Win32 programmers, an indispensible tutorial and many links to other workers in the field. While at the site, download a copy of Steve Hutchesson's MASM32 kit; you will need this to help you build your applications. Also get a a copy of the Win32ASMdocumentation by Philippe Auphelle. It's an excellent introduction to the subject and informs you of what you need to know. If you are serious about this form of programming, you also need to obtain a copy of the Windows API documentation. This describes the many hundreds of functions, by which we communicate with Windows and control our application. You need to know the right syntax for each function and fortunately there is a comprehensive archive at the Borland ftp site, which you can download.

I went through this stage myself a little while back, not knowing where to start, or knowing what books were recommended. I eventually bought a copy of Charles Petzolds "Programming Windows" and whilst I had been apprehensive about buying it, as it is entirely in "C", I found it easy to read and was able to translate some of the examples into assembly without too much difficulty. I thoughroughly recommend this book, it's a mine of information on Windows programming, and my criticism's are it's high cost and huge size - some 1480 pages; it would have been far more manageable in two volumes. The outcome of all this is that I now have some basic demonstration programs in assembly. They have help me understand how to carry out the basic programming techniques for Windows applications and will be used later as building blocks for other programs once I understand what is possible. My intention is to gradually move into graphics programming within the Windows environment. Later still I intend develop some animation programs, but may have to adopt Direct Draw to achieve the faster processing that is required for such fast graphical applications.

As I am learning I will put some of the developed applications into my download area, so that fellow enthusiasts may obtain copies and also push forward in this interesting programming venture. There are already several graphics programs, which cover various aspects of programming and may be used as models for new programs. In fact much of the Win32 code has its origins in a "C" example which is converted into the appropriate assembly code. It is in this way that many of us learn and I hope you enjoy the code.

Assembly Language

Assembly language is of course a low level language. While it is not currently taught very much or advocated much for general programming, it is in my humble opinion the most powerful and flexible language for the true programmer who wants to get the best performance for a whole range of different applications. And for us enthusiasts, it is still an exciting language to use, as opposed to the "black box" scenario which exists with the visual languages such as Visual Basic, Visual C, or Delphi where the programming is just a matter of pulling down objects from a tool bar. That is not real programming, as the programming of the objects or functions is not under ones own control and these functions are more than likely created with a high language compiler and will therefore not be the most efficient one can achieve.

In order to get the most out of this site it is preferable to have had some exposure to assembly, as it not my intention (at this stage) to provide any tutorial material in assembly programming. My first priority will be to get the site going with examples of useful subroutines which will cover topics which are sometimes overlooked, or are incompletely covered in the standard textbooks or other archives. As with most things on the Internet there is also a wealth of information pertaining to assembly, either in newsgroups or other web sites. My page assembly links will hopefully give you a start in the right direction, but do use some of the search engines, such as Infoseek, Yahoo or Hotbot if you want to find information on a specific topic.

Searching for information

Just as there are numerous sources of information, there are many ways of searching for and retrieving such data. I'm sure most of you are aware of the many search engines available through the usual browsers and I will therefore only mention a few methods which might augment your existing armoury; these are listed below. One tool I should also mention is "Go!Zilla". This is a powerful FTP file retieval tool which integrates well with your existing browser and its available for download at the Go!Zilla web site.

Search methodDescription
AllTheWeb   A Norwegian search engine which claims to be quicker and more thorough than its rivals. I confirm that this certainly seems seems to be the case.
Dogpile   A very powerful multiple engine search - despite the name !
Google   A new and very effective search engine.
FTP search V4   A convenient and fast FTP search engine.
Email Address Search   Search for an email address using available information.

Ron Thomas 's Win32Asm WebRing site.
[ Previous | Next | List ]

I can be contacted by email at

This page was last updated on - 5/12/2005
Copyright © - 7th Nov 1998 - Ron Thomas.