Assembly Step-by-Step: First read this book in 1993
-
An 18,000 line driver in those days? That sounds rather extreme, for a driver. I mean, after Bill Gates had granted 640K of the 1M address space for application code, which should be enough for everybody, only 384K is left for the OS and drivers. Most instructions take up 2 or 3 bytes. Assuming that most of your 18,000 lines were instructions, then your driver would alone fill something like 10% of the total system space in RAM! Admittedly: I never studied half an OS. The memory limits were probably less constrained than in DOS - but the physical memory was still limited in those days, and for the most parts, drivers need to stay resident. Sidetrack: It is a long time since I heard to old professor emeritus'es referred to as 'TSRs'. Young people of today never learned that term. :-)
OS/2 Warp 3.0 and later supported a large amount of RAM in a linear, 32-bit address space. Our machines at the time had 16 to 64 MB. The driver was large because the hardware was complex and needed to support many operations in near real-time. As a result, a lot of what you might normally think of as application functionality was implemented in the driver.
Software Zen:
delete this;