ALYSSA DATABASE V1.6
====================
(C)1990/91 Designed & Programmed by Julian Cassin
Julian Cassin
21 Victoria Road
Northcote
Melbourne 3070
AUSTRALIA
This program remains the copyright of Julian Cassin. It has NOT been
placed into the public domain but this version may be freely copied
amongst AMSTRAD CPC users for their own personal use as long as it is
complete. IT MUST INCLUDE THE FILES:
ALYSSA.BAS, ALYSSA.BIN, ALREADME.BAS, ALYSSA.DOC, ALYSSA.SCR,
as well as the files CONVERT.CHN, LABELS.CHN, EPSON.PRN, CITOH.PRN.
No part or parts of the database or its documentation may be modified
or SOLD without prior written permission of the copyright holder.
This program has been extensively tested by the author and contains no
known bugs. That is not to say bugs don't exist, but the author holds
no liability or responsibility to the users or any other persons or
entities for any loss or damage caused or alledged to be caused
directly or indirectly by this product.
Public Domain libraries can feel free to contact the copyright holder,
Julian Cassin, for WRITTEN permission to distribute or use this product
(it may be exactly what a PD library needs to keep track of their
software). If buy any chance it is distributed by a PD library, no
price above $10 Australian (3 pounds) may be charged including the disc
it is distributed on!
Please report any copyright violations to the author at the above
address. Thankyou.
Contributions:
Although you are not obligated to do so, if you like this program and
find it at all useful, feel free to send any contributions or comments
to the copyright holder, Julian Cassin, of the above address.
Thanks:
- To Bob Harding for permission to use and distribute his disc
label printer.
- To Peter Herweijer for permission to use his FASTTEXT patch.
-----------------------------------------------------------------------
ALYSSA DATABASE 1.6 USER DOCUMENTATION
======================================
* Existing users: I am tired of explaining compatability problems between
different versions of Alyssa due to people NOT reading the updated
documentary file when they get an updated version! Please READ the
section on differences first which should help to solve the problems
before complaining. Should there still be a problem, I can then solve
it.
Minimum Hardware:
Any Amstrad CPC with at least 128K RAM.
At least one floppy disc drive.
This program was written especially for the Amstrad computer user
(Enthusiast, Hobbyist, or Gamesplayer) who needs to efficiently and
easily organise their software lists.
Features include:
Access to background ROMS (RSX support).
Chaining of external subprograms.
Compare two software lists.
Disc label printer.
Fast Searching.
File conversion utility.
Full Amstrad memory support (upto 576K RAM).
- 1872 records on a 128K system.
- 7488 records on a 320K system.
- 8384 records on a 384K system.
- 14976 records on a 576K system.
Print normal or condensed (two columns).
Order by any field.
Works with the majority of 80 track Drives.
Updated versions to come.
Unexpanded 464/664 disc owners can run Alyssa but they wont be able to
use it. They can however look through the options. If enough unexpanded
464/664 disc owners write in (and please enclose an SAE) I may release
a MULTI-LOAD version.
For 464 tape users, ALYSSA MINI is now available with many of the
features removed. The main ones being:
* extra memory support (now only a maximum of 384 records)
* disc support
Here are some comments from people who have seen Alyssa V1.0.
"Looks very professional" - BP (Australia)
"I love your Alyssa Database" - CY (New Zealand)
"It is comfortable, cleanly done and intuitively clear to use, and it
uses my full 576K memory"..."in short, it's brilliant"
- PH (The Netherlands)
80 TRACK & DOUBLE SIDED DRIVES
The majority of 80 track AMSDOS, XDDOS and double sided ROMS should
work. Maybe even RODOS. Any DOS's that sit in extra memory will
eventually be overwritten by data.
DIFFERENCES WITH ALYSSA V1.0
There has been one major change in this version over Alyssa V1.0.
Binary database files are NOT upwards compatible to this version due to
the new method of searching (Thanks Colin, Wow! What a difference!). A
small index is also saved.
Don't panic though, everything has been taken into account. To convert
your V1.0 list, save your 1.0 list as ASCII with Alyssa V1.0 then load
it as ASCII with this version of Alyssa. Simple eh!!
By the way, your Alyssa V1.? lists will be downward compatible. What a
strange upgrade?
DIFFERENCES WITH ALYSSA V1.1
Unfortunately Alyssa V1.1 was released with a couple of annoying bugs
which have now been fixed. They were:
1) The search index didn't update properly.
(making some things impossible to search for)!
2) The load/merge counter didn't update.
3) The print-to-disc option didn't display on screen.
4) It crashed when saving onto a write-protected disc or
trying to load a file which wasn't there.
The fourth bug still exists on BASIC 1.0 (see 'CPC464 OWNERS' below).
Also, condensed printing has now been implemented allowing two column
lists (to save paper) and the status option contains a bit more.
DIFFERENCES WITH ALYSSA V1.2
Oh No! The compare option in V1.1 was bugged preventing a good
comparison. This has been fixed along with the condensed printing on
EPSON printers (it was a bit lopsided). Also, the printer drivers have
been changed and are not compatible with lower versions, so only use
the given drivers with the version they came with!
Some extra features of this version are:
1) INVERSE - Inverse TAGged and unTAGged records.
2) UNTAG - UnTAG all records.
3) ZAP BAK - Delete all .BAK files.
Due to the BASIC 1.0's inability to detect disc errors, CPC464 owners
will be returned to BASIC when using the ZAP BAK option if no .BAK
files exist (see 'CPC464 OWNERS' below).
DIFFERENCES WITH ALYSSA V1.3
New features: 1) More control over BROWSE option.
2) Pack speed increased.
3) Compare speed increased.
Bench tests between this version and V1.3 prove this PACK to be between
-2% (the ODD case) and 4700% (another ODD case) more efficient.
DIFFERENCES WITH ALYSSA V1.4
New features: 1) <ENTER> also rotates through toggles.
2) Swap between drives A: & B: on file menu.
3) <COPY> on APPEND/EDIT option researches the list.
4) The disc directories are neater.
5) It now has the ability to chain extra modules.
6) A disc label (3 1/2" & 5 1/4") module is included.
7) Text printing has been speeded up.
8) RSX's may now contain numbers.
9) The colours can be changed.
DIFFERENCES WITH ALYSSA V1.5
Bug fixes: 1) The search now finds the last record.
2) Compare no longer locks up.
New features: 1) Alyssa can now be FORCED to use only 128K RAM.
2) Semi-Wildcard searches can be made.
3) A new field 'K byte' field has been added.
4) Sorting is now over 3 times faster.
5) The NEW option now prompts for deletion.
6) A file conversion utility module is included.
Due to the addition of a new field 'K', BINary files saved with earlier
versions are NOT upwards compatible. Files must be saved and reloaded
in ASCII format.
CPC464 OWNERS
I stress the fact that CPC464 owners are NOT provided for with disc
error handling as BASIC 1.0 has some minor idiosyncracies. If any disc
errors occur, you will be returned to BASIC's 'Ready' prompt. To return
to Alyssa without loosing (or damaging) any data, type 'GOTO 70'. If
you aren't careful this may happen quite often. Don't panic though!
GENERAL INFO
When Alyssa is first executed (after the credits have disappeared), the
top part of the screen contains the programs name and version. The main
menu is displayed in the centre of the screen (this is where all menus
will be displayed) and some information is displayed at the bottom of
the screen. This information includes:
RAM: Total available RAM.
FILENAME: Current list in RAM.
FREE: Number of remaining entries (Free RAM).
USED: Number of currently used entries (Used RAM).
REC: Record currently being pointed at.
To preserve the contents RAM discs and the like, Alyssa can be forced
to use only 128K of memory by holding down <SPACE> while it is loading.
MENU SYSTEM
The menu system throughtout Alyssa uses a highlighter to allow the user
to select an option. Some options (in some menus) will contain
something in braces (). These options are toggles which change the way
Alyssa behaves in different circumstances.
Keys used to control the menus:
<enter> - Select highlighted option.
(If on toggle, rotates through toggle)
<esc> - Return to previous menu.
<up cursor> - Highlighter up.
<down cursor> - Highlighter down.
<left cursor> - Cycle left through toggles.
<right cursor> - Cycle right through toggles.
Options include:
MENU OPTION FUNCTION
---- ------ --------
EDIT * APPEND Add a new program to the end of the list.
* EDIT Change entries in the list.
* BROWSE Browse through the current list.
SEARCH Wildcard search.
* PACK Delete selected entries from the list.
INVERSE Inverse all tagged and untagged files.
UNTAG Untag all records.
* NEW Delete current list, and start from scratch.
FILE CATALOGUE Display the current discs directory.
* LOAD Load a list.
* SAVE Save a list.
* MERGE Join two lists
* COMPARE Compare two lists.
SWAP DRIVE Swap between drives A: and B:.
ZAP BAK Delete all .BAK files in current drive.
TYPE Toggle between BINary and ASCii files.
PRINT * PRINT Print a list.
LOAD PRINTER Load your printer.
PRINT TO Select print on SCReeN, DISC or PRiNTer.
* MODE Printer mode, condensed or normal.
* STARTà Record number to start printing from.
* FINISHà Record number to finish printing at.
* LINE SPACING Printer line spacing.
* GAP SPACING Printer Gap size.
SORT * NAME Sort list by name.
TYPE Bunch types together.
MEDIA Bunch medias together.
CODE Sort list by code.
NUMBER Sort list by storage media number.
KBYTE Sort list by program size.
XANY RSX Enter RSX, change drive, quit etc.
CHAIN Chain an external subprogram.
STATUS Display memory map and status info.
* ABOUT Display info about Alyssa.
PEN Change pen colour.
PAPER Change paper colour.
* Options also available on Alyssa MINI
APPEND & EDIT
Append and edit are explained here together as they are operated in the
same way (to keep with consistancy).
Keys used:
<enter> - If on last record, add another one.
<copy> - Search for another record to edit.
<esc> - Return to EDIT menu.
<up cursor> - Back a record.
<down cursor> - Forward a record.
<left cursor> - Back a field.
<right cursor> - Forward a field.
Depending on which field is selected, an appropriate message is
displayed. The TAG field is used in conjunction with the PACK option.
If this field contains ANY data, the record is temporarily deleted
until the data is removed.
BROWSE
Browse through the current list.
Keys used:
<copy> - Search for another record to show.
<esc> - Return to EDIT menu.
<up cursor> - Scroll list down the screen.
<down cursor> - Scroll list up the screen.
<shift+up cursor> - Page up.
<shift+down cursor> - Page down.
<ctrl+up cursor> - Top of list.
<ctrl+down cursor> - Bottom of list.
SEARCH
This option allows a program to be searched for if only a part of its
name is known. You will be prompted for the name and also if the title
found is the one you want. An answer of 'N' will cause Alyssa to
continue searching for the next occurance containing the given
substring. An answer of 'Y' will take you into EDIT mode.
PACK
This option permanently deletes ALL records TAGged with the APPEND/EDIT
options.
INVERSE
This option will untag all tagged records and at the same time, tag all
untagged records.
UNTAG
This option will untag all tagged records, making the whole file
untagged.
NEW
Start a new list from scratch. Clears all data from memory ready for a
new list.
LOAD & SAVE
These options load or save a list to disc. A list of about 5000 records
is all that can be saved on a normal 178K single sided format (like on
3") as you are never prompted to flip the disc! (I don't think many
people will fill 5000 records anyway). Bigger lists are exclusively for
the use of 80 track or double sided drives (see above). The status
option displays how much disc space is needed to save the list.
MERGE
Merge an ASCII file from disc with a list already in memory. To merge
two binary files, save one as ascii, load the other binary file, then
merge the saved ascii one.
COMPARE
This will compare an ASCII list from disc with a list already in memory
(which is the more rescent of the two). All records in common will be
automatically tagged (in the file in memory) ready to PRINT the
difference of the two lists since ALL TAGGED records are ignored by the
PRINT option. To obtain maximum accuracy and speed, the list in memory
MUST be in sorted NAME order because of the searching algorithm used.
The idea of this option is that if you get someones PUBLIC DOMAIN list,
you should store it away. Next time the SAME person sends you an
updated list, compare the new one with the old one. You can then PRINT
out the programs that person has got since. The FULL lists are needed
for comparing so don't pack them before hand.
SWAP DRIVE
This option allows you to swap between drives A: and B: without leaving
the file menu or using the RSX option as before. It automatically
detects which drive Alyssa was executed from.
ZAP BAK
This option will delete all .BAK files from the current disc.
TYPE
This toggle is to enable you to load and save as either BINary or
ASCii. Merge and Compare always deal with ASCII files and are not
affected by this setting. ASCII files generally take longer to load and
save than binary one. Also the index is not saved with the file and
must be created while loading.
PRINT MENU
This is the most complicated of all options.
PRINT - Print the list to the destination in the PRINT TO toggle. All
TAGged records are ignored! (Good for COMPARE).
Keys used: <esc> - Return to PRINT menu.
<space> - Pause printing. *
<enter> - Resume printing.
* Most printers have buffers and
prevent the Alyssa from pausing
the PRINTER immediately!
LOAD PRINTER - Select this option to load your correct printer driver.
The current printer is shown in the status option. The
default printer driver is EPSON.
The two supplied drivers are:
EPSON.PRN
CITOH.PRN
PRINT TO - You can print the list to SCReeN, DISC or PRiNTer. Print to
DISC is provided for the purpose of list distribution to
people who don't have or can't use Alyssa.
MODE - The default print mode is two column condensed mode. But normal
print can be selected.
START à & FINISH à - Toggle to select a portion of the list to print.
LINE SPACING - Set the line spacing for the printer.
GAP SPACING - Every time a new first letter is reached when printing, a
gap is inserted. You can adjust the size of this gap. (It
should be 0 whenever the list is NOT in name order!)
SORT
Unfortunately one weakness of this database is the slow assembler
bubble sort. Don't get me wrong though, since it is RAM based it is on
par with dBase II (not using indexes) and is about 50 times faster than
the BASIC equivalent! Hopefully it will be improved in the future. On
average, it takes about 15 minutes to sort 1000 records not completely
out of order. Go feed the cats or have dinner!
XANY MENU
This is the 'eXit and ANYthing else which doesn't belong in the other
menus' menu.
RSX - You can type any RSX (bar command) in here. Beware though, if you
are unsure whether a particular one will crash Alyssa (some will)
try it out before you load any important data!! Use this option
to select disc drives.
RSX's known to be - GOOD BAD
A (drive A) SDISC
* ACCESS PROTEXT
B (drive B) X (utopia)
BASIC (to quit)
* C
* CALL
CPM (to quit to CPM)
* DEDIT
DIR (directory)
DISC
* DISCTEST
* ERA
* FORMAT
* MEDIT
* REN
* TYPE
* UTOPIA
CHAIN - This allows the CHAINing of external subprograms especially
written for (or modified for) but not part of Alyssa. Neally
all future expansion will be through this option.
It is recommend to save a list before CHAINing anything to
garauntee important data is NOT lost should there be a crash!
Two modules are supplied:
CONVERT.CHN
LABELS.CHN
CONVERT is a conversion utility to import and export lists
from other databases or textfiles.
LABELS allows 3 1/2" and 5 1/4" disc labels to be printed on
EPSON and compatible printers. To use this module the list
must be in NUMBER order.
STATUS - Display a memory map of used RAM by Alyssa. This option also
displays the current printer driver and the amount of disc
space needed to save a file.
ABOUT - Alyssa info and credits to the author (me).
PEN & PAPER - Change the colour scheme of Alyssa.
CONVERTING YOUR LIST FROM ANOTHER DATABASE
To convert your existing list or a friends (for comparing) list to
Alyssa, a conversion utility module is included (CONVERT.CHN). This is
chained via the CHAIN option on the XANY menu. The menu structure is as
follows:
CONVERT V1.1
------------
MENU OPTION FUNCTION
---- ------ --------
CONVERT IMPORT Convert a foriegn database list for Alyssa.
EXPORT Convert an Alyssa list for a foreign database.
ALYSSA Return to Alyssa Database.
IMPORT CATALOGUE Catalogue current disc.
BOB0190 Convert list from BOB0190 database to Alyssa.
MASTERFILE Convert a Masterfile database to Alyssa.
WP FILE Convert a wordprocessor file to Alyssa.
ZAP BAK Delete all .BAK files.
RSX Enter RSX.
EXPORT CATALOGUE As import.
BOB0190 Convert an Alyssa list for BOB0190 database.
ZAP BAK As import.
RSX As import.
BOB0190
This option allows a file to be imported or exported into a format
readable by Bob Hardings 'BOB0190 disc file and printer' database.
Alyssa assumes a file extension of '.BOB' for all BOB0190 files.
MASTERFILE
This option is provided to allow lists originally stored in Masterfile
to be converted for use in Alyssa without containing too much rubbish
as the WP FILE option would (due to the Masterfile exports). NO file
extension is assumed.
Firstly the original list must be exported with the EXPORT option on
the Masterfile main menu. Answer (N)o to ALL the questions then select
the fields to export when prompted (Clearer instructions should be in
the Masterfile Manual). Note that this conversion utility expects the
NAME to be the first field. All other fields (CODE, NUMBER, KBYTES,
SPECIAL) can be non-existant or in any order.
Once the file has been exported from masterfile, run this conversion
utility and select the MASTERFILE option. Alyssa will then prompt for
the number of fields to convert. Enter the number of fields that was
exported and wait while the initial conversion pass takes place.
After a while you will be prompted which fields exist and to underline
them in the same way as the WP FILE option (read below).
WP FILE
This option allows an existing list entered via a word processor or
text editor or even another database (eg: dBase 2 in ASCII) to be
converted into an Alyssa Database format. To prevent garbage from being
converted, the ASCII file must in in a columnar form with NO headings
(they can be removed beforehand). It assumes NO file extension!
Although this converter will NOT convert every field, it will save
retyping NAME, NUMBER, SIDE and KBYTE which is most of the work anyway.
A SPECIAL field is also provided for specialist use only so this
utility can be used for a PART conversion or if another field is to
converted also. If the SPECIAL field is selected, it will be added onto
the end of the converted list and WILL NOT load into Alyssa directly.
For a simple 4-field conversion, select NO SPECIAL field!
Firstly, you will be prompted for the filename. The first record will
be displayed as a guide and you will be asked whether each field exists
in the ASCII file. If it does, you will have to underline the field
with the following controls:
<enter> - Finish underlining field.
<up cursor> - Make underline longer.
<down cursor> - Make underline shorter.
<left cursor> - Move underline left.
<right cursor> - Move underline right.
If any of the fields are known to be longer in other records, underline
the length of the longest known record.
If a list is needed to export into a WP FILE, print it to disc from the
Alyssa PRINT menu.
CONVERTING MANUALLY
If you dislike the given conversion utility or need to convert ALL
fields or have used the SPECIAL field for part conversion some
knowledge of AMSTRAD BASIC is necessary. Below is some necessary
information to create an Alyssa compatible ASCII file.
Alyssa saves its ASCII files using BASICs 'WRITE #9' statement.
Each record is a 35 character STRING made up of the following:
Name x(24) - 24 Alphanumeric characters.
Type x - A character from the TYPE list.
Media x - A character from the MEDIA list.
Code x - Any character. CHR$(32) for empty.
Number.Side 9999 - A 3 digit Media No. & side 1 or 2.
Tag x - CHR$(32) for untagged.
Kbytes 999 - A 3 digit Number.
TYPE list MEDIA list
--------- ----------
A) Adventure A) 3 inch
B) Business B) 3 1/2"
C) Communications C) 5 1/4"
D) Demo D) 80 track
E) Educational E) Tape
F) Music F) CD
G) Game G) ROM
H) Graphics H) Cartridge
I) Programming I) (nothing)
J) Utility
K) Public Domain
L) (nothing)
-----------------------------------------------------------------------
That about sums up the functions of Alyssa. Enjoy yourself!!
Julian Cassin
(20 April 1991)