Back in the 1980s IBM came out with the PC-XT. I said "WOW, I've got to get one of those." It had 512K of memory, as much as the IBM 360s I started on in 1965. I bought a PC-XT with the assembler and WordPerfect (cost over $5,000). I immeiately started witing the Data Access Method that I had developped on the IBM 360s in the early 1970s. I had some update ideas that would make it even better than the main frame version. While I was writing the main frame version, IBM came out with the 370 systems including VSAM which wouldn't run on the 360 so I was able to market the Access Method to run on 360s until they became obsolete. I even paid 50% on some of my income from it because it was cheaper for companies to buy my Access Method than to get a 370 for a long time. Unfortunately, IBM gives away VSAM with it's mainframe operating systems and I couldn't compete with that price despite the fact that mine was faster than VSAM.
I wrote "Advanced Data Access Method" (ADAM) on my PC-XT and started trying to get a software company interested in it. They all treated me like an obsolete dinosaur who didn't know anything about the PC world. I did do a Temporary Employee Data Base for Snelling & Snelling using it and the response time on the 286 PCs of the time was blink of the eye fast while most software of those times was "hit the enter key and go have a cup of coffee while you are waiting for a response" time.
ADAM is still not available commercially because I refuse to just give it away. It will handle key sequenced or entry sequenced "records" in both fixed and vaiable record lengths. The following is a list of the commands that you can issue to an ADAM file:
O - OPEN THE FILE
C - CLOSE THE FILE
B - SET SEQUENTIAL AT BEGINNING OF FILE
K - SET SEQUENTIAL AT KEY ARGUMENT OR RECORD NUMBER
S - SET SEQUENTIAL AT KEY OR RELATIVE RECORD NUMBER LIMIT
G - READ NEXT SEQUENTIAL RECORD
E - END SEQUENTIAL MODE
R - READ RANDOM RECORD BY KEY OR RELATIVE RECORD NUMBER
Q - READ RANDOM RECORD BY PARTIAL KEY
N - READ RANDOM NEXT RECORD
D - READ RANDOM PREVIOUS RECORD (BACKWARD)
X - ERASE RECORD (PHYSICAL DELETE)
F - READ RANDON FIRST RECORD IN THE FILE
L - READ RANDOM LAST RECORD IN THE FILE
P - REWRITE RECORD SEQUENTIAL
W - REWRITE RECORD RANDOM
A - ADD RECORD
The only problem with ADAM is that it will only handle records up to 10K and the file size is limited to 4G. It runs fine on Windows up to and including Windows 7. I am trying to find a good book on windows "heapalloc" (memory) and convert ADAM from 16 bit addressing to 32 bit addressing. that way ADAM will be able to handle a record as long as "War and Peace" and the file size will be viirtually unlimited.
Anyone got any ideas where I can good book on memory management for Win32?