home *** CD-ROM | disk | FTP | other *** search
-
- SCDB.DOC SCDB version 1.0c Achim Gorski
- Mar 1995
-
- SCDB, (c) Copyright 1994-95, Achim Gorski. All Rights Reserved.
-
- This software may be distributed for non-profit only. This software
- is FREEWARE, but NOT FOR COMMERICAL USE! This program is provided "as
- is" without warranty of any kind. All risks involved using this
- program is entirely yours. The author assumes no responsibility or
- liability whatever for any damage or dataloss caused by using SCDB.
- Although everything has been done to make sure the program is fully
- functional, the author cannot guarantee this for a 100%.
-
- Achim Gorski
- Starenweg 27
- 50997 Koeln
- Germany
-
-
-
-
- Donations welcome but not solicited.
-
-
-
-
- SCDB - a Sound Carrier DataBase.
-
- SCDB is based on isam (indexed sequential acces method) and uses a
- multilevel index structure.
- If you search for Artist/Title and you know the first characters of
- Artist, SCDB should find this entry in N/72 comparisons and (N/36)+1
- for a unsuccessful search.( N = number of entries) Ok, this is not
- binarysearch or treesearch but it was the easiest and fastest way to
- realizse SCDB.
-
-
- ----------------------------------------------------------------------
- -- AMIGA: Don't use the Commodore-shell, 'cause it filters CTRL-C/D --
- -- OTHER: Some shells may filter Xon/Xoff CHRs : ^Q ^S ^X ^C --
- -- Try to disable any filter or SCDB won't work correctly. --
- ----------------------------------------------------------------------
-
- ALPHA (DEC), INTEL, ...
-
- !! THE DEFAULT "Music.SDB" SCDB-DATABASE IS A 32 BIT BIG-ENDIAN !!
- !! BYTE ORDERING DATABASE. USE THE BUILD-IN CONVERT FUNCTION !!
-
- Some Processors (e.g. Intel & National Semiconductor) use
- little-endian byte ordering! The default SCDB-database is saved in
- big-endian byte ordering.
-
- Little-endian byte ordering processors address the lowest byte with
- increasing addresses.
-
- Example:
-
- ADDRESS|00|01|02|03
- -------+--+--+--+--
- VALUE |AA|BB|CC|DD <- Big-endian byte ordering
- |DD|CC|BB|AA <- Little-endian byte ordering
-
- ----------------------------------------------------------------------
-
-
-
- Edit the files 'Category', 'Label' and 'Type' for your own
- configuration. Maximum possible entries in 'Category'(max. 30 chars
- per row) and 'Label'(max. 38 chars per row) are 99. Maximum possible
- entries in 'Type'(max. 11 chars per row) are 31. These files should
- be in the current directory (only 'Type' has a build-in default
- configuration). After changing 'Type' you should reorganize your
- database or you will get wrong statistics!
- The default 'Music.SDB' SCDB-database will be read if no argument is
- given! Do not read this document (waste of time)! Use the program!!
-
- Try 'SCDB -h'.
-
-
- Short INFO about SCDB:
-
-
- COMMAND MODE
-
-
- CTRL-?
- Help
-
-
- CTRL-F
- Find Artist/Title. Try TAB-completion (once: ARTIST-completion,
- twice: TITLE-completion). The function ignores every
- none-alphanumeric-chars !!
-
-
- F
- Find next Artist/Title
-
-
- CTRL-L
- Log record IN or OUT. Ok, you loaned it - this should change
- LOCATION. Your chance to change it.
-
-
- L
- List loaned records.
-
-
- V
- View index ON/OFF
- If index ON:
-
- KEY ACTION
- ----------------------------------------------------
- 7 jump to top of page
- 1 jump to bottom of page
- SPACE/DEL one page forward/backward
- arrow right/left one page forward/backward
- arrow up/down or +/- one line forward/backward
-
-
- --Cherrymoon <--.
- +---Trax II | *L 10/1994 Vinyl-Maxi
- ^ | ^ ^ ^
- | `-- artist | | |
- `------------ title record is loaned --´ | |
- release date -------´ |
- type --------------´
-
-
- S
- Searches for the string found in 'See also'
-
-
- CTRL-S
- Statistics
- TT: 0y 0d 0h 0m 0s (Total time of Total Time) -:))
- | | | | |
- | | | | `-- seconds
- | | | `----- minutes
- | | `-------- hours
- | `----------- days
- `--------------- years
-
- CTRL-P
- Print current entry to SCDB_OUTPUT. If you want to use this
- functions, you should set the enviroment-variable 'SCDB_OUTPUT'.
-
- UNIX : set SCDB_OUTPUT=value
- export SCDB_OUTPUT
- (depends on your shell)
- "value" is the printer-device!
- BSD Unix: look at /etc/printcap
- for the printer-device!
- AMIGA: setenv SCDB_OUTPUT="prt:"
- OTHER: Read your system manual !
-
- SCDB_OUTPUT should be an ASCII-printer or a filename.
-
-
- P
- Print current entry (short output!).
-
-
- CTRL-R
- Reorganizes the database. You should do this if you update from an
- old to a new SCDB-version. Regorganize will correct all statistics,
- remove trash and sort the database on disk. Never reorganize a
- database if you run SCDB twice or more on the same database! This
- cost only your time and will reorganize nothing.
-
-
- CTRL-H
- Hunts for specific information in the whole database. This
- function will need some time ! TAB completes Artist, Title, Label,
- Type, Category. It is possible to type an Artist-name in the
- Title-field. The result is the first title of the given Artist-name.
- Example:
- Title: boo<TAB>
- ...
- Title: 24 Hours
-
-
- CTRL-W
- Reads the whole database and creates a LIST of all entries which
- match with the given key(s). Hunts for specific information like
- CTRL-H. The output goes to SCDB_OUTPUT (look at CTRL-P). '**' in
- Artist-field creates a list of the whole database.
-
-
- W
- Reads the whole database and creates a LIST (short output!). '**'
- in Artist-field creates a list of the whole database.
-
-
- CTRL-O
- Prints a CassCover of selected entries to SCDB_PRINTER. While
- choosing entries it is possible to use every function of SCDB (e.g.
- FIND, HUNT,...). If you want to use this functions, you should set
- the enviroment-variable 'SCDB_PRINTER'.
-
- UNIX : set SCDB_PRINTER=value
- export SCDB_PRINTER
- (depends on your shell)
- "value" is the printer-port!
- BSD Unix: look at /etc/printcap
- for the port name!
- AMIGA: If your printer is on the parallel-port:
- setenv SCDB_PRINTER="par:"
- OTHER: Read your system manual !
-
- Your printer should support IBM/Epson printer commands and character
- sets and should not set to stay in panel style at power-up.
-
-
- CTRL-U
- Print label. Output goes to SCDB_PRINTER. You should use
- self-adhesive labels (101,6 x 35,7 mm).
-
-
- CTRL-^
- Import ASCII delimited. The IMPORT-function is just a by-product
- of my own imported database. So don't overrate it!
-
-
- CTRL-\
- This function let you exchange SCDB-databases from different
- systems. It is possible to import any SCDB-database from any system
- to any system! Little/Big-endian byte ordering or 32/64 bit(or more)
- systems - no matter ! This function imports all.
-
- Example:
- [Input:] misc/alpha/Music.SDB
-
- This will import a 64 bit little-endian byte ordering database.
- Comment: importing a 64 bit database to a 32 bit system works if the
- database is less then 4 Gbytes (2^32)!
- This function also imports old SCDB-databases. Old SCDB-databases are
- less or equal version 1.0c (02.03.95).
-
-
-
- ... all other functions should explain itself.
-
-
-
- EDITOR MODE
-
-
- Functions should explain itself. :-) (lazy programmer) (Rule:
- writehowyalikeit!)
-
- While editing Tracks it is possible to press TAB for Artist completion
- (only if Artist is 'Various Artists' and only in the second half of a
- string).
-
-
- No further decription at this time: Just use it. Hit the keys and
- you will see the results.
-
- FUTURE: Any ideas??: send me mail.
-
-
-
- ----------------------------------------------------------------------
-
-
- FOR THOSE WHO WANT TO KNOW MORE ABOUT THIS DATABASE:
-
-
- Some information about the input-fields:
-
- Field name Attributes Chars Comment
- --------------------------------------------------------------
- Artist Capitalize Words 49 Minimum: 1 char !
- Title Capitalize Words 49 Not after "'"
- Label Capitalize Words 38 Not after "'"
- Catalog Upper case 26
- See also Text 67
- Type Text 11
- Released Numeric 7 (?, mm/yyyy or yyyy)
- Number Numeric 2 0 < x < 100
- Tracks Numeric 4 0 < x < (99*Number)
- Category Capitalize Words 30
- Location Text 23
- Barcode Numeric 18
- Comment Text 1368
- TRK Capitalize Words 68 Not after "'"
- Time Numeric 5 (mm:ss)
-
-
-
- THE STRUCTURE OF THE MAIN-FILE:
-
-
- pos length[byte] field comment
- ---------------------------------------------------------------------
- ( <= Version 1.0c (02.03.95): )
- ( 0. 1 ID only once in the database )
- ( always 8 )
-
- >= Version 1.0d:
- 0. 3 ID only once in the database
- (always in Big-endian byte
- ordering!!) Looks like that:
- struct scdb_id {
- unsigned int ID_1:4; /* ID_1: always 8 */
- unsigned int endian:1; /* 1/0 big/little-endian */
- unsigned int longs:6; /* bits=((longs+1)*4*8) */
- unsigned int ID_2:7; /* ID_2=ID_1+endian+longs*/
- unsigned int :6; /* Future */
- };
-
-
- 1. unsigned long size of record
-
- 2. 1 length
- max. 49 Artist min. 1
- 3. 1 length
- max. 49 Title
- 4. 1 length
- max. 38 Label
- 5. 1 length
- max. 26 Catalog
- 6. 1 length
- max. 11 Type
- 7. 1 length
- max. 7 Released
- 8. 1 ..
- max. 2 Number min. '1'
- 9. 1 ..
- max. 4 Tracks min. '1'
- 10. 1 ..
- max. 30 Category
- 11. 1 length=23 length always 23
- 23 Location
- 12. 1 length
- max. 18 Barcode
- 13. 1 ..
- 11 Loaned on
- 14. 1 ..
- 8 Total Time
- 15. 1 ..
- 11 Rec-Date
- 16. 1 ..
- max. 67 See also
- 17.
- 18 lines comment
- saved in the known format: length,string,length,string,....
- \__1 \__max.76
- 18.
- Number of tracks per disc per record.
- Example(VA-Club Classics Volume 1):
- Number=2, Tracks=23; something like that should be saved:
- 0b 0c
- 19.
- length,track-string,length,time,...... (for every track)
- \__1 \__max.68 \__1 \__max.5
-
- ...next record -> goto 1.
-
-
- Index-structure is a little bit different (build your own).
- (I really hate writing documents ..^@#]´`%$`~/:@}[§"!}+..)
-
-
-
-
- ----------------------------------------------------------------------
- | | | | | | | | |
- | | | | | | | | |
- | | | | | | | | |
- ! ! SAVE THE VINYL ! !
- | | | | | | | | |
- | | | | | | | | |
- | | | | | | |
- | | | | |
- | | |
- |
-