i've always accepted the fact that each software have the-
 ir own 4gb of memory space... i never ask myself HOW, unt-
 il today. So, my question today is:

 how is it possible that a computer that have 128 or 32MB -
 of RAM installed have 4GB (which is alot! more than 128MB)
 ???? how is that possible?
Posted on 2001-05-13 14:16:00 by disease_2000
There is an article in the MSDN : "Managing Virtual Memory in Win32" that explains virtual memory. Here is an extract
Windows NT employs a page-based virtual memory system that uses 32-bit linear addressing. Internally, the system manages all memory in 4096-byte segments called pages. Each page of physical memory is backed by either a pagefile for volatile pages of memory or a disk file for read-only memory pages. There can be as many as 16 separate pagefiles at a time. Code, resources, and other read-only data are backed directly by the files from which they originated. Windows NT provides an independent, 2 gigabyte (GB) user address space for each application (process) in the system. To the application, it appears that there is 2 GB of memory available, regardless of the amount of physical memory that is actually available. When an application requests more memory than is available, Windows NT satisfies the request by paging noncritical pages of memory—from this and/or other processes—to a pagefile and freeing those physical pages of memory.
Posted on 2001-05-13 15:32:00 by karim

 thanx.

 by the way, i got it to work now. still not perfect, but better
 than doing it by hand.

 command:
 ml.exe /Bl link16 $(InputPath) /Fo"Debug/$(InputName).obj"

 outputs:
 Debug/$(InputName).obj

 the problem is DEBUGING. It doesn't work... anyway, that's just
 for those who are interested in using vc to compile 16bit app.

 =example==========================================
       stack   segment para 'stack' stack

                 db 1024 dup(?)
      stack   ends

      code    segment para 'code' public
              assume  cs:code, ss:stack


  programname:        JMP  @begin

               @begin:mov     ax, cs
                      mov     ds, ax

                @2dos:mov     ax, 4c00h
                      int     21h

       code    ends
               end  programname
 ============================================
 build it and the output will list one ERROR. (whenever you see
 one error. then the compilation works PERFECTLY fine.
 but if you get more than one ERROR. then you have to check your
 asm source and see if there's any error in the code.
 for example, you'll get more than one error if you change:
 int 21h to int ab83
 :)

 farewell my friend...
Posted on 2001-05-13 18:39:00 by disease_2000
What error do you get ? Using the /Bl option, you link and compile in one step. It will not work if your project has several source files. You can specify 2 custom build step. One for compiling your asm files and one for building your executable. The first one uses ml.exe, the second one uses link16.exe. The only problem is to find the correct command line arguments.
Posted on 2001-05-14 03:23:00 by karim