Definitely sounds like DMA is the problem...
To elaborate just a little, make sure you go to the "Primary IDE Controller" in Device Manager to find the DMA settings under "Advanced Settings".
As far as the swap file goes, you shouldn't need to rely on the formula 1.5 times the amount of RAM (or 2.5x as others recommend). That system went way back to the days of 8MB and 16MB of RAM. It hardly applies in todays system (with more than 128MB), unless you're configuring a server.
With 512MB of RAM, I wouldn't waste more than 256MB for the swap file. At the very most, assign 512MB to the task. Anything more will probably never get used. ~cdogg
"We park in driveways but drive in parkways?"