Here is a sneak peek of a major project I have been working on for some time. Its a database "engine" for the Atari 8 bits, which uses a file format very similar (not quite the same) to that of xBase (dBase / Clipper). I'm calling the format ADB (Atari DB). It is designed to be a flat file, non relational database. There will be functions to get a specific record, save a record, delete a record (mark it for deletion with a pack function later). It is built using CC65, my C Library, and my unreleased DB routines which are currently WIP.
I havent worked out indexing, yet. I know how to implement it, but memory is a HUGE issue.
This is essentially a proof of concept to see if it could be done. I always wanted xBase for the 8 bit, now I'm getting close. A long while ago, I blogged about some work I did to read DBF (xBase/Clipper) files. Its here: https://unfinishedbitness.info/?s=DBF
The utility shown here is the maintenance utility. It is for creating database structures, viewing basic database information from the database file header (# records, last modified date, etc), and packing the file. Due to memory I will probably have to move the viewing and packing into seperate binaries. You can see its already quite large, so I may end up compiling for XL and using banked memory somehow.
After I get the basics working, I have a simple database app planned to exploit it.
I've made some more progress, but am putting it on hold a bit as I think through the most efficient (smallest) code for record access, and I've been neglecting the podcast research for Antic Files (been on E17 for a couple of weeks now).
All of the FILE menu functions work properly. I also found a 1-off error when creating the DB's where it wrote the field name string terminator to file when it should not have. And the VIEW/INFO menu item works. The size is a few hundred bytes over 30,000 now. I think the VIEW/BROWSE and EDIT/PACK functions will have to be their own programs, but I will try to get at least one of them incorporated.
I am a little disappointed in the current record size limitation. I may play with this in the future and see about increasing it to 512 bytes at least.
I'm going to write up something on my blog with what I have so far, but not release any code yet. I'll post a link later, which will also have a newer video.