The first version of my indexing software was on a TRS80 Model III, and I used Profile III Plus as the foundation.   This database package was quite flexible in that you could create your own screens, and reports, and it had templates for processing, rather than a full-programming language.   I found that its report-writer did not handle columns well, so I wrote a program in Basic which read the sorted file, and printed the index in columns.   This Basic program was available from the Profile menu, and the screens were customized to the point that you hardly knew that Profile was really running things under the covers.   The problem with this setup was that I could not distribute the software to others.   Others became interested, but they weren't about to pay $150 for Profile, thus came the next version. One problem with Profile was that it only showed one record at a time, during data entry, and editing.   Not only would you lose track of where you were, but this slowed scrolling up and down the file.   I decided that the next version would use a text-editor file as it's main storage and data-entry method. Writing a text-editor proved to be complex, but I had to do it, since I did not want to rely on potential clients word-processing programs.   Due to the variety of word-processing programs, it would be confusing to write documentation for my program, when it depended on an a outside program for its most critical function, the data entry.   Also, lots of word-processing programs store text with complex codes, which would make reading them with a Basic program more difficult.   I couldn't depend on folks saving their index data in "plain- ASCII" format, if their word-processing program provided for that option at all. A text-editor in interpreted Basic was, as you can guess, pretty slow, however, I discovered ZBasic, by Simutek Inc (later to become ZedCor), a Basic compiler for the TRS80.   This sped my programs up by 1000 percent, and it allowed me to protect my program code, since ZBasic produced a true executable file. ZBasic was an amazing compiler, especially since it ran on my 48k machine, and it was RAM resident, for lightning fast compiles.   It co-existed with the regular Basic interpreter, so you developed and debugged your program with the normal edit and run commands, and when you were ready to compile, you simply pressed the ZXC keys simultaneously to invoke ZBasic's compiler.   What's more, ZBasic supported sophisticated program chaining, so you could develope large overall-applications, plus it allowed inline machine language for super-quick functions (plenty of examples too), and direct access to DOS. The TRS80 version of IXM was called IX3, the 3 standing for the TRS80 Model III, since that's the only PC it ran on.   When I moved over to the IBM PC world, the M in IXM stands for MS-DOS (I spent millions on market research for these names), and that's the platform that IXM runs on. IXM was written in Turbo Pascal, and Turbo Basic. I chose Turbo Pascal mainly because it had an optional Quick-Sort module, complete with source code.   Its sort is still pretty fast today, even when compared to the new 32-bit software.   The Turbo compilers produced small executables, and thus all of IXM fitted nicely on a 360k 5.25 inch diskette, even with DOS on there, and had a fair amount of room left over for your index data.   Remember, when IXM debuted in 1986, there were still lots of folks with no hard drive, and some with only one floppy drive!   Today, even with IXM having undergone several rounds of enhancements, it still comes in at less than 500k of disk space, with sample data, and can be pared down to less than 400k. IXM is also very frugal with disk space when it comes to your index data.   I've stored over 80,000 index entries on just one 1.4 megabyte diskette.   IXM has an overall limit of 1 million entries, and it calculates how many entries you can sort at one time, based on your free diskspace at the time.   It tells you the sort capacity before you start the sort.   With some programs, you might sit there for a 20 minutes, only to be told that you dont have enough space to sort.   If you dont have enough space to sort your entire index all at once, you can break your sorting up into multiple "sort cycles".   This causes multiple passes of the index files, taking a little longer, but it works.   I can sort 15,000 entries on my 486/33, in one pass, in less than 2 minutes, to give you an idea. Return to IXM page |