What is klovdb? ----------------- klovdb is a crude database program that stores and interrogates the 'Killer List Of Video-games' (KLOV). Why was klovdb written? ----------------------- My KLOV print out was starting to look a bit worse for wear and there are times when a simple computer search through the KLOV isn't enough. I have used it to help identify unidentified logic boards. Also for those days when you say to yourself "I wonder how many black and white multi-player games Atari made before 1979?" ;-) How do I compile it? -------------------- I have only compiled it on 2 platforms with 3 compilers, so you may well have problems. I have tried to make it somewhat compiler independent, and it should be compatible with non-ANSI compilers. %-6 I also took out the code which used stdarg.h in the hope that that might make it more portable. Anyway these are the ways I have compiled it. % gcc -O -Wall -Wstrict-prototypes -o klovdb klovdb.c parse.c game.c and % cc -O -o klovdb klovdb.c parse.c game.c hopefully something like this may work for you. There is a simple makefile if you have 'make'. How do I run it? ---------------- % klovdb KLOV where KLOV is an ASCII file containing just the games lists. You can pass klovdb several files or even none at all. VVVVVVVVVVVVVVVVVVV IMPORTANT VVVVVVVVVVVVVVVVVVVVVVVVV Comments, text, mail headers etc are only allowed after a '[', so make sure any extra stuff in the file is commented or stripped out. ^^^^^^^^^^^^^^^^^^^ IMPORTANT ^^^^^^^^^^^^^^^^^^^^^^^^^ How do I so a search? --------------------- Simple, type 'find' then fill in the fields you want to search on (hit return if you don't want to specify a field). > find <- the find command Game Name : Date :<79 <- before 1979 Company :atari <- name of company (case insensitive) # Players :>=2 <- greater than or equal to 2 players # Produced: Text : Flags? :y <- we want to check some flags 3D : BnW :y <- Black and white Laser : Vector : Pinball : note: When klovdb prompts for flags, 3D, BnW, etc etc. hitting return means NO, any anything starting 'y' or 'Y' else means YES. "How many black and white multi-player games did atari make before 1979?" ------------------------------------------------------------------------- Basketball {Atari '78 BnW 2P } Football {Atari '78 BnW 2P } Gran Trak 20 {Atari '74 BnW 2P } Pong Doubles {Atari '73 BnW 2P } Sprint II {Atari '76 BnW 2P } Gran Trak 20 {Atari '74 BnW 2P } Pong Doubles {Atari '73 BnW 2P } [ 1242 games checked 7 matches ] So now you know. What commands does klovdb understand? ------------------------------------- ? <- show help info. Help <- show help info. Brief <- Don't print out descriptions of games (default). LONg <- Print out full descriptions of games. Find <- Search database Search <- Search database Quit <- quit out of klovdb Exit <- quit out of klovdb Append <- add another KLOV file to the database Read <- Ditch current database and read a new one. LOG <- send results of FIND/SEARCH to a specified file. All the commands above can be shorten provided they remain unambiguous (the significant part of the command is shown above in upper case). How are the searches done? -------------------------- All the searches are case insensitive. Space characters are significant. If a search entry contains a condition then a comparison is done between the first number in the search field and the first number in the game record. The following conditions are legal. <= less than or equal < less than >= greater than or equal => greater than or equal > greater than <> not equal != not equal = equal == equal Can I copy and/or change it? ---------------------------- Sure. I've put it under the GNU GENERAL PUBLIC LICENSE so we are all guaranteed freedom to copy it and change it. Have a look at the license if you want all the gory details. Having said that, if people find it useful and we want to keep the number of different versions down I'll be happy to add the enhancements and fix bugs etc. What needs adding? ------------------ 1) A nice graphical interface. If I had added one, the chances of anyone else being able to compile it are even smaller they already are. 2) At present all the conditions have to be met for a game to match (ie logical AND). I guess it would be nice to be able to OR the conditions. 3) Code comments. 4) I don't know how fast it runs. All operations are almost instantaneous on a Sparc 10. :-) I'd be happy to work on some speed-ups if it runs slowly on other machines. Disclaimers ----------- The code almost entirely uncommented and is not really a master piece. If I was going to write the thing again (which I'm not) I would have done things quite differently. The whole thing was knocked together in a couple of evenings so I wont be surprised (or upset) if anyone finds any bugs. I guess you could mail me if you want a fix. The KLOV is a pain for a computer to parse so they may be a few strange entries that I missed. Long live the KLOV. *** John Keay (keay@tiuk.ti.com) ***